public Value() { var value = new Choice( new String(), new Number(), new Text("true"), new Text("false"), new Text("null")); var ws = new Many(new Any(" \n\t\r")); var element = new Sequence(ws, value, ws); var elements = new List(element, new Character(',')); var array = new Choice( new Sequence(new Character('['), ws, new Character(']')), new Sequence(new Character('['), ws, elements, ws, new Character(']'))); var member = new Sequence(ws, new String(), ws, new Character(':'), element); var members = new List(member, new Character(',')); var obj = new Choice( new Sequence(new Character('{'), ws, new Character('}')), new Sequence(new Character('{'), ws, members, ws, new Character('}'))); value.Add(array); value.Add(obj); pattern = value; }
public String() { var onenine = new Range('1', '9'); var digit = new Range('0', '9'); var hex = new Choice( digit, new Range('A', 'F'), new Range('a', 'f')); var escape = new Choice( new Any("bfnrt\"\\/"), new Sequence(new Character('u'), hex, hex, hex, hex)); var character = new Choice( new Range(' ', '\uffff', "\"\\"), new Sequence(new Character('\\'), escape)); var characters = new Many(character); pattern = new Sequence(new Character('\"'), characters, new Character('\"')); }