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

Function fxGetNextTokenJSON

xs/sources/xsLexical.c:1446–1601  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1444}
1445
1446void fxGetNextTokenJSON(txParser* parser)
1447{
1448 int c;
1449 txString p;
1450 txString q;
1451
1452 parser->states[0] = parser->states[2];
1453
1454 parser->states[2].crlf = 0;
1455 parser->states[2].escaped = 0;
1456 parser->states[2].integer = 0;
1457 parser->states[2].modifierLength = 0;
1458 parser->states[2].modifier = parser->emptyString;
1459 parser->states[2].number = 0;
1460 parser->states[2].rawLength = 0;
1461 parser->states[2].raw = parser->emptyString;
1462 parser->states[2].stringLength = 0;
1463 parser->states[2].string = parser->emptyString;
1464 parser->states[2].symbol = C_NULL;
1465 parser->states[2].token = XS_NO_TOKEN;
1466
1467 while (parser->states[2].token == XS_NO_TOKEN) {
1468 switch (parser->character) {
1469 case C_EOF:
1470 parser->states[2].token = XS_TOKEN_EOF;
1471 break;
1472 case 10:
1473 parser->states[2].line++;
1474 fxGetNextCharacter(parser);
1475 parser->states[2].crlf = 1;
1476 break;
1477 case 13:
1478 parser->states[2].line++;
1479 fxGetNextCharacter(parser);
1480 if (parser->character == 10)
1481 fxGetNextCharacter(parser);
1482 parser->states[2].crlf = 1;
1483 break;
1484
1485 case '\t':
1486 case ' ':
1487 fxGetNextCharacter(parser);
1488 break;
1489
1490 case '0':
1491 fxGetNextCharacter(parser);
1492 c = parser->character;
1493 if (c == '.') {
1494 fxGetNextCharacter(parser);
1495 c = parser->character;
1496 if ((('0' <= c) && (c <= '9')) || (c == 'e') || (c == 'E'))
1497 fxGetNextNumberE(parser, 1);
1498 else {
1499 parser->states[2].number = 0;
1500 parser->states[2].token = XS_TOKEN_NUMBER;
1501 }
1502 }
1503 else if ((c == 'b') || (c == 'B')) {

Callers 5

fxJSONValueFunction · 0.85
fxJSONObjectFunction · 0.85
fxJSONArrayFunction · 0.85
fxParserTreeFunction · 0.85
fxParserSourceMapFunction · 0.85

Calls 11

fxGetNextCharacterFunction · 0.85
fxGetNextNumberEFunction · 0.85
fxGetNextNumberBFunction · 0.85
fxGetNextNumberOFunction · 0.85
fxGetNextNumberXFunction · 0.85
fxGetNextStringFunction · 0.85
fxIsIdentifierFirstFunction · 0.85
fxReportMemoryErrorFunction · 0.85
fxIsIdentifierNextFunction · 0.85
fxNewParserSymbolFunction · 0.85
fxReportParserErrorFunction · 0.85

Tested by

no test coverage detected