Files
alejo ba5971a788
build / linux-clang (push) Canceled after 0s
build / linux-gcc (push) Canceled after 0s
build / macos-clang (push) Canceled after 0s
build / windows-mingw (push) Canceled after 0s
build / windows-msvc (push) Canceled after 0s
Add project files
2026-10-07 00:25:24 -03:00

32 lines
744 B
ANTLR

// JSON, straight from the ANTLR book. Try it on a .json file:
// antlrlab examples/json/JSON.g4 examples/json/example.json
grammar JSON;
json : value EOF ;
obj : '{' pair (',' pair)* '}'
| '{' '}'
;
pair : STRING ':' value ;
arr : '[' value (',' value)* ']'
| '[' ']'
;
value : STRING | NUMBER | obj | arr | 'true' | 'false' | 'null' ;
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]* ;
fragment EXP : [Ee] [+\-]? INT ;
WS : [ \t\n\r]+ -> skip ;