Add project files
This commit is contained in:
commit
ba5971a788
37 files changed
+11180
No files matched your search
@@ -0,0 +1,31 @@
|
||||
// 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 ;
|
||||
Reference in new issue
Block a user