Index: frog/tests/tokenizer_test.dart |
diff --git a/frog/tests/tokenizer_test.dart b/frog/tests/tokenizer_test.dart |
deleted file mode 100644 |
index bcc1e24f346a5422af8cc2288081d8b76646c326..0000000000000000000000000000000000000000 |
--- a/frog/tests/tokenizer_test.dart |
+++ /dev/null |
@@ -1,117 +0,0 @@ |
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-class TokenizerTest { |
- static void main() { |
- print('start TokenizerTest'); |
- testSourceLocations(); |
- testBasics(); |
- testIncomplete(); |
- testInterpolation(); |
- print('finished TokenizerTest'); |
- } |
- |
- static void checkLocation(source, position, expectedLine, expectedCol) { |
- final loc = source.getLocationMessage('TEST', position, position, false); |
- final expectedLoc = source.filename + ':$expectedLine:$expectedCol: TEST'; |
- Expect.equals(expectedLoc, loc); |
- } |
- |
- static void testSourceLocations() { |
- var filename = 'test.dart'; |
- var source = new SourceFile(filename, '012\n45\n7\n9'); |
- checkLocation(source, 0, 1, 1); |
- checkLocation(source, 1, 1, 2); |
- checkLocation(source, 2, 1, 3); |
- checkLocation(source, 3, 1, 4); |
- |
- checkLocation(source, 4, 2, 1); |
- checkLocation(source, 5, 2, 2); |
- checkLocation(source, 6, 2, 3); |
- |
- checkLocation(source, 7, 3, 1); |
- checkLocation(source, 8, 3, 2); |
- |
- checkLocation(source, 9, 4, 1); |
- checkLocation(source, 10, 4, 2); |
- } |
- |
- static void testBasics() { |
- tokenTest('==> =>> +++', |
- ['==', '>', '=>', '>', '++', '+']); |
- |
- tokenTest('0123q 0123 0xabcg 3.14 1e10', |
- ['0123q', '0123', '0xabc', 'g', '3.14', '1e10'], |
- [TokenKind.ERROR, TokenKind.INTEGER, TokenKind.HEX_INTEGER, |
- TokenKind.IDENTIFIER, TokenKind.DOUBLE, TokenKind.DOUBLE]); |
- |
- tokenTest('\$"foo" @"bar" \$abc @\'foo\' \$\'bar\'', |
- ['\$"foo"', '@"bar"', '\$abc', "@'foo'", "\$'bar'"], |
- [TokenKind.STRING, TokenKind.STRING, TokenKind.IDENTIFIER, |
- TokenKind.STRING, TokenKind.STRING]); |
- |
- |
- tokenTest('"hello \\"world" // comment', |
- ['"hello \\"world"', '// comment'], |
- [TokenKind.STRING, TokenKind.COMMENT]); |
- |
- tokenTest('a_34xy _32x a.b.c', |
- ['a_34xy', '_32x', 'a', '.', 'b', '.', 'c']); |
- |
- tokenTest('forclass for+ class in while', |
- ['forclass', 'for', '+', 'class', 'in', 'while'], |
- [TokenKind.IDENTIFIER, TokenKind.FOR, TokenKind.ADD, |
- TokenKind.CLASS, TokenKind.IN, TokenKind.WHILE]); |
- } |
- |
- static void testIncomplete() { |
- tokenTest('"hello', ['"hello'], |
- [TokenKind.INCOMPLETE_STRING]); |
- tokenTest('"""hello', ['"""hello'], |
- [TokenKind.INCOMPLETE_MULTILINE_STRING_DQ]); |
- tokenTest("'''hello", ["'''hello"], |
- [TokenKind.INCOMPLETE_MULTILINE_STRING_SQ]); |
- tokenTest('/* Comment * * /', ['/* Comment * * /'], |
- [TokenKind.INCOMPLETE_COMMENT]); |
- |
- tokenTest('@', ['@'], [TokenKind.ERROR]); |
- } |
- |
- static void testInterpolation() { |
- tokenTest("foo''", ["foo", "''"], |
- [TokenKind.IDENTIFIER, TokenKind.STRING]); |
- tokenTest("'hello'", ["'hello'"], |
- [TokenKind.STRING]); |
- tokenTest("'hello \$foo more'", ["'hello \$", "foo", " more'"], |
- [TokenKind.INCOMPLETE_STRING, TokenKind.IDENTIFIER, TokenKind.STRING]); |
- |
- tokenTest("'\${2 + x} = \${y('bar')}'", |
- ["'\$", "{", "2", "+", "x", "}", " = \$", |
- "{", "y", "(", "'bar'", ")", "}", "'"]); |
- |
- tokenTest('"hello \$foo"', ['"hello \$', "foo", '"'], |
- [TokenKind.INCOMPLETE_STRING, TokenKind.IDENTIFIER, TokenKind.STRING]); |
- |
- |
- tokenTest("'hello \$foo'", ["'hello \$", "foo", "'"], |
- [TokenKind.INCOMPLETE_STRING, TokenKind.IDENTIFIER, TokenKind.STRING]); |
- |
- } |
- |
- static void tokenTest(String code, List<String> expected, |
- [List<int> kinds=null]) { |
- final source = new SourceFile('test.dart', code); |
- final tokenizer = new Tokenizer(source, false); |
- for (int i=0; i < expected.length; i++) { |
- final token = tokenizer.next(); |
- //print('${token.text} ${TokenKind.kindToString(token.kind)}'); |
- Expect.equals(expected[i], token.text); |
- if (kinds != null) { |
- Expect.equals(kinds[i], token.kind); |
- } |
- } |
- var t = tokenizer.next(); |
- Expect.equals(TokenKind.END_OF_FILE, tokenizer.next().kind); |
- } |
-} |