JSONgram.g4
470 Bytes
grammar JSONgram;
json : content;
object : '{' keyValue (',' keyValue)* '}' | '{' '}';
table : '[' content (',' content)* ']' | '[' ']';
keyValue : CHAINE ':' content;
content: CHAINE | NUMBER | object | table | 'true' | 'false' | 'null';
fragment INT: '0' | [1-9] [0-9]*;
fragment EXP: [Ee] [+\-]? INT;
CHAINE : '"' [a-zA-Z0-9_!@#$%^&*()\-+=/.,<>;': ] [a-zA-Z0-9_!@#$%^&*()\-+=/.,<>;': ]* '"' ;
NUMBER : '-'? INT ('.' [0-9] +)? EXP?;
WS : [ \t\n\r] + -> skip;