预期效果
输入t.json
:
输出t.xml
:
原有语法文件
// Derived from http://json.org
grammar JSON;
json: object
| array
;
object
: '{' pair (',' pair)* '}'
| '{' '}'
;
pair: STRING ':' value ;
array
: '[' value (',' value)* ']'
| '[' ']'
;
value
: STRING #String
| NUMBER #Atom
| object #ObjectValue
| array #ArrayValue
| 'true' #Atom
| '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 '.' [0-9]+ 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 : [