4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
# File 'lib/jsony/grammar.rb', line 4
def make_tree
{"+toprule"=>"jsony",
"+grammar"=>"jsony",
"+version"=>"0.0.1",
"jsony"=>
{".any"=>
[{".ref"=>"seq"},
{".ref"=>"map"},
{".ref"=>"top_seq"},
{".ref"=>"top_map"},
{".ref"=>"list"}]},
"seq"=>
{".all"=>
[{".rgx"=>"(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*"},
{".ref"=>"LSQUARE"},
{".rgx"=>"(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*"},
{".ref"=>"node",
"+min"=>0,
".sep"=>
{".rgx"=>
"(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*,?(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*",
"+eok"=>true}},
{".rgx"=>"(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*"},
{".ref"=>"RSQUARE"},
{".rgx"=>"(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*"}]},
"LSQUARE"=>{".rgx"=>"\\["},
"node"=>{".any"=>[{".ref"=>"map"}, {".ref"=>"seq"}, {".ref"=>"scalar"}]},
"map"=>
{".all"=>
[{".rgx"=>"(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*"},
{".ref"=>"LCURLY"},
{".rgx"=>"(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*"},
{".ref"=>"pair", "+min"=>0},
{".rgx"=>"(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*"},
{".ref"=>"RCURLY"},
{".rgx"=>"(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*"}]},
"LCURLY"=>{".rgx"=>"\\{"},
"pair"=>
{".all"=>
[{".ref"=>"string"},
{".rgx"=>
"(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*:?(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*"},
{".ref"=>"node"},
{".rgx"=>
"(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*,?(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*"}]},
"string"=>{".ref"=>"scalar"},
"scalar"=>
{".any"=>[{".ref"=>"double"}, {".ref"=>"single"}, {".ref"=>"bare"}]},
"double"=>
{".rgx"=>
"\"((?:\\\\(?:[\"\\\\/bfnrt]|u[0-9a-fA-F]{4})|[^\"\\x00-\\x1f])*)\""},
"single"=>{".rgx"=>"'([^']*)'"},
"bare"=>{".rgx"=>"([^\\s\\{\\}\\[\\]'\",]*[^\\s\\{\\}\\[\\]'\",:])"},
"RCURLY"=>{".rgx"=>"\\}"},
"RSQUARE"=>{".rgx"=>"\\]"},
"top_seq"=>{".ref"=>"top_seq_entry", "+min"=>1},
"top_seq_entry"=>
{".all"=>
[{".rgx"=>"(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*\\-\\ +"},
{".all"=>
[{".ref"=>"node",
"+min"=>0,
".sep"=>
{".rgx"=>
"(?:\\ *,\\ *\\r?\\n(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*|\\ +)",
"+eok"=>true}},
{".any"=>[{".ref"=>"comment"}, {".ref"=>"EOL"}]}]}]},
"comment"=>{".rgx"=>"(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n)"},
"EOL"=>{".rgx"=>"\\r?\\n"},
"top_map"=>
{".all"=>
[{".ref"=>"string"},
{".rgx"=>
"(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*:(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*"},
{".ref"=>"node"},
{".rgx"=>"(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*"}],
"+min"=>1},
"list"=>
{".ref"=>"node",
"+min"=>0,
".sep"=>
{".rgx"=>
"(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*,?(?:\\s|(?:\\#\\ .*\\r?\\n|\\#\\r?\\n|\\ *\\r?\\n))*",
"+eok"=>true}}}
end
|