BASIC compiler/interpreter for PIC32MX/MZ-80K
Revisão | 1d57db82bd33e6d21f562e8c6771589a4169b086 (tree) |
---|---|
Hora | 2019-04-10 06:25:39 |
Autor | Katsumi <kmorimatsu@sour...> |
Commiter | Katsumi |
Add js files to protozoa repository
@@ -65,6 +65,8 @@ file_037=. | ||
65 | 65 | file_038=. |
66 | 66 | file_039=. |
67 | 67 | file_040=. |
68 | +file_041=. | |
69 | +file_042=. | |
68 | 70 | [GENERATED_FILES] |
69 | 71 | file_000=no |
70 | 72 | file_001=no |
@@ -107,6 +109,8 @@ file_037=no | ||
107 | 109 | file_038=no |
108 | 110 | file_039=no |
109 | 111 | file_040=no |
112 | +file_041=no | |
113 | +file_042=no | |
110 | 114 | [OTHER_FILES] |
111 | 115 | file_000=no |
112 | 116 | file_001=no |
@@ -149,6 +153,8 @@ file_037=no | ||
149 | 153 | file_038=no |
150 | 154 | file_039=no |
151 | 155 | file_040=no |
156 | +file_041=yes | |
157 | +file_042=yes | |
152 | 158 | [FILE_INFO] |
153 | 159 | file_000=args.c |
154 | 160 | file_001=class.c |
@@ -191,6 +197,8 @@ file_037=interface\SDFSIO.h | ||
191 | 197 | file_038=interface\videoout.h |
192 | 198 | file_039=interface\libsdfsio.a |
193 | 199 | file_040=App_32MX170F256B.ld |
200 | +file_041=reservednames.js | |
201 | +file_042=sharedfiles.js | |
194 | 202 | [SUITE_INFO] |
195 | 203 | suite_guid={62D235D8-2DB2-49CD-AF24-5489A6015337} |
196 | 204 | suite_state= |
@@ -0,0 +1,188 @@ | ||
1 | +/* | |
2 | + This file is provided under the LGPL license ver 2.1. | |
3 | + Written by Katsumi. | |
4 | + http://hp.vector.co.jp/authors/VA016157/ | |
5 | + kmorimatsu@users.sourceforge.jp | |
6 | +*/ | |
7 | + | |
8 | +/* | |
9 | + This script is to make lines of reserved words for long var names. | |
10 | +*/ | |
11 | + | |
12 | +function name2int(name){ | |
13 | + var g_source=name+'$'; | |
14 | + var g_srcpos=0; | |
15 | + var prevpos=0; | |
16 | + var i=0; | |
17 | + var b1=g_source.charCodeAt(0); | |
18 | + do { | |
19 | + // First character must be A-Z | |
20 | + // From second, A-Z and 0-9 can be used. | |
21 | + i*=36; | |
22 | + if ('0'.charCodeAt(0)<=b1 && b1<='9'.charCodeAt(0)) { | |
23 | + i+=b1-'0'.charCodeAt(0); | |
24 | + } else if (g_srcpos==prevpos) { | |
25 | + // First character must be A-Z. | |
26 | + // Subtract 9, resulting 1-26 but not 10-35. | |
27 | + // This subtraction is required to maintain | |
28 | + // final number being <0x80000000. | |
29 | + i+=b1-'A'.charCodeAt(0)+1; | |
30 | + } else { | |
31 | + i+=b1-'A'.charCodeAt(0)+10; | |
32 | + } | |
33 | + g_srcpos++; | |
34 | + b1=g_source.charCodeAt(g_srcpos); | |
35 | + } while ('0'.charCodeAt(0)<= b1 && b1<='9'.charCodeAt(0) || 'A'.charCodeAt(0)<=b1 && b1<='Z'.charCodeAt(0)); | |
36 | + return i+65536; | |
37 | +} | |
38 | + | |
39 | +var namearray=[ | |
40 | + 'ABS', | |
41 | + 'ACOS', | |
42 | + 'ARGS', | |
43 | + 'ASC', | |
44 | + 'ASIN', | |
45 | + 'ATAN', | |
46 | + 'ATAN2', | |
47 | + 'BREAK', | |
48 | + 'CALL', | |
49 | + 'CDATA', | |
50 | + 'CEIL', | |
51 | + 'CHR', | |
52 | + 'CIRCLE', | |
53 | + 'CLEAR', | |
54 | + 'CLS', | |
55 | + 'COLOR', | |
56 | + 'COS', | |
57 | + 'COSH', | |
58 | + 'CREAD', | |
59 | + 'CURSOR', | |
60 | + 'DATA', | |
61 | + 'DEC', | |
62 | + 'DELETE', | |
63 | + 'DIM', | |
64 | + 'DO', | |
65 | + 'ELSE', | |
66 | + 'ELSEIF', | |
67 | + 'END', | |
68 | + 'ENDIF', | |
69 | + 'EXEC', | |
70 | + 'EXP', | |
71 | + 'FABS', | |
72 | + 'FCLOSE', | |
73 | + 'FEOF', | |
74 | + 'FGET', | |
75 | + 'FGETC', | |
76 | + 'FIELD', | |
77 | + 'FILE', | |
78 | + 'FINPUT', | |
79 | + 'FLEN', | |
80 | + 'FLOAT', | |
81 | + 'FLOOR', | |
82 | + 'FMOD', | |
83 | + 'FOPEN', | |
84 | + 'FOR', | |
85 | + 'FPRINT', | |
86 | + 'FPUT', | |
87 | + 'FPUTC', | |
88 | + 'FSEEK', | |
89 | + 'GCLS', | |
90 | + 'GCOLOR', | |
91 | + 'GETDIR', | |
92 | + 'GOSUB', | |
93 | + 'GOTO', | |
94 | + 'GPRINT', | |
95 | + 'HEX', | |
96 | + 'IDLE', | |
97 | + 'IF', | |
98 | + 'INKEY', | |
99 | + 'INPUT', | |
100 | + 'INT', | |
101 | + 'KEYS', | |
102 | + 'LABEL', | |
103 | + 'LEN', | |
104 | + 'LET', | |
105 | + 'LINE', | |
106 | + 'LOG', | |
107 | + 'LOG10', | |
108 | + 'LOOP', | |
109 | + 'MODF', | |
110 | + 'MUSIC', | |
111 | + 'NEXT', | |
112 | + 'NEW', | |
113 | + 'NOT', | |
114 | + 'OPTION', | |
115 | + 'PCG', | |
116 | + 'PEEK', | |
117 | + 'PEEK16', | |
118 | + 'PEEK32', | |
119 | + 'PI', | |
120 | + 'POINT', | |
121 | + 'POKE', | |
122 | + 'POKE16', | |
123 | + 'POKE32', | |
124 | + 'POW', | |
125 | + 'PRINT', | |
126 | + 'PSET', | |
127 | + 'PUBLIC', | |
128 | + 'PUTBMP', | |
129 | + 'READ', | |
130 | + 'REM', | |
131 | + 'RETURN', | |
132 | + 'RND', | |
133 | + 'SCROLL', | |
134 | + 'SETDIR', | |
135 | + 'SGN', | |
136 | + 'SIN', | |
137 | + 'SINH', | |
138 | + 'SOUND', | |
139 | + 'SQRT', | |
140 | + 'SYSTEM', | |
141 | + 'TAN', | |
142 | + 'TANH', | |
143 | + 'TIMER', | |
144 | + 'TVRAM', | |
145 | + 'UNTIL', | |
146 | + 'USEPCG', | |
147 | + 'USEVAR', | |
148 | + 'VAL', | |
149 | + 'VAR', | |
150 | + 'WAIT', | |
151 | + 'WEND', | |
152 | + 'WHILE', | |
153 | + 'WIDTH', | |
154 | + // For megalopa | |
155 | + '// For Megalopa', | |
156 | + 'OUT', | |
157 | + 'OUT8H', | |
158 | + 'OUT8L', | |
159 | + 'OUT16', | |
160 | + 'IN', | |
161 | + 'IN8H', | |
162 | + 'IN8L', | |
163 | + 'IN16', | |
164 | + 'ANALOG', | |
165 | + 'PWM', | |
166 | + 'SERIAL', | |
167 | + 'SPI', | |
168 | + 'I2C', | |
169 | +]; | |
170 | +var result=''; | |
171 | +for(key in namearray){ | |
172 | + var nameint='0000'+name2int(namearray[key]).toString(16); | |
173 | + nameint=nameint.substr(nameint.length-8); | |
174 | + if (namearray[key].substr(0,2)=='//') { | |
175 | + // This is a comment | |
176 | + result+=namearray[key]+"\r\n"; | |
177 | + } else { | |
178 | + result+="\t0x"+nameint+", /*"+namearray[key]+"*/\r\n"; | |
179 | + } | |
180 | +} | |
181 | + | |
182 | +var fso = new ActiveXObject("Scripting.FileSystemObject"); | |
183 | +var file = fso.CreateTextFile("result.txt"); | |
184 | +file.Write(result); | |
185 | +file.Close(); | |
186 | + | |
187 | +WScript.Echo('Done!'); | |
188 | + |
@@ -0,0 +1,61 @@ | ||
1 | +/* | |
2 | +' This file is provided under the LGPL license ver 2.1.', | |
3 | +' Written by Katsumi.', | |
4 | + http://hp.vector.co.jp/authors/VA016157/ | |
5 | +' kmorimatsu@users.sourceforge.jp', | |
6 | +*/ | |
7 | + | |
8 | +/* | |
9 | +' This script is to copy shared files.', | |
10 | +*/ | |
11 | + | |
12 | +var filearray=[ | |
13 | + 'args.c', | |
14 | + 'class.c', | |
15 | + 'cmpdata.c', | |
16 | + 'compiler.c', | |
17 | + 'debug.c', | |
18 | + 'error.c', | |
19 | + 'exception.c', | |
20 | + 'file.c', | |
21 | + 'float.c', | |
22 | + 'function.c', | |
23 | + 'globalvars.c', | |
24 | + 'library.c', | |
25 | + 'linker.c', | |
26 | + 'memory.c', | |
27 | + 'operator.c', | |
28 | + 'run.c', | |
29 | + 'string.c', | |
30 | + 'statement.c', | |
31 | + 'timer.c', | |
32 | + 'value.c', | |
33 | + 'varname.c', | |
34 | + 'compiler.h', | |
35 | + 'debug.h', | |
36 | + 'reservednames.js', | |
37 | + 'sharedfiles.js', | |
38 | + 'class.txt', | |
39 | +]; | |
40 | + | |
41 | +var WshShell = WScript.CreateObject("WScript.Shell"); | |
42 | +var FSO = WScript.CreateObject("Scripting.FileSystemObject"); | |
43 | + | |
44 | + | |
45 | +// Create a folder on desktop | |
46 | +try { | |
47 | + var SharedFiles=WshShell.SpecialFolders("Desktop") + '\\sharedfiles\\'; | |
48 | + FSO.CreateFolder(SharedFiles); | |
49 | +} catch (e) { | |
50 | + WScript.Echo('"sharedfiles" folder already exists on desktop!'); | |
51 | + WScript.Quit(); | |
52 | +} | |
53 | + | |
54 | +// Copy files to 'sharedfiles' directory | |
55 | +for(var i in filearray){ | |
56 | + FSO.CopyFile (filearray[i],SharedFiles + filearray[i]); | |
57 | +} | |
58 | + | |
59 | +// All done | |
60 | +WScript.Echo('Done!'); | |
61 | + |