| 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'; |
| 11 import 'package:unittest/unittest.dart' as _ut; | 11 import 'package:unittest/unittest.dart' as _ut; |
| 12 import 'test_support.dart'; | 12 import 'test_support.dart'; |
| 13 class KeywordStateTest extends JUnitTestCase { | 13 class KeywordStateTest extends JUnitTestCase { |
| 14 void test_KeywordState() { | 14 void test_KeywordState() { |
| 15 List<Keyword> keywords = Keyword.values; | 15 List<Keyword> keywords = Keyword.values; |
| 16 int keywordCount = keywords.length; | 16 int keywordCount = keywords.length; |
| 17 List<String> textToTest = new List<String>(keywordCount * 3); | 17 List<String> textToTest = new List<String>(keywordCount * 3); |
| 18 for (int i = 0; i < keywordCount; i++) { | 18 for (int i = 0; i < keywordCount; i++) { |
| 19 String syntax2 = keywords[i].syntax; | 19 String syntax = keywords[i].syntax; |
| 20 textToTest[i] = syntax2; | 20 textToTest[i] = syntax; |
| 21 textToTest[i + keywordCount] = "${syntax2}x"; | 21 textToTest[i + keywordCount] = "${syntax}x"; |
| 22 textToTest[i + keywordCount * 2] = syntax2.substring(0, syntax2.length - 1
); | 22 textToTest[i + keywordCount * 2] = syntax.substring(0, syntax.length - 1); |
| 23 } | 23 } |
| 24 KeywordState firstState = KeywordState.KEYWORD_STATE; | 24 KeywordState firstState = KeywordState.KEYWORD_STATE; |
| 25 for (int i = 0; i < textToTest.length; i++) { | 25 for (int i = 0; i < textToTest.length; i++) { |
| 26 String text = textToTest[i]; | 26 String text = textToTest[i]; |
| 27 int index = 0; | 27 int index = 0; |
| 28 int length2 = text.length; | 28 int length = text.length; |
| 29 KeywordState state = firstState; | 29 KeywordState state = firstState; |
| 30 while (index < length2 && state != null) { | 30 while (index < length && state != null) { |
| 31 state = state.next(text.codeUnitAt(index)); | 31 state = state.next(text.codeUnitAt(index)); |
| 32 index++; | 32 index++; |
| 33 } | 33 } |
| 34 if (i < keywordCount) { | 34 if (i < keywordCount) { |
| 35 JUnitTestCase.assertNotNull(state); | 35 JUnitTestCase.assertNotNull(state); |
| 36 JUnitTestCase.assertNotNull(state.keyword()); | 36 JUnitTestCase.assertNotNull(state.keyword()); |
| 37 JUnitTestCase.assertEquals(keywords[i], state.keyword()); | 37 JUnitTestCase.assertEquals(keywords[i], state.keyword()); |
| 38 } else if (i < keywordCount * 2) { | 38 } else if (i < keywordCount * 2) { |
| 39 JUnitTestCase.assertNull(state); | 39 JUnitTestCase.assertNull(state); |
| 40 } else { | 40 } else { |
| (...skipping 757 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 798 }); | 798 }); |
| 799 } | 799 } |
| 800 } | 800 } |
| 801 class StringScannerTest extends AbstractScannerTest { | 801 class StringScannerTest extends AbstractScannerTest { |
| 802 void test_setSourceStart() { | 802 void test_setSourceStart() { |
| 803 int offsetDelta = 42; | 803 int offsetDelta = 42; |
| 804 GatheringErrorListener listener = new GatheringErrorListener(); | 804 GatheringErrorListener listener = new GatheringErrorListener(); |
| 805 StringScanner scanner = new StringScanner(null, "a", listener); | 805 StringScanner scanner = new StringScanner(null, "a", listener); |
| 806 scanner.setSourceStart(3, 9, offsetDelta); | 806 scanner.setSourceStart(3, 9, offsetDelta); |
| 807 scanner.tokenize(); | 807 scanner.tokenize(); |
| 808 List<int> lineStarts2 = scanner.lineStarts; | 808 List<int> lineStarts = scanner.lineStarts; |
| 809 JUnitTestCase.assertNotNull(lineStarts2); | 809 JUnitTestCase.assertNotNull(lineStarts); |
| 810 JUnitTestCase.assertEquals(3, lineStarts2.length); | 810 JUnitTestCase.assertEquals(3, lineStarts.length); |
| 811 JUnitTestCase.assertEquals(33, lineStarts2[2]); | 811 JUnitTestCase.assertEquals(33, lineStarts[2]); |
| 812 } | 812 } |
| 813 Token scan(String source, GatheringErrorListener listener) { | 813 Token scan(String source, GatheringErrorListener listener) { |
| 814 StringScanner scanner = new StringScanner(null, source, listener); | 814 StringScanner scanner = new StringScanner(null, source, listener); |
| 815 Token result = scanner.tokenize(); | 815 Token result = scanner.tokenize(); |
| 816 listener.setLineInfo(new TestSource(), scanner.lineStarts); | 816 listener.setLineInfo(new TestSource(), scanner.lineStarts); |
| 817 return result; | 817 return result; |
| 818 } | 818 } |
| 819 static dartSuite() { | 819 static dartSuite() { |
| 820 _ut.group('StringScannerTest', () { | 820 _ut.group('StringScannerTest', () { |
| 821 _ut.test('test_ampersand', () { | 821 _ut.test('test_ampersand', () { |
| (...skipping 670 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1492 } | 1492 } |
| 1493 void validateStream(JavaStringBuilder builder, Token token) { | 1493 void validateStream(JavaStringBuilder builder, Token token) { |
| 1494 if (token == null) { | 1494 if (token == null) { |
| 1495 return; | 1495 return; |
| 1496 } | 1496 } |
| 1497 Token previousToken = null; | 1497 Token previousToken = null; |
| 1498 int previousEnd = -1; | 1498 int previousEnd = -1; |
| 1499 Token currentToken = token; | 1499 Token currentToken = token; |
| 1500 while (currentToken != null && currentToken.type != TokenType.EOF) { | 1500 while (currentToken != null && currentToken.type != TokenType.EOF) { |
| 1501 validateStream(builder, currentToken.precedingComments); | 1501 validateStream(builder, currentToken.precedingComments); |
| 1502 TokenType type2 = currentToken.type; | 1502 TokenType type = currentToken.type; |
| 1503 if (identical(type2, TokenType.OPEN_CURLY_BRACKET) || identical(type2, Tok
enType.OPEN_PAREN) || identical(type2, TokenType.OPEN_SQUARE_BRACKET) || identic
al(type2, TokenType.STRING_INTERPOLATION_EXPRESSION)) { | 1503 if (identical(type, TokenType.OPEN_CURLY_BRACKET) || identical(type, Token
Type.OPEN_PAREN) || identical(type, TokenType.OPEN_SQUARE_BRACKET) || identical(
type, TokenType.STRING_INTERPOLATION_EXPRESSION)) { |
| 1504 if (currentToken is! BeginToken) { | 1504 if (currentToken is! BeginToken) { |
| 1505 builder.append("\r\nExpected BeginToken, found "); | 1505 builder.append("\r\nExpected BeginToken, found "); |
| 1506 builder.append(currentToken.runtimeType.toString()); | 1506 builder.append(currentToken.runtimeType.toString()); |
| 1507 builder.append(" "); | 1507 builder.append(" "); |
| 1508 writeToken(builder, currentToken); | 1508 writeToken(builder, currentToken); |
| 1509 } | 1509 } |
| 1510 } | 1510 } |
| 1511 int currentStart = currentToken.offset; | 1511 int currentStart = currentToken.offset; |
| 1512 int currentLength = currentToken.length; | 1512 int currentLength = currentToken.length; |
| 1513 int currentEnd = currentStart + currentLength - 1; | 1513 int currentEnd = currentStart + currentLength - 1; |
| (...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1932 assertToken(TokenType.SLASH_EQ, "/="); | 1932 assertToken(TokenType.SLASH_EQ, "/="); |
| 1933 } | 1933 } |
| 1934 void test_star() { | 1934 void test_star() { |
| 1935 assertToken(TokenType.STAR, "*"); | 1935 assertToken(TokenType.STAR, "*"); |
| 1936 } | 1936 } |
| 1937 void test_star_eq() { | 1937 void test_star_eq() { |
| 1938 assertToken(TokenType.STAR_EQ, "*="); | 1938 assertToken(TokenType.STAR_EQ, "*="); |
| 1939 } | 1939 } |
| 1940 void test_startAndEnd() { | 1940 void test_startAndEnd() { |
| 1941 Token token = scan2("a"); | 1941 Token token = scan2("a"); |
| 1942 Token previous2 = token.previous; | 1942 Token previous = token.previous; |
| 1943 JUnitTestCase.assertEquals(token, previous2.next); | 1943 JUnitTestCase.assertEquals(token, previous.next); |
| 1944 JUnitTestCase.assertEquals(previous2, previous2.previous); | 1944 JUnitTestCase.assertEquals(previous, previous.previous); |
| 1945 Token next2 = token.next; | 1945 Token next = token.next; |
| 1946 JUnitTestCase.assertEquals(next2, next2.next); | 1946 JUnitTestCase.assertEquals(next, next.next); |
| 1947 JUnitTestCase.assertEquals(token, next2.previous); | 1947 JUnitTestCase.assertEquals(token, next.previous); |
| 1948 } | 1948 } |
| 1949 void test_string_multi_double() { | 1949 void test_string_multi_double() { |
| 1950 assertToken(TokenType.STRING, "\"\"\"multi-line\nstring\"\"\""); | 1950 assertToken(TokenType.STRING, "\"\"\"multi-line\nstring\"\"\""); |
| 1951 } | 1951 } |
| 1952 void test_string_multi_interpolation_block() { | 1952 void test_string_multi_interpolation_block() { |
| 1953 assertTokens("\"Hello \${name}!\"", [new StringToken(TokenType.STRING, "\"He
llo ", 0), new StringToken(TokenType.STRING_INTERPOLATION_EXPRESSION, "\${", 7),
new StringToken(TokenType.IDENTIFIER, "name", 9), new Token(TokenType.CLOSE_CUR
LY_BRACKET, 13), new StringToken(TokenType.STRING, "!\"", 14)]); | 1953 assertTokens("\"Hello \${name}!\"", [new StringToken(TokenType.STRING, "\"He
llo ", 0), new StringToken(TokenType.STRING_INTERPOLATION_EXPRESSION, "\${", 7),
new StringToken(TokenType.IDENTIFIER, "name", 9), new Token(TokenType.CLOSE_CUR
LY_BRACKET, 13), new StringToken(TokenType.STRING, "!\"", 14)]); |
| 1954 } | 1954 } |
| 1955 void test_string_multi_interpolation_identifier() { | 1955 void test_string_multi_interpolation_identifier() { |
| 1956 assertTokens("\"Hello \$name!\"", [new StringToken(TokenType.STRING, "\"Hell
o ", 0), new StringToken(TokenType.STRING_INTERPOLATION_IDENTIFIER, "\$", 7), ne
w StringToken(TokenType.IDENTIFIER, "name", 8), new StringToken(TokenType.STRING
, "!\"", 12)]); | 1956 assertTokens("\"Hello \$name!\"", [new StringToken(TokenType.STRING, "\"Hell
o ", 0), new StringToken(TokenType.STRING_INTERPOLATION_IDENTIFIER, "\$", 7), ne
w StringToken(TokenType.IDENTIFIER, "name", 8), new StringToken(TokenType.STRING
, "!\"", 12)]); |
| 1957 } | 1957 } |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2061 * as the original source. | 2061 * as the original source. |
| 2062 * @param source the source to be scanned | 2062 * @param source the source to be scanned |
| 2063 */ | 2063 */ |
| 2064 void assertKeywordToken(String source) { | 2064 void assertKeywordToken(String source) { |
| 2065 Token token = scan2(source); | 2065 Token token = scan2(source); |
| 2066 JUnitTestCase.assertNotNull(token); | 2066 JUnitTestCase.assertNotNull(token); |
| 2067 JUnitTestCase.assertEquals(TokenType.KEYWORD, token.type); | 2067 JUnitTestCase.assertEquals(TokenType.KEYWORD, token.type); |
| 2068 JUnitTestCase.assertEquals(0, token.offset); | 2068 JUnitTestCase.assertEquals(0, token.offset); |
| 2069 JUnitTestCase.assertEquals(source.length, token.length); | 2069 JUnitTestCase.assertEquals(source.length, token.length); |
| 2070 JUnitTestCase.assertEquals(source, token.lexeme); | 2070 JUnitTestCase.assertEquals(source, token.lexeme); |
| 2071 Object value2 = token.value(); | 2071 Object value = token.value(); |
| 2072 JUnitTestCase.assertTrue(value2 is Keyword); | 2072 JUnitTestCase.assertTrue(value is Keyword); |
| 2073 JUnitTestCase.assertEquals(source, ((value2 as Keyword)).syntax); | 2073 JUnitTestCase.assertEquals(source, ((value as Keyword)).syntax); |
| 2074 token = scan2(" ${source} "); | 2074 token = scan2(" ${source} "); |
| 2075 JUnitTestCase.assertNotNull(token); | 2075 JUnitTestCase.assertNotNull(token); |
| 2076 JUnitTestCase.assertEquals(TokenType.KEYWORD, token.type); | 2076 JUnitTestCase.assertEquals(TokenType.KEYWORD, token.type); |
| 2077 JUnitTestCase.assertEquals(1, token.offset); | 2077 JUnitTestCase.assertEquals(1, token.offset); |
| 2078 JUnitTestCase.assertEquals(source.length, token.length); | 2078 JUnitTestCase.assertEquals(source.length, token.length); |
| 2079 JUnitTestCase.assertEquals(source, token.lexeme); | 2079 JUnitTestCase.assertEquals(source, token.lexeme); |
| 2080 value2 = token.value(); | 2080 value = token.value(); |
| 2081 JUnitTestCase.assertTrue(value2 is Keyword); | 2081 JUnitTestCase.assertTrue(value is Keyword); |
| 2082 JUnitTestCase.assertEquals(source, ((value2 as Keyword)).syntax); | 2082 JUnitTestCase.assertEquals(source, ((value as Keyword)).syntax); |
| 2083 JUnitTestCase.assertEquals(TokenType.EOF, token.next.type); | 2083 JUnitTestCase.assertEquals(TokenType.EOF, token.next.type); |
| 2084 } | 2084 } |
| 2085 void assertLineInfo(String source, List<AbstractScannerTest_ExpectedLocation>
expectedLocations) { | 2085 void assertLineInfo(String source, List<AbstractScannerTest_ExpectedLocation>
expectedLocations) { |
| 2086 GatheringErrorListener listener = new GatheringErrorListener(); | 2086 GatheringErrorListener listener = new GatheringErrorListener(); |
| 2087 scan(source, listener); | 2087 scan(source, listener); |
| 2088 listener.assertNoErrors(); | 2088 listener.assertNoErrors(); |
| 2089 LineInfo info = listener.getLineInfo(new TestSource()); | 2089 LineInfo info = listener.getLineInfo(new TestSource()); |
| 2090 JUnitTestCase.assertNotNull(info); | 2090 JUnitTestCase.assertNotNull(info); |
| 2091 for (AbstractScannerTest_ExpectedLocation expectedLocation in expectedLocati
ons) { | 2091 for (AbstractScannerTest_ExpectedLocation expectedLocation in expectedLocati
ons) { |
| 2092 LineInfo_Location location = info.getLocation(expectedLocation._offset); | 2092 LineInfo_Location location = info.getLocation(expectedLocation._offset); |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2168 this._lineNumber = lineNumber; | 2168 this._lineNumber = lineNumber; |
| 2169 this._columnNumber = columnNumber; | 2169 this._columnNumber = columnNumber; |
| 2170 } | 2170 } |
| 2171 } | 2171 } |
| 2172 main() { | 2172 main() { |
| 2173 CharBufferScannerTest.dartSuite(); | 2173 CharBufferScannerTest.dartSuite(); |
| 2174 KeywordStateTest.dartSuite(); | 2174 KeywordStateTest.dartSuite(); |
| 2175 StringScannerTest.dartSuite(); | 2175 StringScannerTest.dartSuite(); |
| 2176 TokenTypeTest.dartSuite(); | 2176 TokenTypeTest.dartSuite(); |
| 2177 } | 2177 } |
| OLD | NEW |