示例#1
0
        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;
        }
示例#2
0
        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('\"'));
        }