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

Function fxParseJSONToken

modules/piu/PC/Code/piuCodeJSON.c:109–291  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

107}
108
109void fxParseJSONToken(PiuCodeParser parser)
110{
111 int i;
112 parser->token = XS_NO_JSON_TOKEN;
113 while (parser->token == XS_NO_JSON_TOKEN) {
114 parser->offset = parser->input;
115 switch (parser->character) {
116 case 0:
117 parser->token = XS_JSON_TOKEN_EOF;
118 break;
119 case 9:
120 PiuCodeParserTab(parser);
121 break;
122 case 10:
123 case 13:
124 PiuCodeParserReturn(parser);
125 break;
126 case ' ':
127 PiuCodeParserAdvance(parser);
128 break;
129
130 case '-':
131 case '0':
132 case '1':
133 case '2':
134 case '3':
135 case '4':
136 case '5':
137 case '6':
138 case '7':
139 case '8':
140 case '9':
141 if (parser->character == '-')
142 PiuCodeParserAdvance(parser);
143 if (('0' <= parser->character) && (parser->character <= '9')) {
144 if (parser->character == '0') {
145 PiuCodeParserAdvance(parser);
146 }
147 else {
148 PiuCodeParserAdvance(parser);
149 while (('0' <= parser->character) && (parser->character <= '9')) {
150 PiuCodeParserAdvance(parser);
151 }
152 }
153 if (parser->character == '.') {
154 PiuCodeParserAdvance(parser);
155 if (('0' <= parser->character) && (parser->character <= '9')) {
156 PiuCodeParserAdvance(parser);
157 while (('0' <= parser->character) && (parser->character <= '9')) {
158 PiuCodeParserAdvance(parser);
159 }
160 }
161 else
162 PiuCodeParserError(parser);
163 }
164 if ((parser->character == 'e') || (parser->character == 'E')) {
165 PiuCodeParserAdvance(parser);
166 if ((parser->character== '+') || (parser->character == '-')) {

Callers 4

PiuCodeFormatJSONFunction · 0.70
fxParseJSONArrayFunction · 0.70
fxParseJSONObjectFunction · 0.70
fxParseJSONValueFunction · 0.70

Calls 4

PiuCodeParserTabFunction · 0.85
PiuCodeParserReturnFunction · 0.85
PiuCodeParserAdvanceFunction · 0.85
PiuCodeParserErrorFunction · 0.85

Tested by

no test coverage detected