Última actividad 1729136145

wryl revisó este gist 1729136145. Ir a la revisión

1 file changed, 13 deletions

parser.nv

@@ -37,19 +37,6 @@
37 37 | r2 <- r0 | ,
38 38 |-----------------------------|
39 39
40 - |-------------------------------|
41 - | r1 <- 1 | r1 ,
42 - | r1 <- 2 | r1 <- 1, r1 <- 1 ,
43 - | r1 <- 4 | r1 <- 2, r1 <- 2 ,
44 - | r1 <- 8 | r1 <- 4, r1 <- 4 ,
45 - | r1 <- 9 | r1 <- 8, r1 <- 1 ,
46 - | r1 <- 10 | r1 <- 9, r1 <- 1 ,
47 - | r1 <- 16 | r1 <- 8, r1 <- 8 ,
48 - | r1 <- 32 | r1 <- 16, r1 <- 16 ,
49 - | r1 <- 40 | r1 <- 32, r1 <- 8 ,
50 - | r1 <- 44 | r1 <- 40, r1 <- 4 ,
51 - |-------------------------------|
52 -
53 40 |--------------------------------|
54 41 | r1 = r2, r2 | r1, r2*, r1 = r2 ,
55 42 | r1 = r2 | r2 <- r2* ,

wryl revisó este gist 1729135383. Ir a la revisión

1 file changed, 242 insertions

parser.nv(archivo creado)

@@ -0,0 +1,242 @@
1 + |================================|
2 + |==| Constants. |==|
3 + |================================|
4 +
5 + |-----------------------|
6 + | r0 <- 0, r0 | r0 <- 0 ,
7 + | r0 <- 0 | ,
8 + |-----------------------|
9 +
10 + |-----------------------|
11 + | r1 <- 0, r1 | r1 <- 0 ,
12 + | r1 <- 0 | ,
13 + |-----------------------|
14 +
15 + |-------------------------------|
16 + | r1 <- 1 | r1 ,
17 + | r1 <- 2 | r1 <- 1, r1 <- 1 ,
18 + | r1 <- 4 | r1 <- 2, r1 <- 2 ,
19 + | r1 <- 8 | r1 <- 4, r1 <- 4 ,
20 + | r1 <- 9 | r1 <- 8, r1 <- 1 ,
21 + | r1 <- 10 | r1 <- 9, r1 <- 1 ,
22 + | r1 <- 16 | r1 <- 8, r1 <- 8 ,
23 + | r1 <- 32 | r1 <- 16, r1 <- 16 ,
24 + | r1 <- 40 | r1 <- 32, r1 <- 8 ,
25 + | r1 <- 44 | r1 <- 40, r1 <- 4 ,
26 + |-------------------------------|
27 +
28 +
29 +
30 +
31 + |===============================|
32 + |==| Movement. |==|
33 + |===============================|
34 +
35 + |-----------------------------|
36 + | r2 <- r0, r0 | r2, r2 <- r0 ,
37 + | r2 <- r0 | ,
38 + |-----------------------------|
39 +
40 + |-------------------------------|
41 + | r1 <- 1 | r1 ,
42 + | r1 <- 2 | r1 <- 1, r1 <- 1 ,
43 + | r1 <- 4 | r1 <- 2, r1 <- 2 ,
44 + | r1 <- 8 | r1 <- 4, r1 <- 4 ,
45 + | r1 <- 9 | r1 <- 8, r1 <- 1 ,
46 + | r1 <- 10 | r1 <- 9, r1 <- 1 ,
47 + | r1 <- 16 | r1 <- 8, r1 <- 8 ,
48 + | r1 <- 32 | r1 <- 16, r1 <- 16 ,
49 + | r1 <- 40 | r1 <- 32, r1 <- 8 ,
50 + | r1 <- 44 | r1 <- 40, r1 <- 4 ,
51 + |-------------------------------|
52 +
53 + |--------------------------------|
54 + | r1 = r2, r2 | r1, r2*, r1 = r2 ,
55 + | r1 = r2 | r2 <- r2* ,
56 + |--------------------------------|
57 +
58 + |--------------------------------|
59 + | r0 <- r0*, r0* | r0, r0 <- r0* ,
60 + | r0 <- r0* | ,
61 + |--------------------------------|
62 +
63 + |--------------------------------|
64 + | r2 <- r2*, r2* | r2, r2 <- r2* ,
65 + | r2 <- r2* | ,
66 + |--------------------------------|
67 +
68 +
69 +
70 +
71 + |============================|
72 + |==| Input. |==|
73 + |============================|
74 +
75 + |----------------------------------------------|
76 + | go to the next character | @io-read ,
77 + , , r0 <- 0 ,
78 + , , r0 <- @io-read-in ,
79 + |----------------------------------------------|
80 +
81 + |--------------------------------------------------------|
82 + | r0 <- @io-read-in, @io-read-in | r0, r0 <- @io-read-in ,
83 + | r0 <- @io-read-in | ,
84 + |--------------------------------------------------------|
85 +
86 + |--------------------|
87 + | @io-read-end | EOF ,
88 + |--------------------|
89 +
90 +
91 +
92 +
93 + |===============================|
94 + |==| Equality. |==|
95 + |===============================|
96 +
97 + |-----------------------------------------|
98 + | r0 == r1?, r0, r1 | r0*, r0 == r1? ,
99 + |-----------------------------------------|
100 + | r0 == r1?, r1 | r0 <- r0* ,
101 + , , r1 <- 0 ,
102 + , , r0 != r1 ,
103 + |-----------------------------------------|
104 + | r0 == r1?, r0 | r0 ,
105 + , , r0 <- r0* ,
106 + , , r0 != r1 ,
107 + |-----------------------------------------|
108 + | r0 == r1? | r0 <- r0* ,
109 + , , r0 == r1 ,
110 + |-----------------------------------------|
111 +
112 + |--------------------------------|
113 + | r0 <- r0*, r0* | r0, r0 <- r0* ,
114 + | r0 <- r0* | ,
115 + |--------------------------------|
116 +
117 + |--------------------------------|
118 + | r2 <- r2*, r2* | r2, r2 <- r2* ,
119 + | r2 <- r2* | ,
120 + |--------------------------------|
121 +
122 +
123 +
124 +
125 + |==========================================|
126 + |==| Whitespace handling. |==|
127 + |==========================================|
128 +
129 + |------------------------------|
130 + | space?, r0 != r1 | ~space ,
131 + | space?, r0 == r1 | space ,
132 + |------------------------------|
133 + | space? | r1 <- 32 ,
134 + , , r0 == r1? ,
135 + , , space? ,
136 + |------------------------------|
137 +
138 + |----------------------------|
139 + | tab?, r0 != r1 | ~tab ,
140 + | tab?, r0 == r1 | tab ,
141 + |----------------------------|
142 + | tab? | r1 <- 9 ,
143 + , , r0 == r1? ,
144 + , , tab? ,
145 + |----------------------------|
146 +
147 + |--------------------------------|
148 + | newline?, r0 != r1 | ~newline ,
149 + | newline?, r0 == r1 | newline ,
150 + |--------------------------------|
151 + | newline? | r1 <- 10 ,
152 + , , r0 == r1? ,
153 + , , newline? ,
154 + |--------------------------------|
155 +
156 + |---------------------------------------------------|
157 + | whitespace?, space | whitespace ,
158 + | whitespace?, tab | whitespace ,
159 + | whitespace?, newline | whitespace ,
160 + | whitespace?, ~space, ~tab, ~newline | ~whitespace ,
161 + |---------------------------------------------------|
162 + | whitespace? | space? ,
163 + , , tab? ,
164 + , , newline? ,
165 + , , whitespace? ,
166 + |---------------------------------------------------|
167 +
168 + |-----------------------------------|
169 + | whitespace, ~space | whitespace ,
170 + | whitespace, ~tab | whitespace ,
171 + | whitespace, ~newline | whitespace ,
172 + |-----------------------------------|
173 +
174 + |------------------------------------------|
175 + | delimiter?, r0 == r1 | delimiter ,
176 + | delimiter?, r0 != r1 | ~delimiter ,
177 + |------------------------------------------|
178 + | delimiter? | r1 = r2 ,
179 + , , r0 == r1? ,
180 + , , delimiter? ,
181 + |------------------------------------------|
182 +
183 + |------------------------------|
184 + | comma?, r0 != r1 | ~comma ,
185 + | comma?, r0 == r1 | comma ,
186 + |------------------------------|
187 + | comma? | r1 <- 44 ,
188 + , , r0 == r1? ,
189 + , , comma? ,
190 + |------------------------------|
191 +
192 + |------------------------------------------------------------------------------------------------|
193 + | go to the next non-whitespace character, whitespace | go to the next non-whitespace character ,
194 + | go to the next non-whitespace character, ~whitespace | ,
195 + |------------------------------------------------------------------------------------------------|
196 + | go to the next non-whitespace character | go to the next character ,
197 + , , whitespace? ,
198 + , , go to the next non-whitespace character ,
199 + |------------------------------------------------------------------------------------------------|
200 +
201 +
202 +
203 +
204 + |===================================|
205 + |==| Main program. |==|
206 + |===================================|
207 +
208 + |-------------------------------------------------|
209 + || start, left ,
210 + |-------------------------------------------------|
211 + | start | go to the next non-whitespace character ,
212 + , , store delimiter ,
213 + , , parse ,
214 + |-------------------------------------------------|
215 +
216 + |-----------------------------------------------------------|
217 + | store delimiter | r2 <- r0 ,
218 + , , go to the next non-whitespace character ,
219 + |-----------------------------------------------------------|
220 +
221 + |-------------------------------------------------------------|
222 + | parse, EOF | append token to side, stop ,
223 + |-------------------------------------------------------------|
224 + | parse, delimiter | append token to side ,
225 + , , switch sides ,
226 + , , go to the next non-whitespace character ,
227 + , , parse ,
228 + |-------------------------------------------------------------|
229 + | parse, ~delimiter | comma? ,
230 + , , parse ,
231 + |-------------------------------------------------------------|
232 + | parse, comma | append token to side ,
233 + , , go to the next non-whitespace character ,
234 + , , parse ,
235 + |-------------------------------------------------------------|
236 + | parse, ~comma | append character to token ,
237 + , , go to the next non-whitespace character ,
238 + , , parse ,
239 + |-------------------------------------------------------------|
240 + | parse | delimiter?, ,
241 + , parse ,
242 + |-------------------------------------------------------------|
Siguiente Anterior