| 143 | } |
| 144 | |
| 145 | void 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; |
no test coverage detected