| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 // This code was auto-generated, is not intended to be edited, and is subject to | 5 // This code was auto-generated, is not intended to be edited, and is subject to |
| 6 // significant change. Please see the README file for more information. | 6 // significant change. Please see the README file for more information. |
| 7 | 7 |
| 8 library engine.parser; | 8 library engine.parser; |
| 9 | 9 |
| 10 import 'dart:collection'; | 10 import 'dart:collection'; |
| (...skipping 1411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1422 */ | 1422 */ |
| 1423 Token staticKeyword; | 1423 Token staticKeyword; |
| 1424 | 1424 |
| 1425 /** | 1425 /** |
| 1426 * The token representing the keyword 'var', or `null` if the keyword was not
found. | 1426 * The token representing the keyword 'var', or `null` if the keyword was not
found. |
| 1427 */ | 1427 */ |
| 1428 Token varKeyword; | 1428 Token varKeyword; |
| 1429 | 1429 |
| 1430 @override | 1430 @override |
| 1431 String toString() { | 1431 String toString() { |
| 1432 JavaStringBuilder builder = new JavaStringBuilder(); | 1432 StringBuffer buffer = new StringBuffer(); |
| 1433 bool needsSpace = _appendKeyword(builder, false, abstractKeyword); | 1433 bool needsSpace = _appendKeyword(buffer, false, abstractKeyword); |
| 1434 needsSpace = _appendKeyword(builder, needsSpace, constKeyword); | 1434 needsSpace = _appendKeyword(buffer, needsSpace, constKeyword); |
| 1435 needsSpace = _appendKeyword(builder, needsSpace, externalKeyword); | 1435 needsSpace = _appendKeyword(buffer, needsSpace, externalKeyword); |
| 1436 needsSpace = _appendKeyword(builder, needsSpace, factoryKeyword); | 1436 needsSpace = _appendKeyword(buffer, needsSpace, factoryKeyword); |
| 1437 needsSpace = _appendKeyword(builder, needsSpace, finalKeyword); | 1437 needsSpace = _appendKeyword(buffer, needsSpace, finalKeyword); |
| 1438 needsSpace = _appendKeyword(builder, needsSpace, staticKeyword); | 1438 needsSpace = _appendKeyword(buffer, needsSpace, staticKeyword); |
| 1439 _appendKeyword(builder, needsSpace, varKeyword); | 1439 _appendKeyword(buffer, needsSpace, varKeyword); |
| 1440 return builder.toString(); | 1440 return buffer.toString(); |
| 1441 } | 1441 } |
| 1442 | 1442 |
| 1443 /** | 1443 /** |
| 1444 * If the given keyword is not `null`, append it to the given builder, prefixi
ng it with a | 1444 * If the given keyword is not `null`, append it to the given builder, prefixi
ng it with a |
| 1445 * space if needed. | 1445 * space if needed. |
| 1446 * | 1446 * |
| 1447 * @param builder the builder to which the keyword will be appended | 1447 * @param builder the builder to which the keyword will be appended |
| 1448 * @param needsSpace `true` if the keyword needs to be prefixed with a space | 1448 * @param needsSpace `true` if the keyword needs to be prefixed with a space |
| 1449 * @param keyword the keyword to be appended | 1449 * @param keyword the keyword to be appended |
| 1450 * @return `true` if subsequent keywords need to be prefixed with a space | 1450 * @return `true` if subsequent keywords need to be prefixed with a space |
| 1451 */ | 1451 */ |
| 1452 bool _appendKeyword(JavaStringBuilder builder, bool needsSpace, Token keyword)
{ | 1452 bool _appendKeyword(StringBuffer buffer, bool needsSpace, Token keyword) { |
| 1453 if (keyword != null) { | 1453 if (keyword != null) { |
| 1454 if (needsSpace) { | 1454 if (needsSpace) { |
| 1455 builder.appendChar(0x20); | 1455 buffer.writeCharCode(0x20); |
| 1456 } | 1456 } |
| 1457 builder.append(keyword.lexeme); | 1457 buffer.write(keyword.lexeme); |
| 1458 return true; | 1458 return true; |
| 1459 } | 1459 } |
| 1460 return needsSpace; | 1460 return needsSpace; |
| 1461 } | 1461 } |
| 1462 } | 1462 } |
| 1463 | 1463 |
| 1464 /** | 1464 /** |
| 1465 * Instances of the class `Parser` are used to parse tokens into an AST structur
e. | 1465 * Instances of the class `Parser` are used to parse tokens into an AST structur
e. |
| 1466 */ | 1466 */ |
| 1467 class Parser { | 1467 class Parser { |
| (...skipping 1352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2820 * Append the character equivalent of the given scalar value to the given buil
der. Use the start | 2820 * Append the character equivalent of the given scalar value to the given buil
der. Use the start |
| 2821 * and end indices to report an error, and don't append anything to the builde
r, if the scalar | 2821 * and end indices to report an error, and don't append anything to the builde
r, if the scalar |
| 2822 * value is invalid. | 2822 * value is invalid. |
| 2823 * | 2823 * |
| 2824 * @param builder the builder to which the scalar value is to be appended | 2824 * @param builder the builder to which the scalar value is to be appended |
| 2825 * @param escapeSequence the escape sequence that was parsed to produce the sc
alar value | 2825 * @param escapeSequence the escape sequence that was parsed to produce the sc
alar value |
| 2826 * @param scalarValue the value to be appended | 2826 * @param scalarValue the value to be appended |
| 2827 * @param startIndex the index of the first character representing the scalar
value | 2827 * @param startIndex the index of the first character representing the scalar
value |
| 2828 * @param endIndex the index of the last character representing the scalar val
ue | 2828 * @param endIndex the index of the last character representing the scalar val
ue |
| 2829 */ | 2829 */ |
| 2830 void _appendScalarValue(JavaStringBuilder builder, String escapeSequence, int
scalarValue, int startIndex, int endIndex) { | 2830 void _appendScalarValue(StringBuffer buffer, String escapeSequence, int scalar
Value, int startIndex, int endIndex) { |
| 2831 if (scalarValue < 0 || scalarValue > Character.MAX_CODE_POINT || (scalarValu
e >= 0xD800 && scalarValue <= 0xDFFF)) { | 2831 if (scalarValue < 0 || scalarValue > Character.MAX_CODE_POINT || (scalarValu
e >= 0xD800 && scalarValue <= 0xDFFF)) { |
| 2832 _reportErrorForCurrentToken(ParserErrorCode.INVALID_CODE_POINT, [escapeSeq
uence]); | 2832 _reportErrorForCurrentToken(ParserErrorCode.INVALID_CODE_POINT, [escapeSeq
uence]); |
| 2833 return; | 2833 return; |
| 2834 } | 2834 } |
| 2835 if (scalarValue < Character.MAX_VALUE) { | 2835 if (scalarValue < Character.MAX_VALUE) { |
| 2836 builder.appendChar(scalarValue); | 2836 buffer.writeCharCode(scalarValue); |
| 2837 } else { | 2837 } else { |
| 2838 builder.append(Character.toChars(scalarValue)); | 2838 buffer.write(Character.toChars(scalarValue)); |
| 2839 } | 2839 } |
| 2840 } | 2840 } |
| 2841 | 2841 |
| 2842 /** | 2842 /** |
| 2843 * Compute the content of a string with the given literal representation. | 2843 * Compute the content of a string with the given literal representation. |
| 2844 * | 2844 * |
| 2845 * @param lexeme the literal representation of the string | 2845 * @param lexeme the literal representation of the string |
| 2846 * @param first `true` if this is the first token in a string literal | 2846 * @param first `true` if this is the first token in a string literal |
| 2847 * @param last `true` if this is the last token in a string literal | 2847 * @param last `true` if this is the last token in a string literal |
| 2848 * @return the actual value of the string | 2848 * @return the actual value of the string |
| (...skipping 22 matching lines...) Expand all Loading... |
| 2871 end -= 1; | 2871 end -= 1; |
| 2872 } | 2872 } |
| 2873 } | 2873 } |
| 2874 if (end - start + 1 < 0) { | 2874 if (end - start + 1 < 0) { |
| 2875 AnalysisEngine.instance.logger.logError("Internal error: computeStringValu
e(${lexeme}, ${first}, ${last})"); | 2875 AnalysisEngine.instance.logger.logError("Internal error: computeStringValu
e(${lexeme}, ${first}, ${last})"); |
| 2876 return ""; | 2876 return ""; |
| 2877 } | 2877 } |
| 2878 if (isRaw) { | 2878 if (isRaw) { |
| 2879 return lexeme.substring(start, end); | 2879 return lexeme.substring(start, end); |
| 2880 } | 2880 } |
| 2881 JavaStringBuilder builder = new JavaStringBuilder(); | 2881 StringBuffer buffer = new StringBuffer(); |
| 2882 int index = start; | 2882 int index = start; |
| 2883 while (index < end) { | 2883 while (index < end) { |
| 2884 index = _translateCharacter(builder, lexeme, index); | 2884 index = _translateCharacter(buffer, lexeme, index); |
| 2885 } | 2885 } |
| 2886 return builder.toString(); | 2886 return buffer.toString(); |
| 2887 } | 2887 } |
| 2888 | 2888 |
| 2889 /** | 2889 /** |
| 2890 * Convert the given method declaration into the nearest valid top-level funct
ion declaration. | 2890 * Convert the given method declaration into the nearest valid top-level funct
ion declaration. |
| 2891 * | 2891 * |
| 2892 * @param method the method to be converted | 2892 * @param method the method to be converted |
| 2893 * @return the function declaration that most closely captures the components
of the given method | 2893 * @return the function declaration that most closely captures the components
of the given method |
| 2894 * declaration | 2894 * declaration |
| 2895 */ | 2895 */ |
| 2896 FunctionDeclaration _convertToFunctionDeclaration(MethodDeclaration method) =>
new FunctionDeclaration(method.documentationComment, method.metadata, method.ex
ternalKeyword, method.returnType, method.propertyKeyword, method.name, new Funct
ionExpression(method.parameters, method.body)); | 2896 FunctionDeclaration _convertToFunctionDeclaration(MethodDeclaration method) =>
new FunctionDeclaration(method.documentationComment, method.metadata, method.ex
ternalKeyword, method.returnType, method.propertyKeyword, method.name, new Funct
ionExpression(method.parameters, method.body)); |
| (...skipping 4462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7359 /** | 7359 /** |
| 7360 * Return `true` if the given token matches the given identifier. | 7360 * Return `true` if the given token matches the given identifier. |
| 7361 * | 7361 * |
| 7362 * @param token the token being tested | 7362 * @param token the token being tested |
| 7363 * @param identifier the identifier that can optionally appear in the current
location | 7363 * @param identifier the identifier that can optionally appear in the current
location |
| 7364 * @return `true` if the current token matches the given identifier | 7364 * @return `true` if the current token matches the given identifier |
| 7365 */ | 7365 */ |
| 7366 bool _tokenMatchesString(Token token, String identifier) => token.type == Toke
nType.IDENTIFIER && token.lexeme == identifier; | 7366 bool _tokenMatchesString(Token token, String identifier) => token.type == Toke
nType.IDENTIFIER && token.lexeme == identifier; |
| 7367 | 7367 |
| 7368 /** | 7368 /** |
| 7369 * Translate the characters at the given index in the given string, appending
the translated | 7369 * Translate the characters at the given [index] in the given [lexeme], |
| 7370 * character to the given builder. The index is assumed to be valid. | 7370 * appending the translated character to the given [buffer]. The index is |
| 7371 * | 7371 * assumed to be valid. |
| 7372 * @param builder the builder to which the translated character is to be appen
ded | |
| 7373 * @param lexeme the string containing the character(s) to be translated | |
| 7374 * @param index the index of the character to be translated | |
| 7375 * @return the index of the next character to be translated | |
| 7376 */ | 7372 */ |
| 7377 int _translateCharacter(JavaStringBuilder builder, String lexeme, int index) { | 7373 int _translateCharacter(StringBuffer buffer, String lexeme, int index) { |
| 7378 int currentChar = lexeme.codeUnitAt(index); | 7374 int currentChar = lexeme.codeUnitAt(index); |
| 7379 if (currentChar != 0x5C) { | 7375 if (currentChar != 0x5C) { |
| 7380 builder.appendChar(currentChar); | 7376 buffer.writeCharCode(currentChar); |
| 7381 return index + 1; | 7377 return index + 1; |
| 7382 } | 7378 } |
| 7383 // | 7379 // |
| 7384 // We have found an escape sequence, so we parse the string to determine wha
t kind of escape | 7380 // We have found an escape sequence, so we parse the string to determine |
| 7385 // sequence and what character to add to the builder. | 7381 // what kind of escape sequence and what character to add to the builder. |
| 7386 // | 7382 // |
| 7387 int length = lexeme.length; | 7383 int length = lexeme.length; |
| 7388 int currentIndex = index + 1; | 7384 int currentIndex = index + 1; |
| 7389 if (currentIndex >= length) { | 7385 if (currentIndex >= length) { |
| 7390 // Illegal escape sequence: no char after escape | 7386 // Illegal escape sequence: no char after escape. |
| 7391 // This cannot actually happen because it would require the escape charact
er to be the last | 7387 // This cannot actually happen because it would require the escape |
| 7392 // character in the string, but if it were it would escape the closing quo
te, leaving the | 7388 // character to be the last character in the string, but if it were it |
| 7393 // string unclosed. | 7389 // would escape the closing quote, leaving the string unclosed. |
| 7394 // reportError(ParserErrorCode.MISSING_CHAR_IN_ESCAPE_SEQUENCE); | 7390 // reportError(ParserErrorCode.MISSING_CHAR_IN_ESCAPE_SEQUENCE); |
| 7395 return length; | 7391 return length; |
| 7396 } | 7392 } |
| 7397 currentChar = lexeme.codeUnitAt(currentIndex); | 7393 currentChar = lexeme.codeUnitAt(currentIndex); |
| 7398 if (currentChar == 0x6E) { | 7394 if (currentChar == 0x6E) { |
| 7399 builder.appendChar(0xA); | 7395 buffer.writeCharCode(0xA); |
| 7400 // newline | 7396 // newline |
| 7401 } else if (currentChar == 0x72) { | 7397 } else if (currentChar == 0x72) { |
| 7402 builder.appendChar(0xD); | 7398 buffer.writeCharCode(0xD); |
| 7403 // carriage return | 7399 // carriage return |
| 7404 } else if (currentChar == 0x66) { | 7400 } else if (currentChar == 0x66) { |
| 7405 builder.appendChar(0xC); | 7401 buffer.writeCharCode(0xC); |
| 7406 // form feed | 7402 // form feed |
| 7407 } else if (currentChar == 0x62) { | 7403 } else if (currentChar == 0x62) { |
| 7408 builder.appendChar(0x8); | 7404 buffer.writeCharCode(0x8); |
| 7409 // backspace | 7405 // backspace |
| 7410 } else if (currentChar == 0x74) { | 7406 } else if (currentChar == 0x74) { |
| 7411 builder.appendChar(0x9); | 7407 buffer.writeCharCode(0x9); |
| 7412 // tab | 7408 // tab |
| 7413 } else if (currentChar == 0x76) { | 7409 } else if (currentChar == 0x76) { |
| 7414 builder.appendChar(0xB); | 7410 buffer.writeCharCode(0xB); |
| 7415 // vertical tab | 7411 // vertical tab |
| 7416 } else if (currentChar == 0x78) { | 7412 } else if (currentChar == 0x78) { |
| 7417 if (currentIndex + 2 >= length) { | 7413 if (currentIndex + 2 >= length) { |
| 7418 // Illegal escape sequence: not enough hex digits | 7414 // Illegal escape sequence: not enough hex digits |
| 7419 _reportErrorForCurrentToken(ParserErrorCode.INVALID_HEX_ESCAPE, []); | 7415 _reportErrorForCurrentToken(ParserErrorCode.INVALID_HEX_ESCAPE, []); |
| 7420 return length; | 7416 return length; |
| 7421 } | 7417 } |
| 7422 int firstDigit = lexeme.codeUnitAt(currentIndex + 1); | 7418 int firstDigit = lexeme.codeUnitAt(currentIndex + 1); |
| 7423 int secondDigit = lexeme.codeUnitAt(currentIndex + 2); | 7419 int secondDigit = lexeme.codeUnitAt(currentIndex + 2); |
| 7424 if (!_isHexDigit(firstDigit) || !_isHexDigit(secondDigit)) { | 7420 if (!_isHexDigit(firstDigit) || !_isHexDigit(secondDigit)) { |
| 7425 // Illegal escape sequence: invalid hex digit | 7421 // Illegal escape sequence: invalid hex digit |
| 7426 _reportErrorForCurrentToken(ParserErrorCode.INVALID_HEX_ESCAPE, []); | 7422 _reportErrorForCurrentToken(ParserErrorCode.INVALID_HEX_ESCAPE, []); |
| 7427 } else { | 7423 } else { |
| 7428 builder.appendChar(((Character.digit(firstDigit, 16) << 4) + Character.d
igit(secondDigit, 16))); | 7424 int charCode = (Character.digit(firstDigit, 16) << 4) |
| 7425 + Character.digit(secondDigit, 16); |
| 7426 buffer.writeCharCode(charCode); |
| 7429 } | 7427 } |
| 7430 return currentIndex + 3; | 7428 return currentIndex + 3; |
| 7431 } else if (currentChar == 0x75) { | 7429 } else if (currentChar == 0x75) { |
| 7432 currentIndex++; | 7430 currentIndex++; |
| 7433 if (currentIndex >= length) { | 7431 if (currentIndex >= length) { |
| 7434 // Illegal escape sequence: not enough hex digits | 7432 // Illegal escape sequence: not enough hex digits |
| 7435 _reportErrorForCurrentToken(ParserErrorCode.INVALID_UNICODE_ESCAPE, []); | 7433 _reportErrorForCurrentToken(ParserErrorCode.INVALID_UNICODE_ESCAPE, []); |
| 7436 return length; | 7434 return length; |
| 7437 } | 7435 } |
| 7438 currentChar = lexeme.codeUnitAt(currentIndex); | 7436 currentChar = lexeme.codeUnitAt(currentIndex); |
| 7439 if (currentChar == 0x7B) { | 7437 if (currentChar == 0x7B) { |
| 7440 currentIndex++; | 7438 currentIndex++; |
| 7441 if (currentIndex >= length) { | 7439 if (currentIndex >= length) { |
| 7442 // Illegal escape sequence: incomplete escape | 7440 // Illegal escape sequence: incomplete escape |
| 7443 _reportErrorForCurrentToken(ParserErrorCode.INVALID_UNICODE_ESCAPE, []
); | 7441 _reportErrorForCurrentToken( |
| 7442 ParserErrorCode.INVALID_UNICODE_ESCAPE, |
| 7443 []); |
| 7444 return length; | 7444 return length; |
| 7445 } | 7445 } |
| 7446 currentChar = lexeme.codeUnitAt(currentIndex); | 7446 currentChar = lexeme.codeUnitAt(currentIndex); |
| 7447 int digitCount = 0; | 7447 int digitCount = 0; |
| 7448 int value = 0; | 7448 int value = 0; |
| 7449 while (currentChar != 0x7D) { | 7449 while (currentChar != 0x7D) { |
| 7450 if (!_isHexDigit(currentChar)) { | 7450 if (!_isHexDigit(currentChar)) { |
| 7451 // Illegal escape sequence: invalid hex digit | 7451 // Illegal escape sequence: invalid hex digit |
| 7452 _reportErrorForCurrentToken(ParserErrorCode.INVALID_UNICODE_ESCAPE,
[]); | 7452 _reportErrorForCurrentToken( |
| 7453 ParserErrorCode.INVALID_UNICODE_ESCAPE, |
| 7454 []); |
| 7453 currentIndex++; | 7455 currentIndex++; |
| 7454 while (currentIndex < length && lexeme.codeUnitAt(currentIndex) != 0
x7D) { | 7456 while (currentIndex < length |
| 7457 && lexeme.codeUnitAt(currentIndex) != 0x7D) { |
| 7455 currentIndex++; | 7458 currentIndex++; |
| 7456 } | 7459 } |
| 7457 return currentIndex + 1; | 7460 return currentIndex + 1; |
| 7458 } | 7461 } |
| 7459 digitCount++; | 7462 digitCount++; |
| 7460 value = (value << 4) + Character.digit(currentChar, 16); | 7463 value = (value << 4) + Character.digit(currentChar, 16); |
| 7461 currentIndex++; | 7464 currentIndex++; |
| 7462 if (currentIndex >= length) { | 7465 if (currentIndex >= length) { |
| 7463 // Illegal escape sequence: incomplete escape | 7466 // Illegal escape sequence: incomplete escape |
| 7464 _reportErrorForCurrentToken(ParserErrorCode.INVALID_UNICODE_ESCAPE,
[]); | 7467 _reportErrorForCurrentToken( |
| 7468 ParserErrorCode.INVALID_UNICODE_ESCAPE, |
| 7469 []); |
| 7465 return length; | 7470 return length; |
| 7466 } | 7471 } |
| 7467 currentChar = lexeme.codeUnitAt(currentIndex); | 7472 currentChar = lexeme.codeUnitAt(currentIndex); |
| 7468 } | 7473 } |
| 7469 if (digitCount < 1 || digitCount > 6) { | 7474 if (digitCount < 1 || digitCount > 6) { |
| 7470 // Illegal escape sequence: not enough or too many hex digits | 7475 // Illegal escape sequence: not enough or too many hex digits |
| 7471 _reportErrorForCurrentToken(ParserErrorCode.INVALID_UNICODE_ESCAPE, []
); | 7476 _reportErrorForCurrentToken( |
| 7477 ParserErrorCode.INVALID_UNICODE_ESCAPE, |
| 7478 []); |
| 7472 } | 7479 } |
| 7473 _appendScalarValue(builder, lexeme.substring(index, currentIndex + 1), v
alue, index, currentIndex); | 7480 _appendScalarValue( |
| 7481 buffer, |
| 7482 lexeme.substring(index, currentIndex + 1), |
| 7483 value, |
| 7484 index, |
| 7485 currentIndex); |
| 7474 return currentIndex + 1; | 7486 return currentIndex + 1; |
| 7475 } else { | 7487 } else { |
| 7476 if (currentIndex + 3 >= length) { | 7488 if (currentIndex + 3 >= length) { |
| 7477 // Illegal escape sequence: not enough hex digits | 7489 // Illegal escape sequence: not enough hex digits |
| 7478 _reportErrorForCurrentToken(ParserErrorCode.INVALID_UNICODE_ESCAPE, []
); | 7490 _reportErrorForCurrentToken( |
| 7491 ParserErrorCode.INVALID_UNICODE_ESCAPE, |
| 7492 []); |
| 7479 return length; | 7493 return length; |
| 7480 } | 7494 } |
| 7481 int firstDigit = currentChar; | 7495 int firstDigit = currentChar; |
| 7482 int secondDigit = lexeme.codeUnitAt(currentIndex + 1); | 7496 int secondDigit = lexeme.codeUnitAt(currentIndex + 1); |
| 7483 int thirdDigit = lexeme.codeUnitAt(currentIndex + 2); | 7497 int thirdDigit = lexeme.codeUnitAt(currentIndex + 2); |
| 7484 int fourthDigit = lexeme.codeUnitAt(currentIndex + 3); | 7498 int fourthDigit = lexeme.codeUnitAt(currentIndex + 3); |
| 7485 if (!_isHexDigit(firstDigit) || !_isHexDigit(secondDigit) || !_isHexDigi
t(thirdDigit) || !_isHexDigit(fourthDigit)) { | 7499 if (!_isHexDigit(firstDigit) |
| 7500 || !_isHexDigit(secondDigit) |
| 7501 || !_isHexDigit(thirdDigit) |
| 7502 || !_isHexDigit(fourthDigit)) { |
| 7486 // Illegal escape sequence: invalid hex digits | 7503 // Illegal escape sequence: invalid hex digits |
| 7487 _reportErrorForCurrentToken(ParserErrorCode.INVALID_UNICODE_ESCAPE, []
); | 7504 _reportErrorForCurrentToken(ParserErrorCode.INVALID_UNICODE_ESCAPE, []
); |
| 7488 } else { | 7505 } else { |
| 7489 _appendScalarValue(builder, lexeme.substring(index, currentIndex + 1),
(((((Character.digit(firstDigit, 16) << 4) + Character.digit(secondDigit, 16))
<< 4) + Character.digit(thirdDigit, 16)) << 4) + Character.digit(fourthDigit, 16
), index, currentIndex + 3); | 7506 _appendScalarValue( |
| 7507 buffer, |
| 7508 lexeme.substring(index, currentIndex + 1), |
| 7509 (((((Character.digit(firstDigit, 16) << 4) |
| 7510 + Character.digit(secondDigit, 16)) << 4) |
| 7511 + Character.digit(thirdDigit, 16)) << 4) |
| 7512 + Character.digit(fourthDigit, 16), |
| 7513 index, |
| 7514 currentIndex + 3); |
| 7490 } | 7515 } |
| 7491 return currentIndex + 4; | 7516 return currentIndex + 4; |
| 7492 } | 7517 } |
| 7493 } else { | 7518 } else { |
| 7494 builder.appendChar(currentChar); | 7519 buffer.writeCharCode(currentChar); |
| 7495 } | 7520 } |
| 7496 return currentIndex + 1; | 7521 return currentIndex + 1; |
| 7497 } | 7522 } |
| 7498 | 7523 |
| 7499 /** | 7524 /** |
| 7500 * Decrements the error reporting lock level. If level is more than `0`, then | 7525 * Decrements the error reporting lock level. If level is more than `0`, then |
| 7501 * [reportError] wont report any error. | 7526 * [reportError] wont report any error. |
| 7502 */ | 7527 */ |
| 7503 void _unlockErrorListener() { | 7528 void _unlockErrorListener() { |
| 7504 if (_errorListenerLock == 0) { | 7529 if (_errorListenerLock == 0) { |
| (...skipping 2021 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9526 return trampoline(target, arguments[0], arguments[1]); | 9551 return trampoline(target, arguments[0], arguments[1]); |
| 9527 case 3: | 9552 case 3: |
| 9528 return trampoline(target, arguments[0], arguments[1], arguments[2]); | 9553 return trampoline(target, arguments[0], arguments[1], arguments[2]); |
| 9529 case 4: | 9554 case 4: |
| 9530 return trampoline(target, arguments[0], arguments[1], arguments[2], argu
ments[3]); | 9555 return trampoline(target, arguments[0], arguments[1], arguments[2], argu
ments[3]); |
| 9531 default: | 9556 default: |
| 9532 throw new IllegalArgumentException("Not implemented for > 4 arguments"); | 9557 throw new IllegalArgumentException("Not implemented for > 4 arguments"); |
| 9533 } | 9558 } |
| 9534 } | 9559 } |
| 9535 } | 9560 } |
| OLD | NEW |