📄 expr.g
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -