| Index: pkg/compiler/lib/src/scanner/keyword.dart
|
| diff --git a/pkg/compiler/lib/src/scanner/keyword.dart b/pkg/compiler/lib/src/scanner/keyword.dart
|
| deleted file mode 100644
|
| index 1e01efb608d3ed33649ddfa4674b5417888ca697..0000000000000000000000000000000000000000
|
| --- a/pkg/compiler/lib/src/scanner/keyword.dart
|
| +++ /dev/null
|
| @@ -1,209 +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.
|
| -
|
| -part of scanner;
|
| -
|
| -/**
|
| - * A keyword in the Dart programming language.
|
| - */
|
| -class Keyword {
|
| - static const List<Keyword> values = const <Keyword> [
|
| - const Keyword("assert"),
|
| - const Keyword("break"),
|
| - const Keyword("case"),
|
| - const Keyword("catch"),
|
| - const Keyword("class"),
|
| - const Keyword("const"),
|
| - const Keyword("continue"),
|
| - const Keyword("default"),
|
| - const Keyword("do"),
|
| - const Keyword("else"),
|
| - const Keyword("extends"),
|
| - const Keyword("false"),
|
| - const Keyword("final"),
|
| - const Keyword("finally"),
|
| - const Keyword("for"),
|
| - const Keyword("if"),
|
| - const Keyword("in"),
|
| - const Keyword("new"),
|
| - const Keyword("null"),
|
| - const Keyword("rethrow"),
|
| - const Keyword("return"),
|
| - const Keyword("super"),
|
| - const Keyword("switch"),
|
| - const Keyword("this"),
|
| - const Keyword("throw"),
|
| - const Keyword("true"),
|
| - const Keyword("try"),
|
| - const Keyword("var"),
|
| - const Keyword("void"),
|
| - const Keyword("while"),
|
| - const Keyword("with"),
|
| -
|
| - // TODO(ahe): Don't think this is a reserved word.
|
| - // See: http://dartbug.com/5579
|
| - const Keyword("is", info: IS_INFO),
|
| -
|
| - const Keyword("abstract", isBuiltIn: true),
|
| - const Keyword("as", info: AS_INFO, isBuiltIn: true),
|
| - const Keyword("dynamic", isBuiltIn: true),
|
| - const Keyword("export", isBuiltIn: true),
|
| - const Keyword("external", isBuiltIn: true),
|
| - const Keyword("factory", isBuiltIn: true),
|
| - const Keyword("get", isBuiltIn: true),
|
| - const Keyword("implements", isBuiltIn: true),
|
| - const Keyword("import", isBuiltIn: true),
|
| - const Keyword("library", isBuiltIn: true),
|
| - const Keyword("operator", isBuiltIn: true),
|
| - const Keyword("part", isBuiltIn: true),
|
| - const Keyword("set", isBuiltIn: true),
|
| - const Keyword("static", isBuiltIn: true),
|
| - const Keyword("typedef", isBuiltIn: true),
|
| -
|
| - const Keyword("hide", isPseudo: true),
|
| - const Keyword("native", isPseudo: true),
|
| - const Keyword("of", isPseudo: true),
|
| - const Keyword("on", isPseudo: true),
|
| - const Keyword("show", isPseudo: true),
|
| - const Keyword("source", isPseudo: true),
|
| - const Keyword("deferred", isPseudo: true),
|
| - const Keyword("async", isPseudo: true),
|
| - const Keyword("sync", isPseudo: true),
|
| - const Keyword("await", isPseudo: true),
|
| - const Keyword("yield", isPseudo: true)];
|
| -
|
| - final String syntax;
|
| - final bool isPseudo;
|
| - final bool isBuiltIn;
|
| - final PrecedenceInfo info;
|
| -
|
| - static Map<String, Keyword> _keywords;
|
| - static Map<String, Keyword> get keywords {
|
| - if (_keywords == null) {
|
| - _keywords = computeKeywordMap();
|
| - }
|
| - return _keywords;
|
| - }
|
| -
|
| - const Keyword(this.syntax,
|
| - {this.isPseudo: false,
|
| - this.isBuiltIn: false,
|
| - this.info: KEYWORD_INFO});
|
| -
|
| - static Map<String, Keyword> computeKeywordMap() {
|
| - Map<String, Keyword> result = new Map<String, Keyword>();
|
| - for (Keyword keyword in values) {
|
| - result[keyword.syntax] = keyword;
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - String toString() => syntax;
|
| -}
|
| -
|
| -/**
|
| - * Abstract state in a state machine for scanning keywords.
|
| - */
|
| -abstract class KeywordState {
|
| - KeywordState(this.keyword);
|
| -
|
| - KeywordState next(int c);
|
| - final Keyword keyword;
|
| -
|
| - static KeywordState _KEYWORD_STATE;
|
| - static KeywordState get KEYWORD_STATE {
|
| - if (_KEYWORD_STATE == null) {
|
| - List<String> strings =
|
| - new List<String>(Keyword.values.length);
|
| - for (int i = 0; i < Keyword.values.length; i++) {
|
| - strings[i] = Keyword.values[i].syntax;
|
| - }
|
| - strings.sort((a,b) => a.compareTo(b));
|
| - _KEYWORD_STATE = computeKeywordStateTable(0, strings, 0, strings.length);
|
| - }
|
| - return _KEYWORD_STATE;
|
| - }
|
| -
|
| - static KeywordState computeKeywordStateTable(int start, List<String> strings,
|
| - int offset, int length) {
|
| - List<KeywordState> result = new List<KeywordState>(26);
|
| - assert(length != 0);
|
| - int chunk = 0;
|
| - int chunkStart = -1;
|
| - bool isLeaf = false;
|
| - for (int i = offset; i < offset + length; i++) {
|
| - if (strings[i].length == start) {
|
| - isLeaf = true;
|
| - }
|
| - if (strings[i].length > start) {
|
| - int c = strings[i].codeUnitAt(start);
|
| - if (chunk != c) {
|
| - if (chunkStart != -1) {
|
| - assert(result[chunk - $a] == null);
|
| - result[chunk - $a] = computeKeywordStateTable(start + 1, strings,
|
| - chunkStart,
|
| - i - chunkStart);
|
| - }
|
| - chunkStart = i;
|
| - chunk = c;
|
| - }
|
| - }
|
| - }
|
| - if (chunkStart != -1) {
|
| - assert(result[chunk - $a] == null);
|
| - result[chunk - $a] =
|
| - computeKeywordStateTable(start + 1, strings, chunkStart,
|
| - offset + length - chunkStart);
|
| - } else {
|
| - assert(length == 1);
|
| - return new LeafKeywordState(strings[offset]);
|
| - }
|
| - if (isLeaf) {
|
| - return new ArrayKeywordState(result, strings[offset]);
|
| - } else {
|
| - return new ArrayKeywordState(result, null);
|
| - }
|
| - }
|
| -}
|
| -
|
| -/**
|
| - * A state with multiple outgoing transitions.
|
| - */
|
| -class ArrayKeywordState extends KeywordState {
|
| - final List<KeywordState> table;
|
| -
|
| - ArrayKeywordState(List<KeywordState> this.table, String syntax)
|
| - : super((syntax == null) ? null : Keyword.keywords[syntax]);
|
| -
|
| - KeywordState next(int c) => table[c - $a];
|
| -
|
| - String toString() {
|
| - StringBuffer sb = new StringBuffer();
|
| - sb.write("[");
|
| - if (keyword != null) {
|
| - sb.write("*");
|
| - sb.write(keyword);
|
| - sb.write(" ");
|
| - }
|
| - List<KeywordState> foo = table;
|
| - for (int i = 0; i < foo.length; i++) {
|
| - if (foo[i] != null) {
|
| - sb.write("${new String.fromCharCodes([i + $a])}: ${foo[i]}; ");
|
| - }
|
| - }
|
| - sb.write("]");
|
| - return sb.toString();
|
| - }
|
| -}
|
| -
|
| -/**
|
| - * A state that has no outgoing transitions.
|
| - */
|
| -class LeafKeywordState extends KeywordState {
|
| - LeafKeywordState(String syntax) : super(Keyword.keywords[syntax]);
|
| -
|
| - KeywordState next(int c) => null;
|
| -
|
| - String toString() => keyword.syntax;
|
| -}
|
|
|