treerack/json.p
2017-06-25 17:51:08 +02:00

15 lines
602 B
OpenEdge ABL

// JSON (http://www.json.org)
ws:alias = [ \b\f\n\r\t];
true = "true";
false = "false";
null = "null";
string = "\"" ([^\\"\b\f\n\r\t] | "\\" (["\\/bfnrt] | "u" [0-9a-f]{4}))* "\"";
number = "-"? ("0" | [1-9][0-9]*) ("." [0-9]+)? ([eE] [+\-]? [0-9]+)?;
entry = string ws* ":" ws* value;
object = "{" ws* (entry (ws* "," ws* entry)*)? ws* "}";
array = "[" ws* (value (ws* "," ws* value)*)? ws* "]";
value:alias = true | false | null | string | number | object | array;
json = value;
// TODO: value should be an alias but test it first like this