实现功能:构建一个JSONXML的翻译器。


 antlr4文件:

grammar JSON;

json : object
    | array
    ;
object
    : '{' pair (',' pair)* '}'  # AnObject
    | '{' '}'   # EmptyObject
    ;
pair : STRING ':' value ;

array
    : '[' value (',' value)* ']'  # ArrayOfValues
    | '[' ']'   # EmptyArray
    ;
value
    : STRING  # String
    | NUMBER  # Atom
    | object  # ObjectValue  // recursion
    | array  # ArrayValue // recursion
    | 'true'  # Atom  // keywords
    | 'false'  # Atom
    | 'null'  # Atom
    ;
STRING : '"' (ESC | ~["\\])* '"' ;

fragment ESC : '\\' (["\\/bfnrt] | UNICODE) ;
fragment UNICODE : 'u' HEX HEX HEX HEX ;
fragment HEX : [0-9a-fA-F] ;

NUMBER
    : '-'? INT '.' INT EXP? // 1.35, 1.35E-9, 0.3, -4.5
    | '-'? INT EXP // 1e10 -3e4
    | '-'? INT // -3, 45
    ;

fragment INT : '0' | [1-9] [0-9]* ; // no leading zeros
fragment EXP : [Ee] [+\-]? INT ; // \- since - means "range" inside [...]

WS : [ \t\n\r]+ -> skip ;
View Code

相关文章:

  • 2021-12-16
  • 2021-12-17
  • 2022-12-23
  • 2022-01-22
  • 2022-12-23
  • 2021-11-03
  • 2021-10-09
猜你喜欢
  • 2022-12-23
  • 2021-10-12
  • 2021-07-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-25
相关资源
相似解决方案