跳至主要內容

Antlr

LiCheng小于 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 ;