| OLD | NEW |
| 1 // This code was auto-generated, is not intended to be edited, and is subject to | 1 // This code was auto-generated, is not intended to be edited, and is subject to |
| 2 // significant change. Please see the README file for more information. | 2 // significant change. Please see the README file for more information. |
| 3 library engine.scanner_test; | 3 library engine.scanner_test; |
| 4 import 'dart:collection'; | 4 import 'dart:collection'; |
| 5 import 'package:analyzer_experimental/src/generated/java_core.dart'; | 5 import 'package:analyzer_experimental/src/generated/java_core.dart'; |
| 6 import 'package:analyzer_experimental/src/generated/java_engine.dart'; | 6 import 'package:analyzer_experimental/src/generated/java_engine.dart'; |
| 7 import 'package:analyzer_experimental/src/generated/java_junit.dart'; | 7 import 'package:analyzer_experimental/src/generated/java_junit.dart'; |
| 8 import 'package:analyzer_experimental/src/generated/source.dart'; | 8 import 'package:analyzer_experimental/src/generated/source.dart'; |
| 9 import 'package:analyzer_experimental/src/generated/error.dart'; | 9 import 'package:analyzer_experimental/src/generated/error.dart'; |
| 10 import 'package:analyzer_experimental/src/generated/scanner.dart'; | 10 import 'package:analyzer_experimental/src/generated/scanner.dart'; |
| (...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 runJUnitTest(__test, __test.test_hexidecimal); | 332 runJUnitTest(__test, __test.test_hexidecimal); |
| 333 }); | 333 }); |
| 334 _ut.test('test_hexidecimal_missingDigit', () { | 334 _ut.test('test_hexidecimal_missingDigit', () { |
| 335 final __test = new CharBufferScannerTest(); | 335 final __test = new CharBufferScannerTest(); |
| 336 runJUnitTest(__test, __test.test_hexidecimal_missingDigit); | 336 runJUnitTest(__test, __test.test_hexidecimal_missingDigit); |
| 337 }); | 337 }); |
| 338 _ut.test('test_identifier', () { | 338 _ut.test('test_identifier', () { |
| 339 final __test = new CharBufferScannerTest(); | 339 final __test = new CharBufferScannerTest(); |
| 340 runJUnitTest(__test, __test.test_identifier); | 340 runJUnitTest(__test, __test.test_identifier); |
| 341 }); | 341 }); |
| 342 _ut.test('test_illegalChar', () { | 342 _ut.test('test_illegalChar_cyrillicLetter_middle', () { |
| 343 final __test = new CharBufferScannerTest(); | 343 final __test = new CharBufferScannerTest(); |
| 344 runJUnitTest(__test, __test.test_illegalChar); | 344 runJUnitTest(__test, __test.test_illegalChar_cyrillicLetter_middle); |
| 345 }); |
| 346 _ut.test('test_illegalChar_cyrillicLetter_start', () { |
| 347 final __test = new CharBufferScannerTest(); |
| 348 runJUnitTest(__test, __test.test_illegalChar_cyrillicLetter_start); |
| 349 }); |
| 350 _ut.test('test_illegalChar_notLetter', () { |
| 351 final __test = new CharBufferScannerTest(); |
| 352 runJUnitTest(__test, __test.test_illegalChar_notLetter); |
| 345 }); | 353 }); |
| 346 _ut.test('test_index', () { | 354 _ut.test('test_index', () { |
| 347 final __test = new CharBufferScannerTest(); | 355 final __test = new CharBufferScannerTest(); |
| 348 runJUnitTest(__test, __test.test_index); | 356 runJUnitTest(__test, __test.test_index); |
| 349 }); | 357 }); |
| 350 _ut.test('test_index_eq', () { | 358 _ut.test('test_index_eq', () { |
| 351 final __test = new CharBufferScannerTest(); | 359 final __test = new CharBufferScannerTest(); |
| 352 runJUnitTest(__test, __test.test_index_eq); | 360 runJUnitTest(__test, __test.test_index_eq); |
| 353 }); | 361 }); |
| 354 _ut.test('test_int', () { | 362 _ut.test('test_int', () { |
| (...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1003 runJUnitTest(__test, __test.test_hexidecimal); | 1011 runJUnitTest(__test, __test.test_hexidecimal); |
| 1004 }); | 1012 }); |
| 1005 _ut.test('test_hexidecimal_missingDigit', () { | 1013 _ut.test('test_hexidecimal_missingDigit', () { |
| 1006 final __test = new StringScannerTest(); | 1014 final __test = new StringScannerTest(); |
| 1007 runJUnitTest(__test, __test.test_hexidecimal_missingDigit); | 1015 runJUnitTest(__test, __test.test_hexidecimal_missingDigit); |
| 1008 }); | 1016 }); |
| 1009 _ut.test('test_identifier', () { | 1017 _ut.test('test_identifier', () { |
| 1010 final __test = new StringScannerTest(); | 1018 final __test = new StringScannerTest(); |
| 1011 runJUnitTest(__test, __test.test_identifier); | 1019 runJUnitTest(__test, __test.test_identifier); |
| 1012 }); | 1020 }); |
| 1013 _ut.test('test_illegalChar', () { | 1021 _ut.test('test_illegalChar_cyrillicLetter_middle', () { |
| 1014 final __test = new StringScannerTest(); | 1022 final __test = new StringScannerTest(); |
| 1015 runJUnitTest(__test, __test.test_illegalChar); | 1023 runJUnitTest(__test, __test.test_illegalChar_cyrillicLetter_middle); |
| 1024 }); |
| 1025 _ut.test('test_illegalChar_cyrillicLetter_start', () { |
| 1026 final __test = new StringScannerTest(); |
| 1027 runJUnitTest(__test, __test.test_illegalChar_cyrillicLetter_start); |
| 1028 }); |
| 1029 _ut.test('test_illegalChar_notLetter', () { |
| 1030 final __test = new StringScannerTest(); |
| 1031 runJUnitTest(__test, __test.test_illegalChar_notLetter); |
| 1016 }); | 1032 }); |
| 1017 _ut.test('test_index', () { | 1033 _ut.test('test_index', () { |
| 1018 final __test = new StringScannerTest(); | 1034 final __test = new StringScannerTest(); |
| 1019 runJUnitTest(__test, __test.test_index); | 1035 runJUnitTest(__test, __test.test_index); |
| 1020 }); | 1036 }); |
| 1021 _ut.test('test_index_eq', () { | 1037 _ut.test('test_index_eq', () { |
| 1022 final __test = new StringScannerTest(); | 1038 final __test = new StringScannerTest(); |
| 1023 runJUnitTest(__test, __test.test_index_eq); | 1039 runJUnitTest(__test, __test.test_index_eq); |
| 1024 }); | 1040 }); |
| 1025 _ut.test('test_int', () { | 1041 _ut.test('test_int', () { |
| (...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1474 } | 1490 } |
| 1475 } | 1491 } |
| 1476 /** | 1492 /** |
| 1477 * Instances of the class `TokenStreamValidator` are used to validate the correc
t construction | 1493 * Instances of the class `TokenStreamValidator` are used to validate the correc
t construction |
| 1478 * of a stream of tokens. | 1494 * of a stream of tokens. |
| 1479 */ | 1495 */ |
| 1480 class TokenStreamValidator { | 1496 class TokenStreamValidator { |
| 1481 | 1497 |
| 1482 /** | 1498 /** |
| 1483 * Validate that the stream of tokens that starts with the given token is corr
ect. | 1499 * Validate that the stream of tokens that starts with the given token is corr
ect. |
| 1500 * |
| 1484 * @param token the first token in the stream of tokens to be validated | 1501 * @param token the first token in the stream of tokens to be validated |
| 1485 */ | 1502 */ |
| 1486 void validate(Token token) { | 1503 void validate(Token token) { |
| 1487 JavaStringBuilder builder = new JavaStringBuilder(); | 1504 JavaStringBuilder builder = new JavaStringBuilder(); |
| 1488 validateStream(builder, token); | 1505 validateStream(builder, token); |
| 1489 if (builder.length > 0) { | 1506 if (builder.length > 0) { |
| 1490 JUnitTestCase.fail(builder.toString()); | 1507 JUnitTestCase.fail(builder.toString()); |
| 1491 } | 1508 } |
| 1492 } | 1509 } |
| 1493 void validateStream(JavaStringBuilder builder, Token token) { | 1510 void validateStream(JavaStringBuilder builder, Token token) { |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1672 } | 1689 } |
| 1673 void test_hexidecimal() { | 1690 void test_hexidecimal() { |
| 1674 assertToken(TokenType.HEXADECIMAL, "0x1A2B3C"); | 1691 assertToken(TokenType.HEXADECIMAL, "0x1A2B3C"); |
| 1675 } | 1692 } |
| 1676 void test_hexidecimal_missingDigit() { | 1693 void test_hexidecimal_missingDigit() { |
| 1677 assertError(ScannerErrorCode.MISSING_HEX_DIGIT, 1, "0x"); | 1694 assertError(ScannerErrorCode.MISSING_HEX_DIGIT, 1, "0x"); |
| 1678 } | 1695 } |
| 1679 void test_identifier() { | 1696 void test_identifier() { |
| 1680 assertToken(TokenType.IDENTIFIER, "result"); | 1697 assertToken(TokenType.IDENTIFIER, "result"); |
| 1681 } | 1698 } |
| 1682 void test_illegalChar() { | 1699 void test_illegalChar_cyrillicLetter_middle() { |
| 1700 assertError(ScannerErrorCode.ILLEGAL_CHARACTER, 0, "Shche\u0433lov"); |
| 1701 } |
| 1702 void test_illegalChar_cyrillicLetter_start() { |
| 1703 assertError(ScannerErrorCode.ILLEGAL_CHARACTER, 0, "\u0429"); |
| 1704 } |
| 1705 void test_illegalChar_notLetter() { |
| 1683 assertError(ScannerErrorCode.ILLEGAL_CHARACTER, 0, "\u0312"); | 1706 assertError(ScannerErrorCode.ILLEGAL_CHARACTER, 0, "\u0312"); |
| 1684 } | 1707 } |
| 1685 void test_index() { | 1708 void test_index() { |
| 1686 assertToken(TokenType.INDEX, "[]"); | 1709 assertToken(TokenType.INDEX, "[]"); |
| 1687 } | 1710 } |
| 1688 void test_index_eq() { | 1711 void test_index_eq() { |
| 1689 assertToken(TokenType.INDEX_EQ, "[]="); | 1712 assertToken(TokenType.INDEX_EQ, "[]="); |
| 1690 } | 1713 } |
| 1691 void test_int() { | 1714 void test_int() { |
| 1692 assertToken(TokenType.INT, "123"); | 1715 assertToken(TokenType.INT, "123"); |
| (...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2039 Token comment = token.precedingComments; | 2062 Token comment = token.precedingComments; |
| 2040 JUnitTestCase.assertNotNull(comment); | 2063 JUnitTestCase.assertNotNull(comment); |
| 2041 JUnitTestCase.assertEquals(commentType, comment.type); | 2064 JUnitTestCase.assertEquals(commentType, comment.type); |
| 2042 JUnitTestCase.assertEquals(0, comment.offset); | 2065 JUnitTestCase.assertEquals(0, comment.offset); |
| 2043 JUnitTestCase.assertEquals(source.length, comment.length); | 2066 JUnitTestCase.assertEquals(source.length, comment.length); |
| 2044 JUnitTestCase.assertEquals(source, comment.lexeme); | 2067 JUnitTestCase.assertEquals(source, comment.lexeme); |
| 2045 } | 2068 } |
| 2046 | 2069 |
| 2047 /** | 2070 /** |
| 2048 * Assert that scanning the given source produces an error with the given code
. | 2071 * Assert that scanning the given source produces an error with the given code
. |
| 2072 * |
| 2049 * @param illegalCharacter | 2073 * @param illegalCharacter |
| 2050 * @param i | 2074 * @param i |
| 2051 * @param source the source to be scanned to produce the error | 2075 * @param source the source to be scanned to produce the error |
| 2052 */ | 2076 */ |
| 2053 void assertError(ScannerErrorCode expectedError, int expectedOffset, String so
urce) { | 2077 void assertError(ScannerErrorCode expectedError, int expectedOffset, String so
urce) { |
| 2054 GatheringErrorListener listener = new GatheringErrorListener(); | 2078 GatheringErrorListener listener = new GatheringErrorListener(); |
| 2055 scan(source, listener); | 2079 scan(source, listener); |
| 2056 listener.assertErrors([new AnalysisError.con2(null, expectedOffset, 1, expec
tedError, [(source.codeUnitAt(expectedOffset) as int)])]); | 2080 listener.assertErrors([new AnalysisError.con2(null, expectedOffset, 1, expec
tedError, [(source.codeUnitAt(expectedOffset) as int)])]); |
| 2057 } | 2081 } |
| 2058 | 2082 |
| 2059 /** | 2083 /** |
| 2060 * Assert that when scanned the given source contains a single keyword token w
ith the same lexeme | 2084 * Assert that when scanned the given source contains a single keyword token w
ith the same lexeme |
| 2061 * as the original source. | 2085 * as the original source. |
| 2086 * |
| 2062 * @param source the source to be scanned | 2087 * @param source the source to be scanned |
| 2063 */ | 2088 */ |
| 2064 void assertKeywordToken(String source) { | 2089 void assertKeywordToken(String source) { |
| 2065 Token token = scan2(source); | 2090 Token token = scan2(source); |
| 2066 JUnitTestCase.assertNotNull(token); | 2091 JUnitTestCase.assertNotNull(token); |
| 2067 JUnitTestCase.assertEquals(TokenType.KEYWORD, token.type); | 2092 JUnitTestCase.assertEquals(TokenType.KEYWORD, token.type); |
| 2068 JUnitTestCase.assertEquals(0, token.offset); | 2093 JUnitTestCase.assertEquals(0, token.offset); |
| 2069 JUnitTestCase.assertEquals(source.length, token.length); | 2094 JUnitTestCase.assertEquals(source.length, token.length); |
| 2070 JUnitTestCase.assertEquals(source, token.lexeme); | 2095 JUnitTestCase.assertEquals(source, token.lexeme); |
| 2071 Object value = token.value(); | 2096 Object value = token.value(); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 2090 JUnitTestCase.assertNotNull(info); | 2115 JUnitTestCase.assertNotNull(info); |
| 2091 for (AbstractScannerTest_ExpectedLocation expectedLocation in expectedLocati
ons) { | 2116 for (AbstractScannerTest_ExpectedLocation expectedLocation in expectedLocati
ons) { |
| 2092 LineInfo_Location location = info.getLocation(expectedLocation._offset); | 2117 LineInfo_Location location = info.getLocation(expectedLocation._offset); |
| 2093 JUnitTestCase.assertEquals(expectedLocation._lineNumber, location.lineNumb
er); | 2118 JUnitTestCase.assertEquals(expectedLocation._lineNumber, location.lineNumb
er); |
| 2094 JUnitTestCase.assertEquals(expectedLocation._columnNumber, location.column
Number); | 2119 JUnitTestCase.assertEquals(expectedLocation._columnNumber, location.column
Number); |
| 2095 } | 2120 } |
| 2096 } | 2121 } |
| 2097 | 2122 |
| 2098 /** | 2123 /** |
| 2099 * Assert that the token scanned from the given source has the expected type. | 2124 * Assert that the token scanned from the given source has the expected type. |
| 2125 * |
| 2100 * @param expectedType the expected type of the token | 2126 * @param expectedType the expected type of the token |
| 2101 * @param source the source to be scanned to produce the actual token | 2127 * @param source the source to be scanned to produce the actual token |
| 2102 */ | 2128 */ |
| 2103 Token assertToken(TokenType expectedType, String source) { | 2129 Token assertToken(TokenType expectedType, String source) { |
| 2104 Token originalToken = scan2(source); | 2130 Token originalToken = scan2(source); |
| 2105 JUnitTestCase.assertNotNull(originalToken); | 2131 JUnitTestCase.assertNotNull(originalToken); |
| 2106 JUnitTestCase.assertEquals(expectedType, originalToken.type); | 2132 JUnitTestCase.assertEquals(expectedType, originalToken.type); |
| 2107 JUnitTestCase.assertEquals(0, originalToken.offset); | 2133 JUnitTestCase.assertEquals(0, originalToken.offset); |
| 2108 JUnitTestCase.assertEquals(source.length, originalToken.length); | 2134 JUnitTestCase.assertEquals(source.length, originalToken.length); |
| 2109 JUnitTestCase.assertEquals(source, originalToken.lexeme); | 2135 JUnitTestCase.assertEquals(source, originalToken.lexeme); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 2124 JUnitTestCase.assertEquals(1, tokenWithSpaces.offset); | 2150 JUnitTestCase.assertEquals(1, tokenWithSpaces.offset); |
| 2125 JUnitTestCase.assertEquals(source.length, tokenWithSpaces.length); | 2151 JUnitTestCase.assertEquals(source.length, tokenWithSpaces.length); |
| 2126 JUnitTestCase.assertEquals(source, tokenWithSpaces.lexeme); | 2152 JUnitTestCase.assertEquals(source, tokenWithSpaces.lexeme); |
| 2127 JUnitTestCase.assertEquals(TokenType.EOF, originalToken.next.type); | 2153 JUnitTestCase.assertEquals(TokenType.EOF, originalToken.next.type); |
| 2128 return originalToken; | 2154 return originalToken; |
| 2129 } | 2155 } |
| 2130 | 2156 |
| 2131 /** | 2157 /** |
| 2132 * Assert that when scanned the given source contains a sequence of tokens ide
ntical to the given | 2158 * Assert that when scanned the given source contains a sequence of tokens ide
ntical to the given |
| 2133 * tokens. | 2159 * tokens. |
| 2160 * |
| 2134 * @param source the source to be scanned | 2161 * @param source the source to be scanned |
| 2135 * @param expectedTokens the tokens that are expected to be in the source | 2162 * @param expectedTokens the tokens that are expected to be in the source |
| 2136 */ | 2163 */ |
| 2137 void assertTokens(String source, List<Token> expectedTokens) { | 2164 void assertTokens(String source, List<Token> expectedTokens) { |
| 2138 Token token = scan2(source); | 2165 Token token = scan2(source); |
| 2139 JUnitTestCase.assertNotNull(token); | 2166 JUnitTestCase.assertNotNull(token); |
| 2140 for (int i = 0; i < expectedTokens.length; i++) { | 2167 for (int i = 0; i < expectedTokens.length; i++) { |
| 2141 Token expectedToken = expectedTokens[i]; | 2168 Token expectedToken = expectedTokens[i]; |
| 2142 JUnitTestCase.assertEqualsMsg("Wrong type for token ${i}", expectedToken.t
ype, token.type); | 2169 JUnitTestCase.assertEqualsMsg("Wrong type for token ${i}", expectedToken.t
ype, token.type); |
| 2143 JUnitTestCase.assertEqualsMsg("Wrong offset for token ${i}", expectedToken
.offset, token.offset); | 2170 JUnitTestCase.assertEqualsMsg("Wrong offset for token ${i}", expectedToken
.offset, token.offset); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 2168 this._lineNumber = lineNumber; | 2195 this._lineNumber = lineNumber; |
| 2169 this._columnNumber = columnNumber; | 2196 this._columnNumber = columnNumber; |
| 2170 } | 2197 } |
| 2171 } | 2198 } |
| 2172 main() { | 2199 main() { |
| 2173 CharBufferScannerTest.dartSuite(); | 2200 CharBufferScannerTest.dartSuite(); |
| 2174 KeywordStateTest.dartSuite(); | 2201 KeywordStateTest.dartSuite(); |
| 2175 StringScannerTest.dartSuite(); | 2202 StringScannerTest.dartSuite(); |
| 2176 TokenTypeTest.dartSuite(); | 2203 TokenTypeTest.dartSuite(); |
| 2177 } | 2204 } |
| OLD | NEW |