Antlr
小于 1 分钟
Antlr
介绍🍇
- 2022/11/18
- 版本 antlr4
符号作用🍎
示例🌟
JSON💞
grammar JSON;
json: value EOF;
value : STRING | NUMBER | obj | arr | 'true' | 'false' | 'null' ;
obj : '{' pair (',' pair)* '}' | '{' '}' ;
pair : STRING ':' value ;
arr : '[' value (',' value)* ']' | '[' ']';
STRING : '"' (ESC | SAFECODEPOINT)* '"' ;
fragment ESC : '\\' (["\\/bfnrt] | UNICODE) ;
fragment UNICODE : 'u' HEX HEX HEX HEX;
fragment HEX : [0-9a-fA-F] ;
fragment SAFECODEPOINT : ~ ["\\\u0000-\u001F];
NUMBER : '-'? INT ('.' [0-9] +)? EXP? ;
fragment INT : '0' | [1-9] [0-9]* ;
// no leading zeros
fragment EXP : [Ee] [+\-]? INT;
// \- since - means "range" inside [...]
// 跳过值
WS : [ \t\n\r] + -> skip ;
ORM🍏
grammar ORM;
test: value EOF;
//value : STRING | NUMBER | obj | arr | 'true' | 'false' | 'null' ;
value : let *; // * 代表可以有多个
let : '${'VAL'}' ;
VAL : ([a-z]|[A-Z])+;
// \- since - means "range" inside [...]
// 跳过值
WS : [ \t\n\ra-zA-Z] + -> skip ;