JSONgram.g4
468 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;