feat: Implement the Wings tokenizer
Produces essentially the same token stream as the that found in x3d_import, except includes comment and whitespace tokens, which can be ignored in the parser. Resolves #3.
This commit is contained in:
parent
e0861ea157
commit
252ed45cab
@ -1,2 +1,550 @@
|
|||||||
{convert} from ./index.js
|
{convert} from ./index.js
|
||||||
console.log convert 'while (10) cows\nmoo'
|
hartPoly := `
|
||||||
|
#VRML V1.0 ascii
|
||||||
|
|
||||||
|
Separator {
|
||||||
|
DEF Title Info {
|
||||||
|
string "test"
|
||||||
|
}
|
||||||
|
DEF SceneInfo Info {
|
||||||
|
string "(c) George W. Hart, 1996. george@li.net"
|
||||||
|
string "Dept. Computer Science, Hofstra University."
|
||||||
|
string "Freely distributable for noncommercial purposes."
|
||||||
|
}
|
||||||
|
DEF BackgroundColor Info { # blue sky
|
||||||
|
string "0.2 0.5 1"
|
||||||
|
}
|
||||||
|
DEF Viewer Info {
|
||||||
|
string "examiner"
|
||||||
|
}
|
||||||
|
ShapeHints {
|
||||||
|
vertexOrdering UNKNOWN_ORDERING
|
||||||
|
creaseAngle 0
|
||||||
|
}
|
||||||
|
DirectionalLight {
|
||||||
|
direction -.5 -1 0
|
||||||
|
intensity 0.75
|
||||||
|
}
|
||||||
|
DirectionalLight {
|
||||||
|
direction .5 1 0
|
||||||
|
intensity 0.75
|
||||||
|
}
|
||||||
|
Separator {
|
||||||
|
Coordinate3 {
|
||||||
|
point [
|
||||||
|
-4.2301 0 0.081329,
|
||||||
|
-4.0293 -0.61803 1.1328,
|
||||||
|
-4.0293 0.61803 1.1328,
|
||||||
|
-3.9982 -0.71364 -0.90092,
|
||||||
|
-3.9982 0.71364 -0.90092,
|
||||||
|
-3.7663 0 -1.8832,
|
||||||
|
-3.6541 -1.7727 0.90091,
|
||||||
|
-3.6541 1.7727 0.90091,
|
||||||
|
-3.623 -1.8683 -1.1328,
|
||||||
|
-3.623 1.8683 -1.1328,
|
||||||
|
-3.4222 -1.0591 2.115,
|
||||||
|
-3.4222 1.0591 2.115,
|
||||||
|
-3.4222 -2.4864 -0.08133,
|
||||||
|
-3.4222 2.4864 -0.08133,
|
||||||
|
-3.3911 -1.1547 -2.115,
|
||||||
|
-3.3911 1.1547 -2.115,
|
||||||
|
-3.047 -2.2138 1.8832,
|
||||||
|
-3.047 2.2138 1.8832,
|
||||||
|
-3.0159 0 -2.8654,
|
||||||
|
-2.8965 2.8683 -1.1328,
|
||||||
|
-2.8965 -2.8683 -1.1328,
|
||||||
|
-2.8151 -0.61803 3.0973,
|
||||||
|
-2.8151 0.61803 3.0973,
|
||||||
|
-2.8151 -2.9274 0.90092,
|
||||||
|
-2.8151 2.9274 0.90092,
|
||||||
|
-2.6408 -1.1547 -3.0973,
|
||||||
|
-2.6408 1.1547 -3.0973,
|
||||||
|
-2.44 -1.7727 2.8654,
|
||||||
|
-2.44 1.7727 2.8654,
|
||||||
|
-2.1461 -2.8683 -2.115,
|
||||||
|
-2.1461 2.8683 -2.115,
|
||||||
|
-2.0648 -2.9274 2.115,
|
||||||
|
-2.0648 2.9274 2.115,
|
||||||
|
-1.9645 0 3.7471,
|
||||||
|
-1.9142 3.582 -0.90092,
|
||||||
|
-1.9142 -3.582 -0.90092,
|
||||||
|
-1.9142 2.1547 -3.0973,
|
||||||
|
-1.9142 -2.1547 -3.0973,
|
||||||
|
-1.8329 3.6411 1.1328,
|
||||||
|
-1.8329 -3.6411 1.1328,
|
||||||
|
-1.5893 1.1547 -3.7471,
|
||||||
|
-1.5893 -1.1547 -3.7471,
|
||||||
|
-1.4577 2.4864 3.0973,
|
||||||
|
-1.4577 -2.4864 3.0973,
|
||||||
|
-1.3072 4.023 0.08133,
|
||||||
|
-1.3072 -4.023 0.08133,
|
||||||
|
-1.2141 0 -3.979,
|
||||||
|
-1.1639 3.582 -1.8832,
|
||||||
|
-1.1639 -3.582 -1.8832,
|
||||||
|
-0.98225 -0.71364 3.979,
|
||||||
|
-0.98225 0.71364 3.979,
|
||||||
|
-0.93198 2.8683 -2.8654,
|
||||||
|
-0.93198 -2.8683 -2.8654,
|
||||||
|
-0.65733 4.023 1.1328,
|
||||||
|
-0.65733 -4.023 1.1328,
|
||||||
|
-0.60706 1.8683 3.7471,
|
||||||
|
-0.60706 -1.8683 3.7471,
|
||||||
|
-0.5568 4.023 -0.90092,
|
||||||
|
-0.5568 -4.023 -0.90092,
|
||||||
|
-0.37518 1.1547 -3.979,
|
||||||
|
-0.37518 -1.1547 -3.979,
|
||||||
|
-0.28214 2.8683 3.0973,
|
||||||
|
-0.28214 -2.8683 3.0973,
|
||||||
|
-0.050265 3.582 2.115,
|
||||||
|
-0.050265 -3.582 2.115,
|
||||||
|
0 0 4.2109,
|
||||||
|
0 0 -4.2109,
|
||||||
|
0.050265 3.582 -2.115,
|
||||||
|
0.050265 -3.582 -2.115,
|
||||||
|
0.28214 2.8683 -3.0973,
|
||||||
|
0.28214 -2.8683 -3.0973,
|
||||||
|
0.37518 1.1547 3.979,
|
||||||
|
0.37518 -1.1547 3.979,
|
||||||
|
0.5568 4.023 0.90092,
|
||||||
|
0.5568 -4.023 0.90092,
|
||||||
|
0.60706 1.8683 -3.7471,
|
||||||
|
0.60706 -1.8683 -3.7471,
|
||||||
|
0.65733 4.023 -1.1328,
|
||||||
|
0.65733 -4.023 -1.1328,
|
||||||
|
0.93198 2.8683 2.8654,
|
||||||
|
0.93198 -2.8683 2.8654,
|
||||||
|
0.98225 -0.71364 -3.979,
|
||||||
|
0.98225 0.71364 -3.979,
|
||||||
|
1.1639 3.582 1.8832,
|
||||||
|
1.1639 -3.582 1.8832,
|
||||||
|
1.2141 0 3.979,
|
||||||
|
1.3072 4.023 -0.08133,
|
||||||
|
1.3072 -4.023 -0.08133,
|
||||||
|
1.4577 2.4864 -3.0973,
|
||||||
|
1.4577 -2.4864 -3.0973,
|
||||||
|
1.5893 1.1547 3.7471,
|
||||||
|
1.5893 -1.1547 3.7471,
|
||||||
|
1.8329 3.6411 -1.1328,
|
||||||
|
1.8329 -3.6411 -1.1328,
|
||||||
|
1.9142 2.1547 3.0973,
|
||||||
|
1.9142 -2.1547 3.0973,
|
||||||
|
1.9142 3.582 0.90092,
|
||||||
|
1.9142 -3.582 0.90092,
|
||||||
|
1.9645 0 -3.7471,
|
||||||
|
2.0648 -2.9274 -2.115,
|
||||||
|
2.0648 2.9274 -2.115,
|
||||||
|
2.1461 -2.8683 2.115,
|
||||||
|
2.1461 2.8683 2.115,
|
||||||
|
2.44 -1.7727 -2.8654,
|
||||||
|
2.44 1.7727 -2.8654,
|
||||||
|
2.6408 -1.1547 3.0973,
|
||||||
|
2.6408 1.1547 3.0973,
|
||||||
|
2.8151 -2.9274 -0.90092,
|
||||||
|
2.8151 2.9274 -0.90092,
|
||||||
|
2.8151 -0.61803 -3.0973,
|
||||||
|
2.8151 0.61803 -3.0973,
|
||||||
|
2.8965 2.8683 1.1328,
|
||||||
|
2.8965 -2.8683 1.1328,
|
||||||
|
3.0159 0 2.8654,
|
||||||
|
3.047 -2.2138 -1.8832,
|
||||||
|
3.047 2.2138 -1.8832,
|
||||||
|
3.3911 -1.1547 2.115,
|
||||||
|
3.3911 1.1547 2.115,
|
||||||
|
3.4222 -2.4864 0.08133,
|
||||||
|
3.4222 2.4864 0.08133,
|
||||||
|
3.4222 -1.0591 -2.115,
|
||||||
|
3.4222 1.0591 -2.115,
|
||||||
|
3.623 -1.8683 1.1328,
|
||||||
|
3.623 1.8683 1.1328,
|
||||||
|
3.6541 -1.7727 -0.90091,
|
||||||
|
3.6541 1.7727 -0.90091,
|
||||||
|
3.7663 0 1.8832,
|
||||||
|
3.9982 -0.71364 0.90092,
|
||||||
|
3.9982 0.71364 0.90092,
|
||||||
|
4.0293 -0.61803 -1.1328,
|
||||||
|
4.0293 0.61803 -1.1328,
|
||||||
|
4.2301 0 -0.081329,
|
||||||
|
]
|
||||||
|
}
|
||||||
|
Material {
|
||||||
|
diffuseColor .9 .4 0.3 # 3-sided
|
||||||
|
}
|
||||||
|
IndexedFaceSet {
|
||||||
|
coordIndex [
|
||||||
|
2,0,1,-1,
|
||||||
|
13,19,9,-1,
|
||||||
|
33,22,21,-1,
|
||||||
|
36,40,26,-1,
|
||||||
|
53,44,38,-1,
|
||||||
|
55,61,42,-1,
|
||||||
|
86,92,77,-1,
|
||||||
|
88,75,69,-1,
|
||||||
|
90,106,94,-1,
|
||||||
|
123,119,111,-1,
|
||||||
|
12,8,20,-1,
|
||||||
|
25,41,37,-1,
|
||||||
|
39,45,54,-1,
|
||||||
|
56,43,62,-1,
|
||||||
|
87,78,93,-1,
|
||||||
|
89,70,76,-1,
|
||||||
|
91,95,105,-1,
|
||||||
|
110,109,98,-1,
|
||||||
|
122,112,118,-1,
|
||||||
|
131,129,130,-1,
|
||||||
|
]
|
||||||
|
}
|
||||||
|
Material {
|
||||||
|
diffuseColor .4 .5 0.9 # 4-sided
|
||||||
|
}
|
||||||
|
IndexedFaceSet {
|
||||||
|
coordIndex [
|
||||||
|
2,11,17,7,-1,
|
||||||
|
4,5,3,0,-1,
|
||||||
|
5,4,9,15,-1,
|
||||||
|
11,22,28,17,-1,
|
||||||
|
17,28,42,32,-1,
|
||||||
|
18,5,15,26,-1,
|
||||||
|
24,13,7,17,-1,
|
||||||
|
24,17,32,38,-1,
|
||||||
|
30,19,34,47,-1,
|
||||||
|
33,49,65,50,-1,
|
||||||
|
36,30,47,51,-1,
|
||||||
|
47,57,77,67,-1,
|
||||||
|
50,65,71,55,-1,
|
||||||
|
51,47,67,69,-1,
|
||||||
|
53,63,83,73,-1,
|
||||||
|
57,47,34,44,-1,
|
||||||
|
63,61,79,83,-1,
|
||||||
|
65,85,90,71,-1,
|
||||||
|
83,79,94,102,-1,
|
||||||
|
86,73,83,96,-1,
|
||||||
|
88,100,115,104,-1,
|
||||||
|
96,83,102,111,-1,
|
||||||
|
100,92,108,115,-1,
|
||||||
|
115,108,119,125,-1,
|
||||||
|
6,12,23,16,-1,
|
||||||
|
16,23,39,31,-1,
|
||||||
|
20,29,48,35,-1,
|
||||||
|
27,16,31,43,-1,
|
||||||
|
29,37,52,48,-1,
|
||||||
|
35,48,58,45,-1,
|
||||||
|
48,52,70,68,-1,
|
||||||
|
58,48,68,78,-1,
|
||||||
|
60,41,46,66,-1,
|
||||||
|
62,64,84,80,-1,
|
||||||
|
64,54,74,84,-1,
|
||||||
|
76,60,66,81,-1,
|
||||||
|
80,84,101,95,-1,
|
||||||
|
81,66,82,98,-1,
|
||||||
|
84,97,112,101,-1,
|
||||||
|
87,97,84,74,-1,
|
||||||
|
93,99,114,107,-1,
|
||||||
|
99,89,103,114,-1,
|
||||||
|
105,116,126,113,-1,
|
||||||
|
114,103,109,120,-1,
|
||||||
|
114,124,118,107,-1,
|
||||||
|
116,122,127,126,-1,
|
||||||
|
124,114,120,129,-1,
|
||||||
|
131,128,126,127,-1,
|
||||||
|
6,16,10,1,-1,
|
||||||
|
14,8,3,5,-1,
|
||||||
|
16,27,21,10,-1,
|
||||||
|
25,14,5,18,-1,
|
||||||
|
56,72,65,49,-1,
|
||||||
|
66,46,40,59,-1,
|
||||||
|
72,91,85,65,-1,
|
||||||
|
82,66,59,75,-1,
|
||||||
|
113,126,117,106,-1,
|
||||||
|
121,110,104,115,-1,
|
||||||
|
126,128,123,117,-1,
|
||||||
|
130,121,115,125,-1,
|
||||||
|
]
|
||||||
|
}
|
||||||
|
Material {
|
||||||
|
diffuseColor .9 .9 0.3 # 6-sided
|
||||||
|
}
|
||||||
|
IndexedFaceSet {
|
||||||
|
coordIndex [
|
||||||
|
2,1,10,21,22,11,-1,
|
||||||
|
13,9,4,0,2,7,-1,
|
||||||
|
19,13,24,38,44,34,-1,
|
||||||
|
22,33,50,55,42,28,-1,
|
||||||
|
36,26,15,9,19,30,-1,
|
||||||
|
40,36,51,69,75,59,-1,
|
||||||
|
53,38,32,42,61,63,-1,
|
||||||
|
61,55,71,90,94,79,-1,
|
||||||
|
86,77,57,44,53,73,-1,
|
||||||
|
88,69,67,77,92,100,-1,
|
||||||
|
92,86,96,111,119,108,-1,
|
||||||
|
123,111,102,94,106,117,-1,
|
||||||
|
12,20,35,45,39,23,-1,
|
||||||
|
25,37,29,20,8,14,-1,
|
||||||
|
37,41,60,76,70,52,-1,
|
||||||
|
39,54,64,62,43,31,-1,
|
||||||
|
56,62,80,95,91,72,-1,
|
||||||
|
70,89,99,93,78,68,-1,
|
||||||
|
78,87,74,54,45,58,-1,
|
||||||
|
87,93,107,118,112,97,-1,
|
||||||
|
89,76,81,98,109,103,-1,
|
||||||
|
109,110,121,130,129,120,-1,
|
||||||
|
112,122,116,105,95,101,-1,
|
||||||
|
129,131,127,122,118,124,-1,
|
||||||
|
75,88,104,110,98,82,-1,
|
||||||
|
131,130,125,119,123,128,-1,
|
||||||
|
8,12,6,1,0,3,-1,
|
||||||
|
33,21,27,43,56,49,-1,
|
||||||
|
41,25,18,26,40,46,-1,
|
||||||
|
91,105,113,106,90,85,-1,
|
||||||
|
]
|
||||||
|
}
|
||||||
|
Material {
|
||||||
|
diffuseColor 0 0 0 # black edges
|
||||||
|
}
|
||||||
|
IndexedLineSet {
|
||||||
|
coordIndex [
|
||||||
|
0,1,-1,
|
||||||
|
0,2,-1,
|
||||||
|
0,3,-1,
|
||||||
|
0,4,-1,
|
||||||
|
1,2,-1,
|
||||||
|
1,6,-1,
|
||||||
|
1,10,-1,
|
||||||
|
2,7,-1,
|
||||||
|
2,11,-1,
|
||||||
|
3,5,-1,
|
||||||
|
3,8,-1,
|
||||||
|
4,5,-1,
|
||||||
|
4,9,-1,
|
||||||
|
5,14,-1,
|
||||||
|
5,15,-1,
|
||||||
|
5,18,-1,
|
||||||
|
6,12,-1,
|
||||||
|
6,16,-1,
|
||||||
|
7,13,-1,
|
||||||
|
7,17,-1,
|
||||||
|
8,12,-1,
|
||||||
|
8,14,-1,
|
||||||
|
8,20,-1,
|
||||||
|
9,13,-1,
|
||||||
|
9,15,-1,
|
||||||
|
9,19,-1,
|
||||||
|
10,16,-1,
|
||||||
|
10,21,-1,
|
||||||
|
11,17,-1,
|
||||||
|
11,22,-1,
|
||||||
|
12,20,-1,
|
||||||
|
12,23,-1,
|
||||||
|
13,19,-1,
|
||||||
|
13,24,-1,
|
||||||
|
14,25,-1,
|
||||||
|
15,26,-1,
|
||||||
|
16,23,-1,
|
||||||
|
16,27,-1,
|
||||||
|
16,31,-1,
|
||||||
|
17,24,-1,
|
||||||
|
17,28,-1,
|
||||||
|
17,32,-1,
|
||||||
|
18,25,-1,
|
||||||
|
18,26,-1,
|
||||||
|
19,30,-1,
|
||||||
|
19,34,-1,
|
||||||
|
20,29,-1,
|
||||||
|
20,35,-1,
|
||||||
|
21,22,-1,
|
||||||
|
21,27,-1,
|
||||||
|
21,33,-1,
|
||||||
|
22,28,-1,
|
||||||
|
22,33,-1,
|
||||||
|
23,39,-1,
|
||||||
|
24,38,-1,
|
||||||
|
25,37,-1,
|
||||||
|
25,41,-1,
|
||||||
|
26,36,-1,
|
||||||
|
26,40,-1,
|
||||||
|
27,43,-1,
|
||||||
|
28,42,-1,
|
||||||
|
29,37,-1,
|
||||||
|
29,48,-1,
|
||||||
|
30,36,-1,
|
||||||
|
30,47,-1,
|
||||||
|
31,39,-1,
|
||||||
|
31,43,-1,
|
||||||
|
32,38,-1,
|
||||||
|
32,42,-1,
|
||||||
|
33,49,-1,
|
||||||
|
33,50,-1,
|
||||||
|
34,44,-1,
|
||||||
|
34,47,-1,
|
||||||
|
35,45,-1,
|
||||||
|
35,48,-1,
|
||||||
|
36,40,-1,
|
||||||
|
36,51,-1,
|
||||||
|
37,41,-1,
|
||||||
|
37,52,-1,
|
||||||
|
38,44,-1,
|
||||||
|
38,53,-1,
|
||||||
|
39,45,-1,
|
||||||
|
39,54,-1,
|
||||||
|
40,46,-1,
|
||||||
|
40,59,-1,
|
||||||
|
41,46,-1,
|
||||||
|
41,60,-1,
|
||||||
|
42,55,-1,
|
||||||
|
42,61,-1,
|
||||||
|
43,56,-1,
|
||||||
|
43,62,-1,
|
||||||
|
44,53,-1,
|
||||||
|
44,57,-1,
|
||||||
|
45,54,-1,
|
||||||
|
45,58,-1,
|
||||||
|
46,66,-1,
|
||||||
|
47,51,-1,
|
||||||
|
47,57,-1,
|
||||||
|
47,67,-1,
|
||||||
|
48,52,-1,
|
||||||
|
48,58,-1,
|
||||||
|
48,68,-1,
|
||||||
|
49,56,-1,
|
||||||
|
49,65,-1,
|
||||||
|
50,55,-1,
|
||||||
|
50,65,-1,
|
||||||
|
51,69,-1,
|
||||||
|
52,70,-1,
|
||||||
|
53,63,-1,
|
||||||
|
53,73,-1,
|
||||||
|
54,64,-1,
|
||||||
|
54,74,-1,
|
||||||
|
55,61,-1,
|
||||||
|
55,71,-1,
|
||||||
|
56,62,-1,
|
||||||
|
56,72,-1,
|
||||||
|
57,77,-1,
|
||||||
|
58,78,-1,
|
||||||
|
59,66,-1,
|
||||||
|
59,75,-1,
|
||||||
|
60,66,-1,
|
||||||
|
60,76,-1,
|
||||||
|
61,63,-1,
|
||||||
|
61,79,-1,
|
||||||
|
62,64,-1,
|
||||||
|
62,80,-1,
|
||||||
|
63,83,-1,
|
||||||
|
64,84,-1,
|
||||||
|
65,71,-1,
|
||||||
|
65,72,-1,
|
||||||
|
65,85,-1,
|
||||||
|
66,81,-1,
|
||||||
|
66,82,-1,
|
||||||
|
67,69,-1,
|
||||||
|
67,77,-1,
|
||||||
|
68,70,-1,
|
||||||
|
68,78,-1,
|
||||||
|
69,75,-1,
|
||||||
|
69,88,-1,
|
||||||
|
70,76,-1,
|
||||||
|
70,89,-1,
|
||||||
|
71,90,-1,
|
||||||
|
72,91,-1,
|
||||||
|
73,83,-1,
|
||||||
|
73,86,-1,
|
||||||
|
74,84,-1,
|
||||||
|
74,87,-1,
|
||||||
|
75,82,-1,
|
||||||
|
75,88,-1,
|
||||||
|
76,81,-1,
|
||||||
|
76,89,-1,
|
||||||
|
77,86,-1,
|
||||||
|
77,92,-1,
|
||||||
|
78,87,-1,
|
||||||
|
78,93,-1,
|
||||||
|
79,83,-1,
|
||||||
|
79,94,-1,
|
||||||
|
80,84,-1,
|
||||||
|
80,95,-1,
|
||||||
|
81,98,-1,
|
||||||
|
82,98,-1,
|
||||||
|
83,96,-1,
|
||||||
|
83,102,-1,
|
||||||
|
84,97,-1,
|
||||||
|
84,101,-1,
|
||||||
|
85,90,-1,
|
||||||
|
85,91,-1,
|
||||||
|
86,92,-1,
|
||||||
|
86,96,-1,
|
||||||
|
87,93,-1,
|
||||||
|
87,97,-1,
|
||||||
|
88,100,-1,
|
||||||
|
88,104,-1,
|
||||||
|
89,99,-1,
|
||||||
|
89,103,-1,
|
||||||
|
90,94,-1,
|
||||||
|
90,106,-1,
|
||||||
|
91,95,-1,
|
||||||
|
91,105,-1,
|
||||||
|
92,100,-1,
|
||||||
|
92,108,-1,
|
||||||
|
93,99,-1,
|
||||||
|
93,107,-1,
|
||||||
|
94,102,-1,
|
||||||
|
94,106,-1,
|
||||||
|
95,101,-1,
|
||||||
|
95,105,-1,
|
||||||
|
96,111,-1,
|
||||||
|
97,112,-1,
|
||||||
|
98,109,-1,
|
||||||
|
98,110,-1,
|
||||||
|
99,114,-1,
|
||||||
|
100,115,-1,
|
||||||
|
101,112,-1,
|
||||||
|
102,111,-1,
|
||||||
|
103,109,-1,
|
||||||
|
103,114,-1,
|
||||||
|
104,110,-1,
|
||||||
|
104,115,-1,
|
||||||
|
105,113,-1,
|
||||||
|
105,116,-1,
|
||||||
|
106,113,-1,
|
||||||
|
106,117,-1,
|
||||||
|
107,114,-1,
|
||||||
|
107,118,-1,
|
||||||
|
108,115,-1,
|
||||||
|
108,119,-1,
|
||||||
|
109,110,-1,
|
||||||
|
109,120,-1,
|
||||||
|
110,121,-1,
|
||||||
|
111,119,-1,
|
||||||
|
111,123,-1,
|
||||||
|
112,118,-1,
|
||||||
|
112,122,-1,
|
||||||
|
113,126,-1,
|
||||||
|
114,120,-1,
|
||||||
|
114,124,-1,
|
||||||
|
115,121,-1,
|
||||||
|
115,125,-1,
|
||||||
|
116,122,-1,
|
||||||
|
116,126,-1,
|
||||||
|
117,123,-1,
|
||||||
|
117,126,-1,
|
||||||
|
118,122,-1,
|
||||||
|
118,124,-1,
|
||||||
|
119,123,-1,
|
||||||
|
119,125,-1,
|
||||||
|
120,129,-1,
|
||||||
|
121,130,-1,
|
||||||
|
122,127,-1,
|
||||||
|
123,128,-1,
|
||||||
|
124,129,-1,
|
||||||
|
125,130,-1,
|
||||||
|
126,127,-1,
|
||||||
|
126,128,-1,
|
||||||
|
127,131,-1,
|
||||||
|
128,131,-1,
|
||||||
|
129,130,-1,
|
||||||
|
129,131,-1,
|
||||||
|
130,131,-1,
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
|
console.log convert hartPoly
|
||||||
|
@ -3,21 +3,28 @@ moo from ../deps/moo.js
|
|||||||
type Tree = {[key:string]: string | Tree}
|
type Tree = {[key:string]: string | Tree}
|
||||||
|
|
||||||
lexer := moo.compile
|
lexer := moo.compile
|
||||||
WS: /[ \t]+/
|
comment: /#.*?$/
|
||||||
comment: /\/\/.*?$/
|
whitespace:
|
||||||
number: /0|[1-9][0-9]*/
|
match: /\s+/
|
||||||
string: /"(?:\\["\\]|[^\n"\\])*"/
|
|
||||||
lparen: '('
|
|
||||||
rparen: ')'
|
|
||||||
keyword: 'while if else moo cows'.split(' ')
|
|
||||||
NL:
|
|
||||||
match: /\n/
|
|
||||||
lineBreaks: true
|
lineBreaks: true
|
||||||
|
string:
|
||||||
|
match: /"(?:\\"|[^"])*"/
|
||||||
|
lineBreaks: true
|
||||||
|
number: /[\d.-][\d.x]*/
|
||||||
|
word: /[^\d.-\W]\w*/
|
||||||
|
comma: ','
|
||||||
|
obrace: '{'
|
||||||
|
cbrace: '}'
|
||||||
|
obracket: '['
|
||||||
|
cbracket: ']'
|
||||||
|
oparen: '('
|
||||||
|
cparen: ')'
|
||||||
|
|
||||||
export function tree97(vrml1: string): Tree
|
export function tree97(vrml1: string): Tree
|
||||||
tree: Tree := {}
|
tree: Tree := {}
|
||||||
for tok, index of lexer.reset vrml1
|
for tok, index of lexer.reset vrml1
|
||||||
if tok.type then tree[`${index}`] = {tok.type, tok.value}
|
if tok.type and tok.type !== 'whitespace' and tok.type !== 'comment'
|
||||||
|
tree[`${index}`] = {tok.type, tok.value}
|
||||||
tree
|
tree
|
||||||
|
|
||||||
function render(t: string | Tree): string
|
function render(t: string | Tree): string
|
||||||
@ -26,11 +33,13 @@ function render(t: string | Tree): string
|
|||||||
result .= ''
|
result .= ''
|
||||||
for item of Object.values t
|
for item of Object.values t
|
||||||
if typeof item is 'string' then result += item + ' '
|
if typeof item is 'string' then result += item + ' '
|
||||||
else switch item.type
|
else
|
||||||
'WS' // ignore
|
typ := item.type
|
||||||
'NL'
|
result += render(typ)
|
||||||
|
if typeof typ === 'string' and
|
||||||
|
['cbrace', 'cbracket', 'cparen'].includes(typ)
|
||||||
result += "\n"
|
result += "\n"
|
||||||
else result += render(item.type) + ' '
|
else result += ' '
|
||||||
result
|
result
|
||||||
|
|
||||||
export function convert(vrml1: string): string
|
export function convert(vrml1: string): string
|
||||||
|
Loading…
Reference in New Issue
Block a user