MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / fxParseJSCode

Function fxParseJSCode

modules/piu/PC/Code/piuCodeJS.c:145–345  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

143}
144
145void fxParseJSCode(PiuCodeParser parser, xsBooleanValue template)
146{
147 int32_t braces = 0;
148 int32_t offset;
149 uint32_t c;
150 xsBooleanValue noRegExp = 0;
151 for (;;) {
152 offset = parser->input;
153 if (!parser->character)
154 break;
155 switch (parser->character) {
156 case 9:
157 PiuCodeParserTab(parser);
158 break;
159 case 10:
160 case 13:
161 PiuCodeParserReturn(parser);
162 break;
163 case ' ':
164 PiuCodeParserAdvance(parser);
165 break;
166
167 case '0':
168 PiuCodeParserAdvance(parser);
169 c = parser->character;
170 if (c == '.') {
171 PiuCodeParserAdvance(parser);
172 c = parser->character;
173 if ((('0' <= c) && (c <= '9')) || (c == 'e') || (c == 'E'))
174 fxParseJSNumberE(parser, 0);
175 }
176 else if ((c == 'b') || (c == 'B'))
177 fxParseJSNumberB(parser);
178 else if ((c == 'e') || (c == 'E'))
179 fxParseJSNumberE(parser, 0);
180 else if ((c == 'o') || (c == 'O'))
181 fxParseJSNumberO(parser);
182 else if ((c == 'x') || (c == 'X'))
183 fxParseJSNumberX(parser);
184 else if (('0' <= c) && (c <= '7'))
185 fxParseJSNumberO(parser);
186 PiuCodeParserColorAt(parser, 2, offset);
187 PiuCodeParserColorAt(parser, 0, parser->input);
188 noRegExp = 1;
189 break;
190 case '1':
191 case '2':
192 case '3':
193 case '4':
194 case '5':
195 case '6':
196 case '7':
197 case '8':
198 case '9':
199 fxParseJSNumberE(parser, 1);
200 PiuCodeParserColorAt(parser, 2, offset);
201 PiuCodeParserColorAt(parser, 0, parser->input);
202 noRegExp = 1;

Callers 2

PiuCodeFormatJSFunction · 0.85
fxParseJSStringFunction · 0.85

Calls 12

PiuCodeParserTabFunction · 0.85
PiuCodeParserReturnFunction · 0.85
PiuCodeParserAdvanceFunction · 0.85
fxParseJSNumberEFunction · 0.85
fxParseJSNumberBFunction · 0.85
fxParseJSNumberOFunction · 0.85
fxParseJSNumberXFunction · 0.85
PiuCodeParserColorAtFunction · 0.85
fxParseJSStringFunction · 0.85
fxIsJSIdentifierFirstFunction · 0.85
fxIsJSIdentifierNextFunction · 0.85
fxIsKeywordFunction · 0.70

Tested by

no test coverage detected