项目作者: Smarre

项目描述 :
antlr PHP runtime
高级语言: PHP
项目地址: git://github.com/Smarre/antlrphpruntime.git
创建时间: 2012-11-15T12:21:17Z
项目社区:https://github.com/Smarre/antlrphpruntime

开源协议:BSD 3-Clause "New" or "Revised" License

下载


Installation

There is no prebuilt packages at the moment, you need to compile your own version
from the source.

  1. # install antlr 3.4 (or later)
  2. vi build.properties
  3. ant

If ant ran successfully, you have antlr-php.jar at directory lib/, which contains
php runtime that can be used with Ant.

Installation from PEAR

PHP runtime can be installed from PEAR:

  1. pear channel-discover pear.smar.fi
  2. pear install channel://pear.smar.fi/antlrphpruntime-0.0.4

Manual installation

PHP runtime can be packaged and installed using PEAR, with commands

  1. pear package
  2. pear install [package_name]

Now the runtime can be used as any other PEAR package.

Helper script

There is also helper script install.rb which installs libraries to
/usr/local/share/antlr-php and binaries /usr/local/bin.

Usage

In theory usage happens by using antlr’s org.antlr.Tool to compile your grammar.
You need to set both antlr.jar and antlr-php.jar to CLASSPATH and then run

  1. java org.antlr.Tool Grammar.g

which results to a tokens file and lexer and parser files written in PHP.

There is also helper script gen-antlr-php which can be used to do this generation.

  1. # ensure you ran install.rb
  2. gen-antlr-php -g Foo.g

It automatically loads antlr instance with correct classpath and uses correct antlr
tool for generation.

History

October 2008 - initiation and work on the project by Sidharth Kuruvila

Starting from April 2009 - contributions by Yauhen Yakimovich

Current status

Antlr PHP runtime has been seen running with PHP 7.0. The test suite is more or less broken,
even with PHP 5.X versions.

Notes from 2012

I found this version from http://codinggorilla.domemtech.com/?p=995. The author seems to be
Ken Domino, which changes are made by him can be looked by doing diff from initial commit
of this repository and comparing it to the code at https://code.google.com/p/antlrphpruntime/
which seems to be unmaintained by now. Hence I went and created yet another fork.

Development

Some examples are already working (See examples/import). Runtime is in alpha status. Primary
milstone is aimed at verification of Lexer, Parser generation.

A working ATNLRv3 tool with php target suppport can be found inside a “lib” folder.
File is called antlr-3.1.3-php.jar, you need to make sure that it is in your classpath together
with the rest of files in “lib”.

To make changes to Php target integration with a tool, take a look inside a “tool” folder. You can start
from looking at Php.stg StringTemplate group file.
You will also need a copy of ANTLR Tool sources to develop the php target. To do this copy the contents
of the directory “tool” into the corresponding directory in the anltr 3.1.3 source bundle. You can get the antlr
source bundle at http://www.antlr.org/download/.

The test cases, found in the test directory, need PHPUnit3 to run. This should be available through pear,
instructions here http://www.phpunit.de/manual/3.3/en/installation.html, so I just download it
from http://pear.phpunit.de/get/.