Package net.sf.jga.parser

Parser that allows expressions of an as-yet unnamed Java-like language to be parsed to create functors.

See:
          Description

Interface Summary
FunctorParser Parses strings containing JXFG scripts and produces functors.
FunctorRef<R,F extends Functor<R>> Contains and describes a functor being built by the functor parser.
JFXGParserConstants  
 

Class Summary
BinaryFunctorRef<T1,T2,R> Contains and describes a BinaryFunctor being built by the functor parser.
GeneratorRef<R> Contains and describes a Generator being built by the functor parser.
GenericParser FunctorParser wrapper that adds runtime type-safe entry points to the non-generified base parser.
JavaCharStream An implementation of interface CharStream, where the stream is assumed to contain only ASCII characters (with java-like unicode escape processing).
JFXGParser Parser that converts JFXG strings into functors.
JFXGParserTokenManager  
Multiplex Routes an array of values to a given array of unary functions, returning an array containing the results.
ParserUtils ParserUtils.java
SetAndReturnField<T,V> Similar to the standard SetField functor, except that the fn() method returns the value passed rather than null
Token Describes the input token stream.
UnaryFunctorRef<T,R> Contains and describes a UnaryFunctor being built by the functor parser.
VariableFunctorRef<R,F extends Functor<R>>  
VariableRef<T>  
 

Enum Summary
ArithmeticOperator  
 

Exception Summary
ParseException This exception is thrown when parse errors are encountered.
UncheckedParseException Unchecked version of ParseException, generated by the static evaluation methods.
 

Error Summary
TokenMgrError  
 

Package net.sf.jga.parser Description

Parser that allows expressions of an as-yet unnamed Java-like language to be parsed to create functors. The langauge is a subset of a Java 1.5 grammar, whose BNF form is available here. While it is an incomplete subset of the Java expression syntax, what's already implemented is enough to be interesting. You can do basic arithmetic (with all standard Number implementations, including BigDecimal and BigInteger), relational comparisons, shifts, boolean expressions, conditionals, call constructors and methods, reference member variables, cast values, test instanceof, and reference class constants (including enumerated values when run on Java 1.5). Essentially, the grammar allows anything that can be typed on the right side of a Java assignment statement.

The following expression syntax is not implemented in the current release.



Copyright © 2002-2006 David A. Hall. All Rights Reserved.