--- /dev/null
+# Lexer generated by nitcc for the grammar jsonimport nitcc_runtime
+import json_parser
+class Lexer_json
+ super Lexer
+ redef fun start_state do return dfastate_0
+end
+redef class Object
+ private fun dfastate_0: DFAState0 do return once new DFAState0
+ private fun dfastate_1: DFAState1 do return once new DFAState1
+ private fun dfastate_2: DFAState2 do return once new DFAState2
+ private fun dfastate_3: DFAState3 do return once new DFAState3
+ private fun dfastate_4: DFAState4 do return once new DFAState4
+ private fun dfastate_5: DFAState5 do return once new DFAState5
+ private fun dfastate_6: DFAState6 do return once new DFAState6
+ private fun dfastate_7: DFAState7 do return once new DFAState7
+ private fun dfastate_8: DFAState8 do return once new DFAState8
+ private fun dfastate_9: DFAState9 do return once new DFAState9
+ private fun dfastate_10: DFAState10 do return once new DFAState10
+ private fun dfastate_11: DFAState11 do return once new DFAState11
+ private fun dfastate_12: DFAState12 do return once new DFAState12
+ private fun dfastate_13: DFAState13 do return once new DFAState13
+ private fun dfastate_14: DFAState14 do return once new DFAState14
+ private fun dfastate_15: DFAState15 do return once new DFAState15
+ private fun dfastate_16: DFAState16 do return once new DFAState16
+ private fun dfastate_17: DFAState17 do return once new DFAState17
+ private fun dfastate_18: DFAState18 do return once new DFAState18
+ private fun dfastate_19: DFAState19 do return once new DFAState19
+ private fun dfastate_20: DFAState20 do return once new DFAState20
+ private fun dfastate_21: DFAState21 do return once new DFAState21
+ private fun dfastate_22: DFAState22 do return once new DFAState22
+ private fun dfastate_23: DFAState23 do return once new DFAState23
+ private fun dfastate_24: DFAState24 do return once new DFAState24
+ private fun dfastate_25: DFAState25 do return once new DFAState25
+ private fun dfastate_26: DFAState26 do return once new DFAState26
+ private fun dfastate_27: DFAState27 do return once new DFAState27
+ private fun dfastate_28: DFAState28 do return once new DFAState28
+ private fun dfastate_29: DFAState29 do return once new DFAState29
+ private fun dfastate_30: DFAState30 do return once new DFAState30
+ private fun dfastate_31: DFAState31 do return once new DFAState31
+end
+class MyNToken
+ super NToken
+end
+class DFAState0
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 8 then return null
+ if c <= 10 then return dfastate_1
+ if c <= 31 then return null
+ if c <= 32 then return dfastate_1
+ if c <= 33 then return null
+ if c <= 34 then return dfastate_2
+ if c <= 43 then return null
+ if c <= 44 then return dfastate_3
+ if c <= 45 then return dfastate_4
+ if c <= 47 then return null
+ if c <= 57 then return dfastate_5
+ if c <= 58 then return dfastate_6
+ if c <= 90 then return null
+ if c <= 91 then return dfastate_7
+ if c <= 92 then return null
+ if c <= 93 then return dfastate_8
+ if c <= 101 then return null
+ if c <= 102 then return dfastate_9
+ if c <= 109 then return null
+ if c <= 110 then return dfastate_10
+ if c <= 115 then return null
+ if c <= 116 then return dfastate_11
+ if c <= 122 then return null
+ if c <= 123 then return dfastate_12
+ if c <= 124 then return null
+ if c <= 125 then return dfastate_13
+ return null
+ end
+end
+class DFAState1
+ super DFAState
+ redef fun is_accept do return true
+ redef fun make_token(position, text) do
+ return null
+ end
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 8 then return null
+ if c <= 10 then return dfastate_1
+ if c <= 31 then return null
+ if c <= 32 then return dfastate_1
+ return null
+ end
+end
+class DFAState2
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 33 then return dfastate_29
+ if c <= 34 then return null
+ if c <= 91 then return dfastate_29
+ if c <= 92 then return dfastate_30
+ return dfastate_29
+ end
+end
+class DFAState3
+ super DFAState
+ redef fun is_accept do return true
+ redef fun make_token(position, text) do
+ var t = new N_39d_44d_39d
+ t.position = position
+ t.text = text
+ return t
+ end
+end
+class DFAState4
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 47 then return null
+ if c <= 57 then return dfastate_5
+ return null
+ end
+end
+class DFAState5
+ super DFAState
+ redef fun is_accept do return true
+ redef fun make_token(position, text) do
+ var t = new Nnumber
+ t.position = position
+ t.text = text
+ return t
+ end
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 45 then return null
+ if c <= 46 then return dfastate_24
+ if c <= 47 then return null
+ if c <= 57 then return dfastate_5
+ if c <= 68 then return null
+ if c <= 69 then return dfastate_25
+ if c <= 100 then return null
+ if c <= 101 then return dfastate_25
+ return null
+ end
+end
+class DFAState6
+ super DFAState
+ redef fun is_accept do return true
+ redef fun make_token(position, text) do
+ var t = new N_39d_58d_39d
+ t.position = position
+ t.text = text
+ return t
+ end
+end
+class DFAState7
+ super DFAState
+ redef fun is_accept do return true
+ redef fun make_token(position, text) do
+ var t = new N_39d_91d_39d
+ t.position = position
+ t.text = text
+ return t
+ end
+end
+class DFAState8
+ super DFAState
+ redef fun is_accept do return true
+ redef fun make_token(position, text) do
+ var t = new N_39d_93d_39d
+ t.position = position
+ t.text = text
+ return t
+ end
+end
+class DFAState9
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 96 then return null
+ if c <= 97 then return dfastate_20
+ return null
+ end
+end
+class DFAState10
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 116 then return null
+ if c <= 117 then return dfastate_17
+ return null
+ end
+end
+class DFAState11
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 113 then return null
+ if c <= 114 then return dfastate_14
+ return null
+ end
+end
+class DFAState12
+ super DFAState
+ redef fun is_accept do return true
+ redef fun make_token(position, text) do
+ var t = new N_39d_123d_39d
+ t.position = position
+ t.text = text
+ return t
+ end
+end
+class DFAState13
+ super DFAState
+ redef fun is_accept do return true
+ redef fun make_token(position, text) do
+ var t = new N_39d_125d_39d
+ t.position = position
+ t.text = text
+ return t
+ end
+end
+class DFAState14
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 116 then return null
+ if c <= 117 then return dfastate_15
+ return null
+ end
+end
+class DFAState15
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 100 then return null
+ if c <= 101 then return dfastate_16
+ return null
+ end
+end
+class DFAState16
+ super DFAState
+ redef fun is_accept do return true
+ redef fun make_token(position, text) do
+ var t = new N_39dtrue_39d
+ t.position = position
+ t.text = text
+ return t
+ end
+end
+class DFAState17
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 107 then return null
+ if c <= 108 then return dfastate_18
+ return null
+ end
+end
+class DFAState18
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 107 then return null
+ if c <= 108 then return dfastate_19
+ return null
+ end
+end
+class DFAState19
+ super DFAState
+ redef fun is_accept do return true
+ redef fun make_token(position, text) do
+ var t = new N_39dnull_39d
+ t.position = position
+ t.text = text
+ return t
+ end
+end
+class DFAState20
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 107 then return null
+ if c <= 108 then return dfastate_21
+ return null
+ end
+end
+class DFAState21
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 114 then return null
+ if c <= 115 then return dfastate_22
+ return null
+ end
+end
+class DFAState22
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 100 then return null
+ if c <= 101 then return dfastate_23
+ return null
+ end
+end
+class DFAState23
+ super DFAState
+ redef fun is_accept do return true
+ redef fun make_token(position, text) do
+ var t = new N_39dfalse_39d
+ t.position = position
+ t.text = text
+ return t
+ end
+end
+class DFAState24
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 47 then return null
+ if c <= 57 then return dfastate_28
+ return null
+ end
+end
+class DFAState25
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 42 then return null
+ if c <= 43 then return dfastate_26
+ if c <= 44 then return null
+ if c <= 45 then return dfastate_26
+ if c <= 47 then return null
+ if c <= 57 then return dfastate_27
+ return null
+ end
+end
+class DFAState26
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 47 then return null
+ if c <= 57 then return dfastate_27
+ return null
+ end
+end
+class DFAState27
+ super DFAState
+ redef fun is_accept do return true
+ redef fun make_token(position, text) do
+ var t = new Nnumber
+ t.position = position
+ t.text = text
+ return t
+ end
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 47 then return null
+ if c <= 57 then return dfastate_27
+ return null
+ end
+end
+class DFAState28
+ super DFAState
+ redef fun is_accept do return true
+ redef fun make_token(position, text) do
+ var t = new Nnumber
+ t.position = position
+ t.text = text
+ return t
+ end
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 47 then return null
+ if c <= 57 then return dfastate_28
+ if c <= 68 then return null
+ if c <= 69 then return dfastate_25
+ if c <= 100 then return null
+ if c <= 101 then return dfastate_25
+ return null
+ end
+end
+class DFAState29
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ if c <= 33 then return dfastate_29
+ if c <= 34 then return dfastate_31
+ if c <= 91 then return dfastate_29
+ if c <= 92 then return dfastate_30
+ return dfastate_29
+ end
+end
+class DFAState30
+ super DFAState
+ redef fun trans(char) do
+ var c = char.ascii
+ return dfastate_29
+ end
+end
+class DFAState31
+ super DFAState
+ redef fun is_accept do return true
+ redef fun make_token(position, text) do
+ var t = new Nstring
+ t.position = position
+ t.text = text
+ return t
+ end
+end
--- /dev/null
+# Parser generated by nitcc for the grammar json
+import nitcc_runtime
+class Parser_json
+ super Parser
+ redef fun start_state do return state_Start
+end
+redef class Object
+ private fun state_Start: LRStateStart do return once new LRStateStart
+ private fun state_value: LRStatevalue do return once new LRStatevalue
+ private fun state_number: LRStatenumber do return once new LRStatenumber
+ private fun state_string: LRStatestring do return once new LRStatestring
+ private fun state__39dtrue_39d: LRState_39dtrue_39d do return once new LRState_39dtrue_39d
+ private fun state__39dfalse_39d: LRState_39dfalse_39d do return once new LRState_39dfalse_39d
+ private fun state__39dnull_39d: LRState_39dnull_39d do return once new LRState_39dnull_39d
+ private fun state__39d_123d_39d: LRState_39d_123d_39d do return once new LRState_39d_123d_39d
+ private fun state__39d_91d_39d: LRState_39d_91d_39d do return once new LRState_39d_91d_39d
+ private fun state_value_32dEof: LRStatevalue_32dEof do return once new LRStatevalue_32dEof
+ private fun state__39d_123d_39d_32dmembers: LRState_39d_123d_39d_32dmembers do return once new LRState_39d_123d_39d_32dmembers
+ private fun state__39d_123d_39d_32d_39d_125d_39d: LRState_39d_123d_39d_32d_39d_125d_39d do return once new LRState_39d_123d_39d_32d_39d_125d_39d
+ private fun state__39d_123d_39d_32dpair: LRState_39d_123d_39d_32dpair do return once new LRState_39d_123d_39d_32dpair
+ private fun state__39d_123d_39d_32dstring: LRState_39d_123d_39d_32dstring do return once new LRState_39d_123d_39d_32dstring
+ private fun state__39d_91d_39d_32delements: LRState_39d_91d_39d_32delements do return once new LRState_39d_91d_39d_32delements
+ private fun state__39d_91d_39d_32d_39d_93d_39d: LRState_39d_91d_39d_32d_39d_93d_39d do return once new LRState_39d_91d_39d_32d_39d_93d_39d
+ private fun state__39d_91d_39d_32dvalue: LRState_39d_91d_39d_32dvalue do return once new LRState_39d_91d_39d_32dvalue
+ private fun state__39d_123d_39d_32dmembers_32d_39d_125d_39d: LRState_39d_123d_39d_32dmembers_32d_39d_125d_39d do return once new LRState_39d_123d_39d_32dmembers_32d_39d_125d_39d
+ private fun state__39d_123d_39d_32dmembers_32d_39d_44d_39d: LRState_39d_123d_39d_32dmembers_32d_39d_44d_39d do return once new LRState_39d_123d_39d_32dmembers_32d_39d_44d_39d
+ private fun state__39d_123d_39d_32dstring_32d_39d_58d_39d: LRState_39d_123d_39d_32dstring_32d_39d_58d_39d do return once new LRState_39d_123d_39d_32dstring_32d_39d_58d_39d
+ private fun state__39d_91d_39d_32delements_32d_39d_93d_39d: LRState_39d_91d_39d_32delements_32d_39d_93d_39d do return once new LRState_39d_91d_39d_32delements_32d_39d_93d_39d
+ private fun state__39d_91d_39d_32delements_32d_39d_44d_39d: LRState_39d_91d_39d_32delements_32d_39d_44d_39d do return once new LRState_39d_91d_39d_32delements_32d_39d_44d_39d
+ private fun state__39d_123d_39d_32dmembers_32d_39d_44d_39d_32dpair: LRState_39d_123d_39d_32dmembers_32d_39d_44d_39d_32dpair do return once new LRState_39d_123d_39d_32dmembers_32d_39d_44d_39d_32dpair
+ private fun state__39d_123d_39d_32dstring_32d_39d_58d_39d_32dvalue: LRState_39d_123d_39d_32dstring_32d_39d_58d_39d_32dvalue do return once new LRState_39d_123d_39d_32dstring_32d_39d_58d_39d_32dvalue
+ private fun state__39d_91d_39d_32delements_32d_39d_44d_39d_32dvalue: LRState_39d_91d_39d_32delements_32d_39d_44d_39d_32dvalue do return once new LRState_39d_91d_39d_32delements_32d_39d_44d_39d_32dvalue
+ private fun goto_Nvalue: Goto_Nvalue do return once new Goto_Nvalue
+ private fun goto_Nmembers: Goto_Nmembers do return once new Goto_Nmembers
+ private fun goto_Npair: Goto_Npair do return once new Goto_Npair
+ private fun goto_Nelements: Goto_Nelements do return once new Goto_Nelements
+ private fun goto_N_start: Goto_N_start do return once new Goto_N_start
+end
+redef class NToken
+ # guarded action for state Start
+ # 7 shift(s) and 0 reduce(s)
+ private fun action_sStart(parser: Parser) do
+ parser.parse_error
+ end
+ # guarded action for state value
+ # 1 shift(s) and 0 reduce(s)
+ private fun action_svalue(parser: Parser) do
+ parser.parse_error
+ end
+ # guarded action for state '{'
+ # 2 shift(s) and 0 reduce(s)
+ private fun action_s_39d_123d_39d(parser: Parser) do
+ parser.parse_error
+ end
+ # guarded action for state '['
+ # 8 shift(s) and 0 reduce(s)
+ private fun action_s_39d_91d_39d(parser: Parser) do
+ parser.parse_error
+ end
+ # guarded action for state '{' members
+ # 2 shift(s) and 0 reduce(s)
+ private fun action_s_39d_123d_39d_32dmembers(parser: Parser) do
+ parser.parse_error
+ end
+ # guarded action for state '{' string
+ # 1 shift(s) and 0 reduce(s)
+ private fun action_s_39d_123d_39d_32dstring(parser: Parser) do
+ parser.parse_error
+ end
+ # guarded action for state '[' elements
+ # 2 shift(s) and 0 reduce(s)
+ private fun action_s_39d_91d_39d_32delements(parser: Parser) do
+ parser.parse_error
+ end
+ # guarded action for state '{' members ','
+ # 1 shift(s) and 0 reduce(s)
+ private fun action_s_39d_123d_39d_32dmembers_32d_39d_44d_39d(parser: Parser) do
+ parser.parse_error
+ end
+ # guarded action for state '{' string ':'
+ # 7 shift(s) and 0 reduce(s)
+ private fun action_s_39d_123d_39d_32dstring_32d_39d_58d_39d(parser: Parser) do
+ parser.parse_error
+ end
+ # guarded action for state '[' elements ','
+ # 7 shift(s) and 0 reduce(s)
+ private fun action_s_39d_91d_39d_32delements_32d_39d_44d_39d(parser: Parser) do
+ parser.parse_error
+ end
+end
+class N_39d_123d_39d
+ super NToken
+ redef fun action_sStart(parser) do
+ parser.shift(state__39d_123d_39d)
+ end
+ redef fun action_s_39d_91d_39d(parser) do
+ parser.shift(state__39d_123d_39d)
+ end
+ redef fun action_s_39d_123d_39d_32dstring_32d_39d_58d_39d(parser) do
+ parser.shift(state__39d_123d_39d)
+ end
+ redef fun action_s_39d_91d_39d_32delements_32d_39d_44d_39d(parser) do
+ parser.shift(state__39d_123d_39d)
+ end
+ redef fun node_name do return "\'\{\'"
+end
+class N_39d_125d_39d
+ super NToken
+ redef fun action_s_39d_123d_39d(parser) do
+ parser.shift(state__39d_123d_39d_32d_39d_125d_39d)
+ end
+ redef fun action_s_39d_123d_39d_32dmembers(parser) do
+ parser.shift(state__39d_123d_39d_32dmembers_32d_39d_125d_39d)
+ end
+ redef fun node_name do return "\'\}\'"
+end
+class N_39d_91d_39d
+ super NToken
+ redef fun action_sStart(parser) do
+ parser.shift(state__39d_91d_39d)
+ end
+ redef fun action_s_39d_91d_39d(parser) do
+ parser.shift(state__39d_91d_39d)
+ end
+ redef fun action_s_39d_123d_39d_32dstring_32d_39d_58d_39d(parser) do
+ parser.shift(state__39d_91d_39d)
+ end
+ redef fun action_s_39d_91d_39d_32delements_32d_39d_44d_39d(parser) do
+ parser.shift(state__39d_91d_39d)
+ end
+ redef fun node_name do return "\'[\'"
+end
+class N_39d_93d_39d
+ super NToken
+ redef fun action_s_39d_91d_39d(parser) do
+ parser.shift(state__39d_91d_39d_32d_39d_93d_39d)
+ end
+ redef fun action_s_39d_91d_39d_32delements(parser) do
+ parser.shift(state__39d_91d_39d_32delements_32d_39d_93d_39d)
+ end
+ redef fun node_name do return "\']\'"
+end
+class Nnumber
+ super NToken
+ redef fun action_sStart(parser) do
+ parser.shift(state_number)
+ end
+ redef fun action_s_39d_91d_39d(parser) do
+ parser.shift(state_number)
+ end
+ redef fun action_s_39d_123d_39d_32dstring_32d_39d_58d_39d(parser) do
+ parser.shift(state_number)
+ end
+ redef fun action_s_39d_91d_39d_32delements_32d_39d_44d_39d(parser) do
+ parser.shift(state_number)
+ end
+ redef fun node_name do return "number"
+end
+class Nstring
+ super NToken
+ redef fun action_sStart(parser) do
+ parser.shift(state_string)
+ end
+ redef fun action_s_39d_123d_39d(parser) do
+ parser.shift(state__39d_123d_39d_32dstring)
+ end
+ redef fun action_s_39d_91d_39d(parser) do
+ parser.shift(state_string)
+ end
+ redef fun action_s_39d_123d_39d_32dmembers_32d_39d_44d_39d(parser) do
+ parser.shift(state__39d_123d_39d_32dstring)
+ end
+ redef fun action_s_39d_123d_39d_32dstring_32d_39d_58d_39d(parser) do
+ parser.shift(state_string)
+ end
+ redef fun action_s_39d_91d_39d_32delements_32d_39d_44d_39d(parser) do
+ parser.shift(state_string)
+ end
+ redef fun node_name do return "string"
+end
+class N_39dtrue_39d
+ super NToken
+ redef fun action_sStart(parser) do
+ parser.shift(state__39dtrue_39d)
+ end
+ redef fun action_s_39d_91d_39d(parser) do
+ parser.shift(state__39dtrue_39d)
+ end
+ redef fun action_s_39d_123d_39d_32dstring_32d_39d_58d_39d(parser) do
+ parser.shift(state__39dtrue_39d)
+ end
+ redef fun action_s_39d_91d_39d_32delements_32d_39d_44d_39d(parser) do
+ parser.shift(state__39dtrue_39d)
+ end
+ redef fun node_name do return "\'true\'"
+end
+class N_39dfalse_39d
+ super NToken
+ redef fun action_sStart(parser) do
+ parser.shift(state__39dfalse_39d)
+ end
+ redef fun action_s_39d_91d_39d(parser) do
+ parser.shift(state__39dfalse_39d)
+ end
+ redef fun action_s_39d_123d_39d_32dstring_32d_39d_58d_39d(parser) do
+ parser.shift(state__39dfalse_39d)
+ end
+ redef fun action_s_39d_91d_39d_32delements_32d_39d_44d_39d(parser) do
+ parser.shift(state__39dfalse_39d)
+ end
+ redef fun node_name do return "\'false\'"
+end
+class N_39dnull_39d
+ super NToken
+ redef fun action_sStart(parser) do
+ parser.shift(state__39dnull_39d)
+ end
+ redef fun action_s_39d_91d_39d(parser) do
+ parser.shift(state__39dnull_39d)
+ end
+ redef fun action_s_39d_123d_39d_32dstring_32d_39d_58d_39d(parser) do
+ parser.shift(state__39dnull_39d)
+ end
+ redef fun action_s_39d_91d_39d_32delements_32d_39d_44d_39d(parser) do
+ parser.shift(state__39dnull_39d)
+ end
+ redef fun node_name do return "\'null\'"
+end
+class N_39d_44d_39d
+ super NToken
+ redef fun action_s_39d_123d_39d_32dmembers(parser) do
+ parser.shift(state__39d_123d_39d_32dmembers_32d_39d_44d_39d)
+ end
+ redef fun action_s_39d_91d_39d_32delements(parser) do
+ parser.shift(state__39d_91d_39d_32delements_32d_39d_44d_39d)
+ end
+ redef fun node_name do return "\',\'"
+end
+class N_39d_58d_39d
+ super NToken
+ redef fun action_s_39d_123d_39d_32dstring(parser) do
+ parser.shift(state__39d_123d_39d_32dstring_32d_39d_58d_39d)
+ end
+ redef fun node_name do return "\':\'"
+end
+redef class NEof
+ super NToken
+ redef fun action_svalue(parser) do
+ parser.shift(state_value_32dEof)
+ end
+ redef fun node_name do return "Eof"
+end
+redef class LRGoto
+ private fun goto_s_39d_123d_39d(parser: Parser) do abort
+ private fun goto_s_39d_91d_39d(parser: Parser) do abort
+end
+class Goto_Nvalue
+ super LRGoto
+ redef fun goto_s_39d_91d_39d(parser) do
+ parser.push(state__39d_91d_39d_32dvalue)
+ end
+end
+class Goto_Nmembers
+ super LRGoto
+ redef fun goto_s_39d_123d_39d(parser) do
+ parser.push(state__39d_123d_39d_32dmembers)
+ end
+end
+class Goto_Npair
+ super LRGoto
+ redef fun goto_s_39d_123d_39d(parser) do
+ parser.push(state__39d_123d_39d_32dpair)
+ end
+end
+class Goto_Nelements
+ super LRGoto
+ redef fun goto_s_39d_91d_39d(parser) do
+ parser.push(state__39d_91d_39d_32delements)
+ end
+end
+class Goto_N_start
+ super LRGoto
+end
+class Nvalue
+ super NProd
+ redef fun node_name do return "value"
+end
+class Nvalue_number
+ super Nvalue
+ redef fun node_name do return "value_number"
+ var n_number: Nnumber
+ init(n_number: Nnumber) do
+ self.n_number = n_number
+ end
+ redef fun number_of_children do return 1
+ redef fun child(i) do
+ if i == 0 then return n_number
+ abort
+ end
+end
+class Nvalue_string
+ super Nvalue
+ redef fun node_name do return "value_string"
+ var n_string: Nstring
+ init(n_string: Nstring) do
+ self.n_string = n_string
+ end
+ redef fun number_of_children do return 1
+ redef fun child(i) do
+ if i == 0 then return n_string
+ abort
+ end
+end
+class Nvalue_true
+ super Nvalue
+ redef fun node_name do return "value_true"
+ var n_0: N_39dtrue_39d
+ init(n_0: N_39dtrue_39d) do
+ self.n_0 = n_0
+ end
+ redef fun number_of_children do return 1
+ redef fun child(i) do
+ if i == 0 then return n_0
+ abort
+ end
+end
+class Nvalue_false
+ super Nvalue
+ redef fun node_name do return "value_false"
+ var n_0: N_39dfalse_39d
+ init(n_0: N_39dfalse_39d) do
+ self.n_0 = n_0
+ end
+ redef fun number_of_children do return 1
+ redef fun child(i) do
+ if i == 0 then return n_0
+ abort
+ end
+end
+class Nvalue_null
+ super Nvalue
+ redef fun node_name do return "value_null"
+ var n_0: N_39dnull_39d
+ init(n_0: N_39dnull_39d) do
+ self.n_0 = n_0
+ end
+ redef fun number_of_children do return 1
+ redef fun child(i) do
+ if i == 0 then return n_0
+ abort
+ end
+end
+class Nvalue_object
+ super Nvalue
+ redef fun node_name do return "value_object"
+ var n_0: N_39d_123d_39d
+ var n_members: nullable Nmembers
+ var n_2: N_39d_125d_39d
+ init(n_0: N_39d_123d_39d, n_members: nullable Nmembers, n_2: N_39d_125d_39d) do
+ self.n_0 = n_0
+ self.n_members = n_members
+ self.n_2 = n_2
+ end
+ redef fun number_of_children do return 3
+ redef fun child(i) do
+ if i == 0 then return n_0
+ if i == 1 then return n_members
+ if i == 2 then return n_2
+ abort
+ end
+end
+class Nvalue_array
+ super Nvalue
+ redef fun node_name do return "value_array"
+ var n_0: N_39d_91d_39d
+ var n_elements: nullable Nelements
+ var n_2: N_39d_93d_39d
+ init(n_0: N_39d_91d_39d, n_elements: nullable Nelements, n_2: N_39d_93d_39d) do
+ self.n_0 = n_0
+ self.n_elements = n_elements
+ self.n_2 = n_2
+ end
+ redef fun number_of_children do return 3
+ redef fun child(i) do
+ if i == 0 then return n_0
+ if i == 1 then return n_elements
+ if i == 2 then return n_2
+ abort
+ end
+end
+class Nmembers
+ super NProd
+ redef fun node_name do return "members"
+end
+class Nmembers_tail
+ super Nmembers
+ redef fun node_name do return "members_tail"
+ var n_members: Nmembers
+ var n_1: N_39d_44d_39d
+ var n_pair: Npair
+ init(n_members: Nmembers, n_1: N_39d_44d_39d, n_pair: Npair) do
+ self.n_members = n_members
+ self.n_1 = n_1
+ self.n_pair = n_pair
+ end
+ redef fun number_of_children do return 3
+ redef fun child(i) do
+ if i == 0 then return n_members
+ if i == 1 then return n_1
+ if i == 2 then return n_pair
+ abort
+ end
+end
+class Nmembers_head
+ super Nmembers
+ redef fun node_name do return "members_head"
+ var n_pair: Npair
+ init(n_pair: Npair) do
+ self.n_pair = n_pair
+ end
+ redef fun number_of_children do return 1
+ redef fun child(i) do
+ if i == 0 then return n_pair
+ abort
+ end
+end
+class Npair
+ super NProd
+ redef fun node_name do return "pair"
+ var n_string: Nstring
+ var n_1: N_39d_58d_39d
+ var n_value: Nvalue
+ init(n_string: Nstring, n_1: N_39d_58d_39d, n_value: Nvalue) do
+ self.n_string = n_string
+ self.n_1 = n_1
+ self.n_value = n_value
+ end
+ redef fun number_of_children do return 3
+ redef fun child(i) do
+ if i == 0 then return n_string
+ if i == 1 then return n_1
+ if i == 2 then return n_value
+ abort
+ end
+end
+class Nelements
+ super NProd
+ redef fun node_name do return "elements"
+end
+class Nelements_tail
+ super Nelements
+ redef fun node_name do return "elements_tail"
+ var n_elements: Nelements
+ var n_1: N_39d_44d_39d
+ var n_value: Nvalue
+ init(n_elements: Nelements, n_1: N_39d_44d_39d, n_value: Nvalue) do
+ self.n_elements = n_elements
+ self.n_1 = n_1
+ self.n_value = n_value
+ end
+ redef fun number_of_children do return 3
+ redef fun child(i) do
+ if i == 0 then return n_elements
+ if i == 1 then return n_1
+ if i == 2 then return n_value
+ abort
+ end
+end
+class Nelements_head
+ super Nelements
+ redef fun node_name do return "elements_head"
+ var n_value: Nvalue
+ init(n_value: Nvalue) do
+ self.n_value = n_value
+ end
+ redef fun number_of_children do return 1
+ redef fun child(i) do
+ if i == 0 then return n_value
+ abort
+ end
+end
+class N_start
+ super NProd
+ redef fun node_name do return "_start"
+end
+class NStart
+ super N_start
+ redef fun node_name do return "Start"
+ var n_0: Nvalue
+ var n_1: NEof
+ init(n_0: Nvalue, n_1: NEof) do
+ self.n_0 = n_0
+ self.n_1 = n_1
+ end
+ redef fun number_of_children do return 2
+ redef fun child(i) do
+ if i == 0 then return n_0
+ if i == 1 then return n_1
+ abort
+ end
+end
+# State Start
+private class LRStateStart
+ super LRState
+ redef fun to_s do return "Start"
+ redef fun error_msg do return "value"
+ redef fun action(parser) do
+ parser.peek_token.action_sStart(parser)
+ end
+ redef fun goto(parser, goto) do
+ parser.push(state_value)
+ end
+end
+# State value
+private class LRStatevalue
+ super LRState
+ redef fun to_s do return "value"
+ redef fun error_msg do return "Eof"
+ redef fun action(parser) do
+ parser.peek_token.action_svalue(parser)
+ end
+end
+# State number
+private class LRStatenumber
+ super LRState
+ redef fun to_s do return "number"
+ redef fun error_msg do return ""
+ redef fun action(parser) do
+ # REDUCE value::value_number=number
+ var n0 = parser.pop.as(Nnumber)
+ var p1 = new Nvalue_number(n0)
+ var prod = p1
+ parser.node_stack.push prod
+ parser.goto(goto_Nvalue)
+ end
+end
+# State string
+private class LRStatestring
+ super LRState
+ redef fun to_s do return "string"
+ redef fun error_msg do return ""
+ redef fun action(parser) do
+ # REDUCE value::value_string=string
+ var n0 = parser.pop.as(Nstring)
+ var p1 = new Nvalue_string(n0)
+ var prod = p1
+ parser.node_stack.push prod
+ parser.goto(goto_Nvalue)
+ end
+end
+# State 'true'
+private class LRState_39dtrue_39d
+ super LRState
+ redef fun to_s do return "\'true\'"
+ redef fun error_msg do return ""
+ redef fun action(parser) do
+ # REDUCE value::value_true='true'
+ var n0 = parser.pop.as(N_39dtrue_39d)
+ var p1 = new Nvalue_true(n0)
+ var prod = p1
+ parser.node_stack.push prod
+ parser.goto(goto_Nvalue)
+ end
+end
+# State 'false'
+private class LRState_39dfalse_39d
+ super LRState
+ redef fun to_s do return "\'false\'"
+ redef fun error_msg do return ""
+ redef fun action(parser) do
+ # REDUCE value::value_false='false'
+ var n0 = parser.pop.as(N_39dfalse_39d)
+ var p1 = new Nvalue_false(n0)
+ var prod = p1
+ parser.node_stack.push prod
+ parser.goto(goto_Nvalue)
+ end
+end
+# State 'null'
+private class LRState_39dnull_39d
+ super LRState
+ redef fun to_s do return "\'null\'"
+ redef fun error_msg do return ""
+ redef fun action(parser) do
+ # REDUCE value::value_null='null'
+ var n0 = parser.pop.as(N_39dnull_39d)
+ var p1 = new Nvalue_null(n0)
+ var prod = p1
+ parser.node_stack.push prod
+ parser.goto(goto_Nvalue)
+ end
+end
+# State '{'
+private class LRState_39d_123d_39d
+ super LRState
+ redef fun to_s do return "\'\{\'"
+ redef fun error_msg do return "members, pair"
+ redef fun action(parser) do
+ parser.peek_token.action_s_39d_123d_39d(parser)
+ end
+ redef fun goto(parser, goto) do
+ goto.goto_s_39d_123d_39d(parser)
+ end
+end
+# State '['
+private class LRState_39d_91d_39d
+ super LRState
+ redef fun to_s do return "\'[\'"
+ redef fun error_msg do return "elements, value"
+ redef fun action(parser) do
+ parser.peek_token.action_s_39d_91d_39d(parser)
+ end
+ redef fun goto(parser, goto) do
+ goto.goto_s_39d_91d_39d(parser)
+ end
+end
+# State value Eof
+private class LRStatevalue_32dEof
+ super LRState
+ redef fun to_s do return "value Eof"
+ redef fun error_msg do return ""
+ redef fun action(parser) do
+ # REDUCE _start::Start=value Eof
+ var n1 = parser.pop.as(NEof)
+ var n0 = parser.pop.as(Nvalue)
+ var p1 = new NStart(n0, n1)
+ var prod = p1
+ parser.node_stack.push prod
+ parser.stop = true
+ end
+end
+# State '{' members
+private class LRState_39d_123d_39d_32dmembers
+ super LRState
+ redef fun to_s do return "\'\{\' members"
+ redef fun error_msg do return "\'\}\', \',\'"
+ redef fun action(parser) do
+ parser.peek_token.action_s_39d_123d_39d_32dmembers(parser)
+ end
+end
+# State '{' '}'
+private class LRState_39d_123d_39d_32d_39d_125d_39d
+ super LRState
+ redef fun to_s do return "\'\{\' \'\}\'"
+ redef fun error_msg do return ""
+ redef fun action(parser) do
+ # REDUCE value::value_object_1='{' '}'
+ var n1 = parser.pop.as(N_39d_125d_39d)
+ var n0 = parser.pop.as(N_39d_123d_39d)
+ var p1 = new Nvalue_object(n0, null, n1)
+ var prod = p1
+ parser.node_stack.push prod
+ parser.goto(goto_Nvalue)
+ end
+end
+# State '{' pair
+private class LRState_39d_123d_39d_32dpair
+ super LRState
+ redef fun to_s do return "\'\{\' pair"
+ redef fun error_msg do return ""
+ redef fun action(parser) do
+ # REDUCE members::members_head=pair
+ var n0 = parser.pop.as(Npair)
+ var p1 = new Nmembers_head(n0)
+ var prod = p1
+ parser.node_stack.push prod
+ parser.goto(goto_Nmembers)
+ end
+end
+# State '{' string
+private class LRState_39d_123d_39d_32dstring
+ super LRState
+ redef fun to_s do return "\'\{\' string"
+ redef fun error_msg do return "\':\'"
+ redef fun action(parser) do
+ parser.peek_token.action_s_39d_123d_39d_32dstring(parser)
+ end
+end
+# State '[' elements
+private class LRState_39d_91d_39d_32delements
+ super LRState
+ redef fun to_s do return "\'[\' elements"
+ redef fun error_msg do return "\']\', \',\'"
+ redef fun action(parser) do
+ parser.peek_token.action_s_39d_91d_39d_32delements(parser)
+ end
+end
+# State '[' ']'
+private class LRState_39d_91d_39d_32d_39d_93d_39d
+ super LRState
+ redef fun to_s do return "\'[\' \']\'"
+ redef fun error_msg do return ""
+ redef fun action(parser) do
+ # REDUCE value::value_array_1='[' ']'
+ var n1 = parser.pop.as(N_39d_93d_39d)
+ var n0 = parser.pop.as(N_39d_91d_39d)
+ var p1 = new Nvalue_array(n0, null, n1)
+ var prod = p1
+ parser.node_stack.push prod
+ parser.goto(goto_Nvalue)
+ end
+end
+# State '[' value
+private class LRState_39d_91d_39d_32dvalue
+ super LRState
+ redef fun to_s do return "\'[\' value"
+ redef fun error_msg do return ""
+ redef fun action(parser) do
+ # REDUCE elements::elements_head=value
+ var n0 = parser.pop.as(Nvalue)
+ var p1 = new Nelements_head(n0)
+ var prod = p1
+ parser.node_stack.push prod
+ parser.goto(goto_Nelements)
+ end
+end
+# State '{' members '}'
+private class LRState_39d_123d_39d_32dmembers_32d_39d_125d_39d
+ super LRState
+ redef fun to_s do return "\'\{\' members \'\}\'"
+ redef fun error_msg do return ""
+ redef fun action(parser) do
+ # REDUCE value::value_object_0='{' members '}'
+ var n2 = parser.pop.as(N_39d_125d_39d)
+ var n1 = parser.pop.as(Nmembers)
+ var n0 = parser.pop.as(N_39d_123d_39d)
+ var p1 = new Nvalue_object(n0, n1, n2)
+ var prod = p1
+ parser.node_stack.push prod
+ parser.goto(goto_Nvalue)
+ end
+end
+# State '{' members ','
+private class LRState_39d_123d_39d_32dmembers_32d_39d_44d_39d
+ super LRState
+ redef fun to_s do return "\'\{\' members \',\'"
+ redef fun error_msg do return "pair"
+ redef fun action(parser) do
+ parser.peek_token.action_s_39d_123d_39d_32dmembers_32d_39d_44d_39d(parser)
+ end
+ redef fun goto(parser, goto) do
+ parser.push(state__39d_123d_39d_32dmembers_32d_39d_44d_39d_32dpair)
+ end
+end
+# State '{' string ':'
+private class LRState_39d_123d_39d_32dstring_32d_39d_58d_39d
+ super LRState
+ redef fun to_s do return "\'\{\' string \':\'"
+ redef fun error_msg do return "value"
+ redef fun action(parser) do
+ parser.peek_token.action_s_39d_123d_39d_32dstring_32d_39d_58d_39d(parser)
+ end
+ redef fun goto(parser, goto) do
+ parser.push(state__39d_123d_39d_32dstring_32d_39d_58d_39d_32dvalue)
+ end
+end
+# State '[' elements ']'
+private class LRState_39d_91d_39d_32delements_32d_39d_93d_39d
+ super LRState
+ redef fun to_s do return "\'[\' elements \']\'"
+ redef fun error_msg do return ""
+ redef fun action(parser) do
+ # REDUCE value::value_array_0='[' elements ']'
+ var n2 = parser.pop.as(N_39d_93d_39d)
+ var n1 = parser.pop.as(Nelements)
+ var n0 = parser.pop.as(N_39d_91d_39d)
+ var p1 = new Nvalue_array(n0, n1, n2)
+ var prod = p1
+ parser.node_stack.push prod
+ parser.goto(goto_Nvalue)
+ end
+end
+# State '[' elements ','
+private class LRState_39d_91d_39d_32delements_32d_39d_44d_39d
+ super LRState
+ redef fun to_s do return "\'[\' elements \',\'"
+ redef fun error_msg do return "value"
+ redef fun action(parser) do
+ parser.peek_token.action_s_39d_91d_39d_32delements_32d_39d_44d_39d(parser)
+ end
+ redef fun goto(parser, goto) do
+ parser.push(state__39d_91d_39d_32delements_32d_39d_44d_39d_32dvalue)
+ end
+end
+# State '{' members ',' pair
+private class LRState_39d_123d_39d_32dmembers_32d_39d_44d_39d_32dpair
+ super LRState
+ redef fun to_s do return "\'\{\' members \',\' pair"
+ redef fun error_msg do return ""
+ redef fun action(parser) do
+ # REDUCE members::members_tail=members ',' pair
+ var n2 = parser.pop.as(Npair)
+ var n1 = parser.pop.as(N_39d_44d_39d)
+ var n0 = parser.pop.as(Nmembers)
+ var p1 = new Nmembers_tail(n0, n1, n2)
+ var prod = p1
+ parser.node_stack.push prod
+ parser.goto(goto_Nmembers)
+ end
+end
+# State '{' string ':' value
+private class LRState_39d_123d_39d_32dstring_32d_39d_58d_39d_32dvalue
+ super LRState
+ redef fun to_s do return "\'\{\' string \':\' value"
+ redef fun error_msg do return ""
+ redef fun action(parser) do
+ # REDUCE pair::pair=string ':' value
+ var n2 = parser.pop.as(Nvalue)
+ var n1 = parser.pop.as(N_39d_58d_39d)
+ var n0 = parser.pop.as(Nstring)
+ var p1 = new Npair(n0, n1, n2)
+ var prod = p1
+ parser.node_stack.push prod
+ parser.goto(goto_Npair)
+ end
+end
+# State '[' elements ',' value
+private class LRState_39d_91d_39d_32delements_32d_39d_44d_39d_32dvalue
+ super LRState
+ redef fun to_s do return "\'[\' elements \',\' value"
+ redef fun error_msg do return ""
+ redef fun action(parser) do
+ # REDUCE elements::elements_tail=elements ',' value
+ var n2 = parser.pop.as(Nvalue)
+ var n1 = parser.pop.as(N_39d_44d_39d)
+ var n0 = parser.pop.as(Nelements)
+ var p1 = new Nelements_tail(n0, n1, n2)
+ var prod = p1
+ parser.node_stack.push prod
+ parser.goto(goto_Nelements)
+ end
+end