Class: JSONY::Grammar

Inherits:
Pegex::Grammar
  • Object
show all
Defined in:
lib/jsony/grammar.rb

Instance Method Summary collapse

Instance Method Details

#make_treeObject



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