@@ -1,17 +1,18 @@
1−{\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470
1+{\rtf1\ansi\ansicpg1252\cocoartf1504
22{\fonttbl\f0\fnil\fcharset0 Menlo-Regular;}
3−{\colortbl;\red255\green255\blue255;\red255\green164\blue159;\red194\green229\blue166;\red134\green205\blue77;
4−}
3+{\colortbl;\red255\green255\blue255;\red255\green164\blue159;\red255\green255\blue255;\red194\green229\blue166;
4+\red134\green205\blue77;\red255\green164\blue159;\red194\green229\blue166;\red134\green205\blue77;}
5+{\*\expandedcolortbl;\csgray\c100000;\csgenericrgb\c100000\c64314\c62353;\csgray\c100000;\csgenericrgb\c76078\c89804\c65098;
6+\csgenericrgb\c52549\c80392\c30196;\csgenericrgb\c100000\c64314\c62353;\csgenericrgb\c76078\c89804\c65098;\csgenericrgb\c52549\c80392\c30196;}
57\paperw11900\paperh16840\margl1440\margr1440\vieww19400\viewh13040\viewkind0
68\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
79
8−\f0\fs24 \cf0 static int state_transition_table[NR_STATES][NR_CLASSES] = \{\
9− /*\
10− The state transition table takes the current state and the current symbol,\
11− and returns either a new state or an action. An action is represented as a\
12− negative number. A JSON text is accepted if at the end of the text the\
13− state is OK and if the mode is MODE_DONE.\
14− \
10+\f0\fs24 \cf0 bug 1: rejection of 0e1\
11+-> add missing transition ZE -> eE -> E1\
12+\
13+\
14+\
15+\
1516 white 1-9 ABCDF etc\
1617 space | \{ \} [ ] : , " \\ / + - . 0 | a b c d e f l n r s t u | E |*/\
1718 /*start GO*/ \{GO,GO,-6,__,-5,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\
@@ -28,17 +29,61 @@
2829 /*u3 U3*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,U4,U4,U4,U4,U4,U4,U4,U4,__,__,__,__,__,__,U4,U4,__\},\
2930 /*u4 U4*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,ST,ST,ST,ST,ST,ST,ST,ST,__,__,__,__,__,__,ST,ST,__\},\
3031 /*minus MI*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,ZE,IN,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\
31−\
32−\cb2 -/*zero ZE*/ \{OK,OK,__,-8,__,-7,__,-3,__,__,__,__,__,FR,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\cb1 \
3332\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
34−\cf0 \cb3 +/*zero ZE*/ \{OK,OK,__,-8,__,-7,__,-3,__,__,__,__,__,\cb4 F0\cb3 ,__,__,__,__,__,__,\cb4 E1\cb3 ,__,__,__,__,__,__,__,__,\cb4 E1\cb3 ,__\},\cb1 \
33+\cf0 \cb2 -/*zero ZE*/ \{OK,OK,__,-8,__,-7,__,-3,__,__,__,__,__,FR,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\cb3 \
3534\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
36−\cf0 \
37−\cb2 -/*int IN*/ \{OK,OK,__,-8,__,-7,__,-3,__,__,__,__,__,FR,IN,IN,__,__,__,__,E1,__,__,__,__,__,__,__,__,E1,__\},\cb1 \
38−\cb3 +/*int IN*/ \{OK,OK,__,-8,__,-7,__,-3,__,__,__,__,__,\cb4 F0\cb3 ,IN,IN,__,__,__,__,E1,__,__,__,__,__,__,__,__,E1,__\},\cb1 \
35+\cf0 \cb4 +/*zero ZE*/ \{OK,OK,__,-8,__,-7,__,-3,__,__,__,__,__,FR,__,__,__,__,__,__,\cb5 E1\cb4 ,__,__,__,__,__,__,__,__,\cb5 E1\cb4 ,__\},\cb3 \
36+ /*int IN*/ \{OK,OK,__,-8,__,-7,__,-3,__,__,__,__,__,FR,IN,IN,__,__,__,__,E1,__,__,__,__,__,__,__,__,E1,__\},\
37+ /*frac FR*/ \{OK,OK,__,-8,__,-7,__,-3,__,__,__,__,__,__,FR,FR,__,__,__,__,E1,__,__,__,__,__,__,__,__,E1,__\},\
38+ /*e E1*/ \{__,__,__,__,__,__,__,__,__,__,__,E2,E2,__,E3,E3,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\
39+ /*ex E2*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,E3,E3,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\
40+ /*exp E3*/ \{OK,OK,__,-8,__,-7,__,-3,__,__,__,__,__,__,E3,E3,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\
41+ /*tr T1*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,T2,__,__,__,__,__,__\},\
42+ /*tru T2*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,T3,__,__,__\},\
43+ /*true T3*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,OK,__,__,__,__,__,__,__,__,__,__\},\
44+ /*fa F1*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,F2,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\
45+ /*fal F2*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,F3,__,__,__,__,__,__,__,__\},\
46+ /*fals F3*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,F4,__,__,__,__,__\},\
47+ /*false F4*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,OK,__,__,__,__,__,__,__,__,__,__\},\
48+ /*nu N1*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,N2,__,__,__\},\
49+ /*nul N2*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,N3,__,__,__,__,__,__,__,__\},\
50+ /*null N3*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,OK,__,__,__,__,__,__,__,__\},\
51+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
52+\cf0 \cb1 \
53+\
54+\
55+\
56+bug 2: acceptance of [1.]\
57+-> require digit after dot\
58+-> add missing state F0\
59+-> update transition IN -> . -> F0\
3960\
40−\cb3 +/*frac0 F0*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,FR,FR,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\cb1 \
4161\
62+\
63+ white 1-9 ABCDF etc\
64+ space | \{ \} [ ] : , " \\ / + - . 0 | a b c d e f l n r s t u | E |*/\
65+ /*start GO*/ \{GO,GO,-6,__,-5,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\
66+ /*ok OK*/ \{OK,OK,__,-8,__,-7,__,-3,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\
67+ /*object OB*/ \{OB,OB,__,-9,__,__,__,__,ST,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\
68+ /*key KE*/ \{KE,KE,__,__,__,__,__,__,ST,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\
69+ /*colon CO*/ \{CO,CO,__,__,__,__,-2,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\
70+ /*value VA*/ \{VA,VA,-6,__,-5,__,__,__,ST,__,__,__,MI,__,ZE,IN,__,__,__,__,__,F1,__,N1,__,__,T1,__,__,__,__\},\
71+ /*array AR*/ \{AR,AR,-6,__,-5,-7,__,__,ST,__,__,__,MI,__,ZE,IN,__,__,__,__,__,F1,__,N1,__,__,T1,__,__,__,__\},\
72+ /*string ST*/ \{ST,__,ST,ST,ST,ST,ST,ST,-4,ES,ST,ST,ST,ST,ST,ST,ST,ST,ST,ST,ST,ST,ST,ST,ST,ST,ST,ST,ST,ST,ST\},\
73+ /*escape ES*/ \{__,__,__,__,__,__,__,__,ST,ST,ST,__,__,__,__,__,__,ST,__,__,__,ST,__,ST,ST,__,ST,U1,__,__,__\},\
74+ /*u1 U1*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,U2,U2,U2,U2,U2,U2,U2,U2,__,__,__,__,__,__,U2,U2,__\},\
75+ /*u2 U2*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,U3,U3,U3,U3,U3,U3,U3,U3,__,__,__,__,__,__,U3,U3,__\},\
76+ /*u3 U3*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,U4,U4,U4,U4,U4,U4,U4,U4,__,__,__,__,__,__,U4,U4,__\},\
77+ /*u4 U4*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,ST,ST,ST,ST,ST,ST,ST,ST,__,__,__,__,__,__,ST,ST,__\},\
78+ /*minus MI*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,ZE,IN,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\
79+\cb6 -/*zero ZE*/ \{OK,OK,__,-8,__,-7,__,-3,__,__,__,__,__,FR,__,__,__,__,__,__,E1,__,__,__,__,__,__,__,__,E1,__\},\cb1 \
80+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
81+\cf0 \cb7 +/*zero ZE*/ \{OK,OK,__,-8,__,-7,__,-3,__,__,__,__,__,\cb8 F0\cb7 ,__,__,__,__,__,__,\cb4 E1\cb7 ,__,__,__,__,__,__,__,__,\cb4 E1\cb7 ,__\},\cb1 \
82+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
83+\cf0 \cb6 -/*int IN*/ \{OK,OK,__,-8,__,-7,__,-3,__,__,__,__,__,FR,IN,IN,__,__,__,__,E1,__,__,__,__,__,__,__,__,E1,__\},\cb1 \
84+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
85+\cf0 \cb7 +/*int IN*/ \{OK,OK,__,-8,__,-7,__,-3,__,__,__,__,__,\cb8 F0\cb7 ,IN,IN,__,__,__,__,E1,__,__,__,__,__,__,__,__,E1,__\},\cb1 \
86+\cb7 +/*frac0 F0*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,FR,FR,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\cb1 \
4287 /*frac FR*/ \{OK,OK,__,-8,__,-7,__,-3,__,__,__,__,__,__,FR,FR,__,__,__,__,E1,__,__,__,__,__,__,__,__,E1,__\},\
4388 /*e E1*/ \{__,__,__,__,__,__,__,__,__,__,__,E2,E2,__,E3,E3,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\
4489 /*ex E2*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,E3,E3,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__\},\
@@ -53,5 +98,6 @@
5398 /*nu N1*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,N2,__,__,__\},\
5499 /*nul N2*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,N3,__,__,__,__,__,__,__,__\},\
55100 /*null N3*/ \{__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,OK,__,__,__,__,__,__,__,__\},\
56− \};\
101+\
102+\
57103}