nitlanguage
/
nit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
examples: annotate examples
[nit.git]
/
contrib
/
nitcc
/
examples
/
json.sablecc
diff --git
a/contrib/nitcc/examples/json.sablecc
b/contrib/nitcc/examples/json.sablecc
index
1c02ba2
..
0de8914
100644
(file)
--- a/
contrib/nitcc/examples/json.sablecc
+++ b/
contrib/nitcc/examples/json.sablecc
@@
-9,7
+9,18
@@
frac = '.' d+;
exp = e d+;
e = ('e'|'E') ('+'|'-')?;
exp = e d+;
e = ('e'|'E') ('+'|'-')?;
-string = '"' (Any-'\\'-'"' | '\\'Any)+ '"';
+hexdig = '0'..'9' | 'a'..'z' | 'A'..'Z';
+string = '"' (Any - '\\' - '"' | '\\' (
+ '\\' |
+ '"' |
+ '/' |
+ 'b' |
+ 'f' |
+ 'n' |
+ 'r' |
+ 't' |
+ 'u' hexdig hexdig hexdig hexdig
+ ))* '"';
blank = (' '|'\n'|'\t')+;
blank = (' '|'\n'|'\t')+;
@@
-19,12
+30,12
@@
Ignored blank;
value =
{object:} '{' members? '}' |
{array:} '[' elements? ']' |
value =
{object:} '{' members? '}' |
{array:} '[' elements? ']' |
- number |
- string |
- 'true' |
- 'false' |
- 'null' ;
+ {number:} number |
+ {string:} string |
+ {true:} 'true' |
+ {false:} 'false' |
+ {null:} 'null' ;
-members = members ',' pair | pair ;
+members = {tail:} members ',' pair | {head:} pair ;
pair = string ':' value ;
pair = string ':' value ;
-elements = elements ',' value | value ;
+elements = {tail:} elements ',' value | {head:} value ;