expr.g
来自「antlr小例子 。」· G 代码 · 共 40 行
G
40 行
grammar Expr;
options {
language=CSharp;
output=AST;
ASTLabelType=CommonTree;
}
prog: ( stat
{
if ($stat.tree != null){
Console.WriteLine($stat.tree.ToStringTree());
} else {
Console.WriteLine();
}
}
)+ ;
stat: expr NEWLINE -> expr
| ID '=' expr NEWLINE -> ^('=' ID expr)
| NEWLINE ->
;
expr: multExpr (('+'^^|'-'^^) multExpr)*
;
multExpr
: atom ('*'^^ atom)*
;
atom: INT
| ID
| '('! expr ')'!
;
ID : ('a'..'z'|'A'..'Z')+ ;
INT : '0'..'9'+ ;
NEWLINE:'\r'? '\n' ;
WS : (' '|'\t')+ { Skip(); } ;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?