| Index: frog/scripts/token_kind_gen.py
|
| diff --git a/frog/scripts/token_kind_gen.py b/frog/scripts/token_kind_gen.py
|
| deleted file mode 100644
|
| index 69fe6be8da313ccaa70d790e0a18c1a0733aa0d4..0000000000000000000000000000000000000000
|
| --- a/frog/scripts/token_kind_gen.py
|
| +++ /dev/null
|
| @@ -1,98 +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.
|
| -from token_info import tokens, keywords
|
| -from codegen import CodeWriter
|
| -
|
| -# TODO(jimhug): Compare perf of the switch pattern used here with maps and ifs
|
| -
|
| -def main():
|
| - '''Generates the TokenKind class into token_kind.g.dart.'''
|
| - cw = CodeWriter(__file__)
|
| - cw.enterBlock('class TokenKind {')
|
| - index = 1
|
| -
|
| - trueKeywords = [kw for kw in keywords if not kw.isPseudo]
|
| - pseudoKeywords = [kw for kw in keywords if kw.isPseudo]
|
| - allTokens = tokens + pseudoKeywords + trueKeywords
|
| -
|
| - for tok in allTokens:
|
| - if tok.name is None: continue
|
| - tok.index = index
|
| - index += 1
|
| - cw.writeln('/** [TokenKind] representing %s tokens. */', tok.stringRepr)
|
| - cw.writeln('static final int %s = %d;', tok.name, tok.index)
|
| - cw.writeln('')
|
| -
|
| - cw.enterBlock('static String kindToString(int kind) {')
|
| - cw.writeln('switch(kind) {')
|
| - cw.enterBlock()
|
| -
|
| - for tok in allTokens:
|
| - if tok.name is None: continue
|
| - cw.writeln('case TokenKind.%s: return "%s";', tok.name, tok.stringRepr)
|
| -
|
| - cw.writeln('default: return "TokenKind(" + kind.toString() + ")";')
|
| - cw.exitBlock('}')
|
| - cw.exitBlock('}')
|
| -
|
| - cw.writeln()
|
| -
|
| - cw.enterBlock('static bool isIdentifier(int kind) {')
|
| - cw.writeln('return kind >= IDENTIFIER && kind < %s;' % trueKeywords[0].name)
|
| - cw.exitBlock('}')
|
| -
|
| - cw.writeln()
|
| -
|
| - cw.enterBlock('static int infixPrecedence(int kind) {')
|
| - cw.enterBlock('switch(kind) {')
|
| - for tok in tokens + keywords:
|
| - if tok.precedence > 0:
|
| - cw.writeln('case %s: return %d;' % (tok.name, tok.precedence))
|
| -
|
| -
|
| - cw.writeln('default: return -1;')
|
| - cw.exitBlock('}')
|
| - cw.exitBlock('}')
|
| -
|
| - cw.writeln()
|
| - cw.enterBlock('static String rawOperatorFromMethod(String name) {')
|
| - cw.enterBlock('switch(name) {')
|
| - for tok in tokens:
|
| - if tok.methodName is not None:
|
| - cw.writeln('case %r: return %r;' % (tok.methodName, tok.text))
|
| - cw.writeln("case ':ne': return '!=';");
|
| - cw.exitBlock('}')
|
| - cw.exitBlock('}')
|
| -
|
| - cw.writeln()
|
| - cw.enterBlock('static String binaryMethodName(int kind) {')
|
| - cw.enterBlock('switch(kind) {')
|
| - for tok in tokens:
|
| - if tok.methodName is not None:
|
| - dname = repr(tok.methodName).replace('$', '\\$')
|
| - cw.writeln('case %s: return %s;' % (tok.name, dname))
|
| - cw.exitBlock('}')
|
| - cw.exitBlock('}')
|
| -
|
| - cw.writeln()
|
| - cw.enterBlock('static String unaryMethodName(int kind) {')
|
| -
|
| - cw.exitBlock('}')
|
| -
|
| - cw.writeln()
|
| - cw.enterBlock('static int kindFromAssign(int kind) {')
|
| - cw.writeln('if (kind == ASSIGN) return 0;')
|
| - cw.enterBlock('if (kind > ASSIGN && kind <= ASSIGN_MOD) {')
|
| - cw.writeln('return kind + (ADD - ASSIGN_ADD);')
|
| - cw.exitBlock('}')
|
| - cw.writeln('return -1;')
|
| - cw.exitBlock('}')
|
| -
|
| -
|
| -
|
| - cw.exitBlock('}')
|
| -
|
| - cw.writeToFile('token_kind')
|
| -
|
| -if __name__ == '__main__': main()
|
|
|