Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Side by Side Diff: pkg/analyzer-experimental/test/generated/scanner_test.dart

Issue 12253009: Fresh drop of analyzer-experimental. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 3
4 library engine.scanner_test; 4 library engine.scanner_test;
5 5
6 import 'dart:collection'; 6 import 'dart:collection';
7 import 'package:analyzer-experimental/src/generated/java_core.dart'; 7 import 'package:analyzer-experimental/src/generated/java_core.dart';
8 import 'package:analyzer-experimental/src/generated/java_engine.dart'; 8 import 'package:analyzer-experimental/src/generated/java_engine.dart';
9 import 'package:analyzer-experimental/src/generated/java_junit.dart'; 9 import 'package:analyzer-experimental/src/generated/java_junit.dart';
10 import 'package:analyzer-experimental/src/generated/source.dart'; 10 import 'package:analyzer-experimental/src/generated/source.dart';
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after
660 } 660 }
661 void validateStream(StringBuffer builder, Token token) { 661 void validateStream(StringBuffer builder, Token token) {
662 if (token == null) { 662 if (token == null) {
663 return; 663 return;
664 } 664 }
665 Token previousToken = null; 665 Token previousToken = null;
666 int previousEnd = -1; 666 int previousEnd = -1;
667 Token currentToken = token; 667 Token currentToken = token;
668 while (currentToken != null && currentToken.type != TokenType.EOF) { 668 while (currentToken != null && currentToken.type != TokenType.EOF) {
669 validateStream(builder, currentToken.precedingComments); 669 validateStream(builder, currentToken.precedingComments);
670 TokenType type21 = currentToken.type; 670 TokenType type23 = currentToken.type;
671 if (type21 == TokenType.OPEN_CURLY_BRACKET || type21 == TokenType.OPEN_PAR EN || type21 == TokenType.OPEN_SQUARE_BRACKET || type21 == TokenType.STRING_INTE RPOLATION_EXPRESSION) { 671 if (identical(type23, TokenType.OPEN_CURLY_BRACKET) || identical(type23, T okenType.OPEN_PAREN) || identical(type23, TokenType.OPEN_SQUARE_BRACKET) || iden tical(type23, TokenType.STRING_INTERPOLATION_EXPRESSION)) {
672 if (currentToken is! BeginToken) { 672 if (currentToken is! BeginToken) {
673 builder.add("\r\nExpected BeginToken, found "); 673 builder.add("\r\nExpected BeginToken, found ");
674 builder.add(currentToken.runtimeType.toString()); 674 builder.add(currentToken.runtimeType.toString());
675 builder.add(" "); 675 builder.add(" ");
676 writeToken(builder, currentToken); 676 writeToken(builder, currentToken);
677 } 677 }
678 } 678 }
679 int currentStart = currentToken.offset; 679 int currentStart = currentToken.offset;
680 int currentLength = currentToken.length; 680 int currentLength = currentToken.length;
681 int currentEnd = currentStart + currentLength - 1; 681 int currentEnd = currentStart + currentLength - 1;
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
792 */ 792 */
793 TokenFactory() { 793 TokenFactory() {
794 } 794 }
795 } 795 }
796 class KeywordStateTest extends JUnitTestCase { 796 class KeywordStateTest extends JUnitTestCase {
797 void test_KeywordState() { 797 void test_KeywordState() {
798 List<Keyword> keywords = Keyword.values; 798 List<Keyword> keywords = Keyword.values;
799 int keywordCount = keywords.length; 799 int keywordCount = keywords.length;
800 List<String> textToTest = new List<String>.fixedLength(keywordCount * 3); 800 List<String> textToTest = new List<String>.fixedLength(keywordCount * 3);
801 for (int i = 0; i < keywordCount; i++) { 801 for (int i = 0; i < keywordCount; i++) {
802 String syntax2 = keywords[i].syntax; 802 String syntax3 = keywords[i].syntax;
803 textToTest[i] = syntax2; 803 textToTest[i] = syntax3;
804 textToTest[i + keywordCount] = "${syntax2}x"; 804 textToTest[i + keywordCount] = "${syntax3}x";
805 textToTest[i + keywordCount * 2] = syntax2.substring(0, syntax2.length - 1 ); 805 textToTest[i + keywordCount * 2] = syntax3.substring(0, syntax3.length - 1 );
806 } 806 }
807 KeywordState firstState = KeywordState.KEYWORD_STATE; 807 KeywordState firstState = KeywordState.KEYWORD_STATE;
808 for (int i = 0; i < textToTest.length; i++) { 808 for (int i = 0; i < textToTest.length; i++) {
809 String text = textToTest[i]; 809 String text = textToTest[i];
810 int index = 0; 810 int index = 0;
811 int length9 = text.length; 811 int length10 = text.length;
812 KeywordState state = firstState; 812 KeywordState state = firstState;
813 while (index < length9 && state != null) { 813 while (index < length10 && state != null) {
814 state = state.next(text.charCodeAt(index)); 814 state = state.next(text.codeUnitAt(index));
815 index++; 815 index++;
816 } 816 }
817 if (i < keywordCount) { 817 if (i < keywordCount) {
818 JUnitTestCase.assertNotNull(state); 818 JUnitTestCase.assertNotNull(state);
819 JUnitTestCase.assertNotNull(state.keyword()); 819 JUnitTestCase.assertNotNull(state.keyword());
820 JUnitTestCase.assertEquals(keywords[i], state.keyword()); 820 JUnitTestCase.assertEquals(keywords[i], state.keyword());
821 } else if (i < keywordCount * 2) { 821 } else if (i < keywordCount * 2) {
822 JUnitTestCase.assertNull(state); 822 JUnitTestCase.assertNull(state);
823 } else { 823 } else {
824 JUnitTestCase.assertNotNull(state); 824 JUnitTestCase.assertNotNull(state);
(...skipping 1035 matching lines...) Expand 10 before | Expand all | Expand 10 after
1860 assertToken(TokenType.STAR, "*"); 1860 assertToken(TokenType.STAR, "*");
1861 } 1861 }
1862 void test_star_eq() { 1862 void test_star_eq() {
1863 assertToken(TokenType.STAR_EQ, "*="); 1863 assertToken(TokenType.STAR_EQ, "*=");
1864 } 1864 }
1865 void test_startAndEnd() { 1865 void test_startAndEnd() {
1866 Token token = scan2("a"); 1866 Token token = scan2("a");
1867 Token previous3 = token.previous; 1867 Token previous3 = token.previous;
1868 JUnitTestCase.assertEquals(token, previous3.next); 1868 JUnitTestCase.assertEquals(token, previous3.next);
1869 JUnitTestCase.assertEquals(previous3, previous3.previous); 1869 JUnitTestCase.assertEquals(previous3, previous3.previous);
1870 Token next6 = token.next; 1870 Token next7 = token.next;
1871 JUnitTestCase.assertEquals(next6, next6.next); 1871 JUnitTestCase.assertEquals(next7, next7.next);
1872 JUnitTestCase.assertEquals(token, next6.previous); 1872 JUnitTestCase.assertEquals(token, next7.previous);
1873 } 1873 }
1874 void test_string_multi_double() { 1874 void test_string_multi_double() {
1875 assertToken(TokenType.STRING, "\"\"\"multi-line\nstring\"\"\""); 1875 assertToken(TokenType.STRING, "\"\"\"multi-line\nstring\"\"\"");
1876 } 1876 }
1877 void test_string_multi_interpolation_block() { 1877 void test_string_multi_interpolation_block() {
1878 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)]); 1878 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)]);
1879 } 1879 }
1880 void test_string_multi_interpolation_identifier() { 1880 void test_string_multi_interpolation_identifier() {
1881 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)]); 1881 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)]);
1882 } 1882 }
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
1961 } 1961 }
1962 /** 1962 /**
1963 * Assert that scanning the given source produces an error with the given code . 1963 * Assert that scanning the given source produces an error with the given code .
1964 * @param illegalCharacter 1964 * @param illegalCharacter
1965 * @param i 1965 * @param i
1966 * @param source the source to be scanned to produce the error 1966 * @param source the source to be scanned to produce the error
1967 */ 1967 */
1968 void assertError(ScannerErrorCode expectedError, int expectedOffset, String so urce) { 1968 void assertError(ScannerErrorCode expectedError, int expectedOffset, String so urce) {
1969 GatheringErrorListener listener = new GatheringErrorListener(); 1969 GatheringErrorListener listener = new GatheringErrorListener();
1970 scan(source, listener); 1970 scan(source, listener);
1971 listener.assertErrors([new AnalysisError.con2(null, expectedOffset, 1, expec tedError, [source.charCodeAt(expectedOffset) as int])]); 1971 listener.assertErrors([new AnalysisError.con2(null, expectedOffset, 1, expec tedError, [(source.codeUnitAt(expectedOffset) as int)])]);
1972 } 1972 }
1973 /** 1973 /**
1974 * Assert that when scanned the given source contains a single keyword token w ith the same lexeme 1974 * Assert that when scanned the given source contains a single keyword token w ith the same lexeme
1975 * as the original source. 1975 * as the original source.
1976 * @param source the source to be scanned 1976 * @param source the source to be scanned
1977 */ 1977 */
1978 void assertKeywordToken(String source) { 1978 void assertKeywordToken(String source) {
1979 Token token = scan2(source); 1979 Token token = scan2(source);
1980 JUnitTestCase.assertNotNull(token); 1980 JUnitTestCase.assertNotNull(token);
1981 JUnitTestCase.assertEquals(TokenType.KEYWORD, token.type); 1981 JUnitTestCase.assertEquals(TokenType.KEYWORD, token.type);
1982 JUnitTestCase.assertEquals(0, token.offset); 1982 JUnitTestCase.assertEquals(0, token.offset);
1983 JUnitTestCase.assertEquals(source.length, token.length); 1983 JUnitTestCase.assertEquals(source.length, token.length);
1984 JUnitTestCase.assertEquals(source, token.lexeme); 1984 JUnitTestCase.assertEquals(source, token.lexeme);
1985 Object value3 = token.value(); 1985 Object value3 = token.value();
1986 JUnitTestCase.assertTrue(value3 is Keyword); 1986 JUnitTestCase.assertTrue(value3 is Keyword);
1987 JUnitTestCase.assertEquals(source, (value3 as Keyword).syntax); 1987 JUnitTestCase.assertEquals(source, ((value3 as Keyword)).syntax);
1988 token = scan2(" ${source} "); 1988 token = scan2(" ${source} ");
1989 JUnitTestCase.assertNotNull(token); 1989 JUnitTestCase.assertNotNull(token);
1990 JUnitTestCase.assertEquals(TokenType.KEYWORD, token.type); 1990 JUnitTestCase.assertEquals(TokenType.KEYWORD, token.type);
1991 JUnitTestCase.assertEquals(1, token.offset); 1991 JUnitTestCase.assertEquals(1, token.offset);
1992 JUnitTestCase.assertEquals(source.length, token.length); 1992 JUnitTestCase.assertEquals(source.length, token.length);
1993 JUnitTestCase.assertEquals(source, token.lexeme); 1993 JUnitTestCase.assertEquals(source, token.lexeme);
1994 value3 = token.value(); 1994 value3 = token.value();
1995 JUnitTestCase.assertTrue(value3 is Keyword); 1995 JUnitTestCase.assertTrue(value3 is Keyword);
1996 JUnitTestCase.assertEquals(source, (value3 as Keyword).syntax); 1996 JUnitTestCase.assertEquals(source, ((value3 as Keyword)).syntax);
1997 JUnitTestCase.assertEquals(TokenType.EOF, token.next.type); 1997 JUnitTestCase.assertEquals(TokenType.EOF, token.next.type);
1998 } 1998 }
1999 /** 1999 /**
2000 * Assert that the token scanned from the given source has the expected type. 2000 * Assert that the token scanned from the given source has the expected type.
2001 * @param expectedType the expected type of the token 2001 * @param expectedType the expected type of the token
2002 * @param source the source to be scanned to produce the actual token 2002 * @param source the source to be scanned to produce the actual token
2003 */ 2003 */
2004 Token assertToken(TokenType expectedType, String source) { 2004 Token assertToken(TokenType expectedType, String source) {
2005 Token originalToken = scan2(source); 2005 Token originalToken = scan2(source);
2006 JUnitTestCase.assertNotNull(originalToken); 2006 JUnitTestCase.assertNotNull(originalToken);
2007 JUnitTestCase.assertEquals(expectedType, originalToken.type); 2007 JUnitTestCase.assertEquals(expectedType, originalToken.type);
2008 JUnitTestCase.assertEquals(0, originalToken.offset); 2008 JUnitTestCase.assertEquals(0, originalToken.offset);
2009 JUnitTestCase.assertEquals(source.length, originalToken.length); 2009 JUnitTestCase.assertEquals(source.length, originalToken.length);
2010 JUnitTestCase.assertEquals(source, originalToken.lexeme); 2010 JUnitTestCase.assertEquals(source, originalToken.lexeme);
2011 if (expectedType == TokenType.SCRIPT_TAG) { 2011 if (identical(expectedType, TokenType.SCRIPT_TAG)) {
2012 return originalToken; 2012 return originalToken;
2013 } else if (expectedType == TokenType.SINGLE_LINE_COMMENT) { 2013 } else if (identical(expectedType, TokenType.SINGLE_LINE_COMMENT)) {
2014 Token tokenWithSpaces = scan2(" ${source}"); 2014 Token tokenWithSpaces = scan2(" ${source}");
2015 JUnitTestCase.assertNotNull(tokenWithSpaces); 2015 JUnitTestCase.assertNotNull(tokenWithSpaces);
2016 JUnitTestCase.assertEquals(expectedType, tokenWithSpaces.type); 2016 JUnitTestCase.assertEquals(expectedType, tokenWithSpaces.type);
2017 JUnitTestCase.assertEquals(1, tokenWithSpaces.offset); 2017 JUnitTestCase.assertEquals(1, tokenWithSpaces.offset);
2018 JUnitTestCase.assertEquals(source.length, tokenWithSpaces.length); 2018 JUnitTestCase.assertEquals(source.length, tokenWithSpaces.length);
2019 JUnitTestCase.assertEquals(source, tokenWithSpaces.lexeme); 2019 JUnitTestCase.assertEquals(source, tokenWithSpaces.lexeme);
2020 return originalToken; 2020 return originalToken;
2021 } 2021 }
2022 Token tokenWithSpaces = scan2(" ${source} "); 2022 Token tokenWithSpaces = scan2(" ${source} ");
2023 JUnitTestCase.assertNotNull(tokenWithSpaces); 2023 JUnitTestCase.assertNotNull(tokenWithSpaces);
(...skipping 30 matching lines...) Expand all
2054 listener.assertNoErrors(); 2054 listener.assertNoErrors();
2055 return token; 2055 return token;
2056 } 2056 }
2057 } 2057 }
2058 main() { 2058 main() {
2059 CharBufferScannerTest.dartSuite(); 2059 CharBufferScannerTest.dartSuite();
2060 KeywordStateTest.dartSuite(); 2060 KeywordStateTest.dartSuite();
2061 StringScannerTest.dartSuite(); 2061 StringScannerTest.dartSuite();
2062 TokenTypeTest.dartSuite(); 2062 TokenTypeTest.dartSuite();
2063 } 2063 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698