Package org.spf4j.zel.vm
Class ZCompiler
- java.lang.Object
-
- org.spf4j.zel.vm.ZCompiler
-
- All Implemented Interfaces:
ZCompilerConstants
public class ZCompiler extends Object implements ZCompilerConstants
-
-
Field Summary
Fields Modifier and Type Field Description Tokenjj_ntNext token.TokentokenCurrent token.ZCompilerTokenManagertoken_sourceGenerated Token Manager.-
Fields inherited from interface org.spf4j.zel.vm.ZCompilerConstants
AND, ARG, ASYNC, CASE_INS, CDOT, CHARACTER, CLBRACKET, CLM, COMMA, COMMENT_END, COMMENT_START, CONDITION, CONTEXT, DEC, DECIMAL, DECIMAL_LITERAL, DEFAULT, DETERMINISTIC, DIGIT, DIVIDE, DOT, E, ELSE, EOF, EQ, EQUAL, EXPONENT, FALSE, FIRST, FLOATING_POINT, FOR, FUNCTION, GE, GT, HEX_LITERAL, ID, IF, INC, INTEGER, LBRACE, LBRACKET, LE, LETTER, LIKE, LPAREN, LT, MATCHEXP, MEMORY, MINUS, MOD, MULTI_LINE, MULTIPLY, NEQ, NOT, NULL, OCTAL_LITERAL, OR, PI, PIPE, PLUS, POW, RBRACE, RBRACKET, RETURN, RPAREN, SAND, SCL, SINGLE_LINE_COMMENT, SLEEP, STRING, SWAP, SYNC, THROW, tokenImage, TRUE, USE, XOR
-
-
Constructor Summary
Constructors Constructor Description ZCompiler(InputStream stream)Constructor with InputStream.ZCompiler(InputStream stream, String encoding)Constructor with InputStream and supplied encodingZCompiler(Reader stream)Constructor.ZCompiler(ZCompilerTokenManager tm)Constructor with generated Token Manager.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidassignableExpression(ParsingContext context)voidassignement(ParsingContext context)voidcompare(ParsingContext context)Commparison operatiors: < > <= >= == !=static voidcompile(String source, InputStream is, Charset charset, ParsingContext context)Compile a ZEL expression from Stream.static voidcompile(String source, Reader reader, ParsingContext context)Compile a ZEL expression from Stream.static voidcompile(String source, String xpr, ParsingContext context)Compile a ZEL expression from String.static voidcompilePredicate(String source, Reader reader, ParsingContext context)Compile a ZEL expression predicate from Stream.voidconstant(ParsingContext context)voiddisable_tracing()Disable tracing.voidelement(ParsingContext context, boolean left)voidenable_tracing()Enable tracing.voidexponent(ParsingContext context)the exponent operator: ^voidexpression(ParsingContext context)voidforStmt(ParsingContext context)The ZEL for statement, (similar with for from GO): for i = 0, result = 0; i < breakup; i = i + 1 { result = result + part[i] };ParseExceptiongenerateParseException()Generate ParseException.TokengetNextToken()Get the next Token.TokengetToken(int index)Get the specific Token.voidifStmt(ParsingContext context)The IF statment.voidlogical(ParsingContext context)Logical operators: AND OR XORvoidmainprogram(ParsingContext context)voidoperations(ParsingContext context)The ZEL operations: Assignements: x, y, z = {1, 2, 3}; f(x) = 4; Increment: x++ Decrement: x-- Swap: x <-> yintparams(ParsingContext context)voidprogram(ParsingContext context)ParsingContextprogramBlock(ParsingContext context)A zel program block: { .....voidprogramBlockStatic(ParsingContext context)voidReInit(InputStream stream)Reinitialise.voidReInit(InputStream stream, String encoding)Reinitialise.voidReInit(Reader stream)Reinitialise.voidReInit(ZCompilerTokenManager tm)Reinitialise.voidstatement(ParsingContext context)voidsum(ParsingContext context)+ - operators.voidswap(ParsingContext context)voidsysFunction(ParsingContext context)voidterm(ParsingContext context)* / % operatorsvoidternary(ParsingContext context)The ternary operator: a < 0 ? 1 : 2booleantrace_enabled()Trace enabled.voidunary(ParsingContext context, boolean left)voidunaryPost(ParsingContext context)Method invocation + dereferencing.voidzreturn(ParsingContext context)
-
-
-
Field Detail
-
token_source
public ZCompilerTokenManager token_source
Generated Token Manager.
-
token
public Token token
Current token.
-
jj_nt
public Token jj_nt
Next token.
-
-
Constructor Detail
-
ZCompiler
public ZCompiler(InputStream stream)
Constructor with InputStream.
-
ZCompiler
public ZCompiler(InputStream stream, String encoding)
Constructor with InputStream and supplied encoding
-
ZCompiler
public ZCompiler(Reader stream)
Constructor.
-
ZCompiler
public ZCompiler(ZCompilerTokenManager tm)
Constructor with generated Token Manager.
-
-
Method Detail
-
compile
public static void compile(String source, String xpr, ParsingContext context) throws ParseException
Compile a ZEL expression from String.- Throws:
ParseException
-
compile
public static void compile(String source, InputStream is, Charset charset, ParsingContext context) throws ParseException
Compile a ZEL expression from Stream.- Throws:
ParseException
-
compile
public static void compile(String source, Reader reader, ParsingContext context) throws ParseException
Compile a ZEL expression from Stream.- Throws:
ParseException
-
compilePredicate
public static void compilePredicate(String source, Reader reader, ParsingContext context) throws ParseException
Compile a ZEL expression predicate from Stream.- Throws:
ParseException
-
mainprogram
public final void mainprogram(ParsingContext context) throws ParseException
- Throws:
ParseException
-
program
public final void program(ParsingContext context) throws ParseException
- Throws:
ParseException
-
statement
public final void statement(ParsingContext context) throws ParseException
- Throws:
ParseException
-
forStmt
public final void forStmt(ParsingContext context) throws ParseException
The ZEL for statement, (similar with for from GO): for i = 0, result = 0; i < breakup; i = i + 1 { result = result + part[i] };- Throws:
ParseException
-
ifStmt
public final void ifStmt(ParsingContext context) throws ParseException
The IF statment. (Similar as in GO): if v > ma { ma = v } else if v < mi { mi = v }- Throws:
ParseException
-
programBlockStatic
public final void programBlockStatic(ParsingContext context) throws ParseException
- Throws:
ParseException
-
programBlock
public final ParsingContext programBlock(ParsingContext context) throws ParseException
A zel program block: { ..... }- Throws:
ParseException
-
zreturn
public final void zreturn(ParsingContext context) throws ParseException
- Throws:
ParseException
-
operations
public final void operations(ParsingContext context) throws ParseException
The ZEL operations: Assignements: x, y, z = {1, 2, 3}; f(x) = 4; Increment: x++ Decrement: x-- Swap: x <-> y- Throws:
ParseException
-
assignement
public final void assignement(ParsingContext context) throws ParseException
- Throws:
ParseException
-
swap
public final void swap(ParsingContext context) throws ParseException
- Throws:
ParseException
-
assignableExpression
public final void assignableExpression(ParsingContext context) throws ParseException
- Throws:
ParseException
-
expression
public final void expression(ParsingContext context) throws ParseException
- Throws:
ParseException
-
ternary
public final void ternary(ParsingContext context) throws ParseException
The ternary operator: a < 0 ? 1 : 2- Throws:
ParseException
-
logical
public final void logical(ParsingContext context) throws ParseException
Logical operators: AND OR XOR- Throws:
ParseException
-
compare
public final void compare(ParsingContext context) throws ParseException
Commparison operatiors: < > <= >= == !=- Throws:
ParseException
-
sum
public final void sum(ParsingContext context) throws ParseException
+ - operators.- Throws:
ParseException
-
term
public final void term(ParsingContext context) throws ParseException
* / % operators- Throws:
ParseException
-
exponent
public final void exponent(ParsingContext context) throws ParseException
the exponent operator: ^- Throws:
ParseException
-
unaryPost
public final void unaryPost(ParsingContext context) throws ParseException
Method invocation + dereferencing.- Throws:
ParseException
-
unary
public final void unary(ParsingContext context, boolean left) throws ParseException
- Throws:
ParseException
-
element
public final void element(ParsingContext context, boolean left) throws ParseException
- Throws:
ParseException
-
params
public final int params(ParsingContext context) throws ParseException
- Throws:
ParseException
-
constant
public final void constant(ParsingContext context) throws ParseException
- Throws:
ParseException
-
sysFunction
public final void sysFunction(ParsingContext context) throws ParseException
- Throws:
ParseException
-
ReInit
public void ReInit(InputStream stream)
Reinitialise.
-
ReInit
public void ReInit(InputStream stream, String encoding)
Reinitialise.
-
ReInit
public void ReInit(Reader stream)
Reinitialise.
-
ReInit
public void ReInit(ZCompilerTokenManager tm)
Reinitialise.
-
getNextToken
public final Token getNextToken()
Get the next Token.
-
getToken
public final Token getToken(int index)
Get the specific Token.
-
generateParseException
public ParseException generateParseException()
Generate ParseException.
-
trace_enabled
public final boolean trace_enabled()
Trace enabled.
-
enable_tracing
public final void enable_tracing()
Enable tracing.
-
disable_tracing
public final void disable_tracing()
Disable tracing.
-
-