.mango.1.02.source-code.parser.jjt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mango Show documentation
Show all versions of mango Show documentation
mango is a dao framework.
options
{
/** 使用jdk1.6 */
JDK_VERSION = "1.6";
/** 生成非静态方法 */
static = false;
/** 标记开始token与结束token */
TRACK_TOKENS=true;
/** 让jjtree给每个非终结符生成一个对象 */
MULTI = true;
/** 开启访问者模式 */
VISITOR = true;
/** 忽略大小写 */
IGNORE_CASE = true;
}
PARSER_BEGIN(Parser)
package cc.concurrent.mango.runtime.parser;
import java.io.StringReader;
import java.io.Reader;
public class Parser {
public Parser(String s) {
this((Reader)(new StringReader(s)));
}
}
PARSER_END(Parser)
TOKEN:
{
<#COLON: ":" >
| <#NUMBER: ["1"-"9"] (["0"-"9"])* >
| <#DOT: "." >
| <#FIELD: ["a"-"z","_"] (["a"-"z","_", "0"-"9"])* >
| <#PARAMETER: (|) ( )* >
}
TOKEN:
{
| >
| {SwitchTo(I);}
| {SwitchTo(G);}
|
}
SKIP :
{
" "
}
TOKEN :
{
>
| {SwitchTo(DEFAULT);}
}
SKIP :
{
" "
}
TOKEN :
{
>
|
|
|
|
|
|
|
|
| {SwitchTo(DEFAULT);}
}
ASTRootNode parse() #RootNode :
{
}
{
(LOOKAHEAD(4) IterableParameter() | Text() | Blank() | NonIterableParameter() | DirectiveExpression())+
{
return jjtThis;
}
}
void IterableParameter() :
{
Token t;
}
{
t=
{
jjtThis.setInterableProperty(t.image);
}
t=
{
jjtThis.setParameter(t.image);
}
}
void NonIterableParameter() :
{
Token t;
}
{
t=
{
jjtThis.setParameter(t.image);
}
}
void Text() :
{
Token t;
}
{
t=
{
jjtThis.setValue(t.image);
}
}
void Blank() :
{
Token t;
}
{
t=
{
jjtThis.setValue(t.image);
}
}
void DirectiveExpression() #void : // 标记为void不生成节点
{
}
{
Expression()
}
void Expression() :
{
}
{
AdditiveExpression()
}
void AdditiveExpression() #void : // 标记为void不生成节点
{}
{
MultiplicativeExpression()
(
MultiplicativeExpression() #AddExpression(2)
| MultiplicativeExpression() #SubtractExpression(2)
)*
}
void MultiplicativeExpression() #void : // 标记为void不生成节点
{}
{
PrimaryExpression()
(
PrimaryExpression() #MulExpression(2)
| PrimaryExpression() #DivExpression(2)
| PrimaryExpression() #ModExpression(2)
)*
}
void PrimaryExpression() #void :
{}
{
Variable()
| IntegerLiteral()
| AdditiveExpression()
}
void Variable() :
{
Token t;
}
{
t=
{
jjtThis.setParameter(t.image);
}
}
void IntegerLiteral() :
{
Token t;
}
{
t=
{
jjtThis.setValue(Integer.valueOf(t.image));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy