| Index: dart/compiler/java/com/google/dart/compiler/parser/Token.java
|
| diff --git a/dart/compiler/java/com/google/dart/compiler/parser/Token.java b/dart/compiler/java/com/google/dart/compiler/parser/Token.java
|
| deleted file mode 100644
|
| index 53b3dde4802a27fa095bbc348294b585aa24c7f1..0000000000000000000000000000000000000000
|
| --- a/dart/compiler/java/com/google/dart/compiler/parser/Token.java
|
| +++ /dev/null
|
| @@ -1,268 +0,0 @@
|
| -// Copyright (c) 2012, 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.
|
| -
|
| -package com.google.dart.compiler.parser;
|
| -
|
| -import java.util.HashMap;
|
| -import java.util.Map;
|
| -
|
| -/**
|
| - * Dart tokens and associated data.
|
| - *
|
| - * Note: Token ordinals matter for some accessors, so don't change the order of these without
|
| - * knowing what you're doing.
|
| - */
|
| -public enum Token {
|
| - /* End-of-stream. */
|
| - EOS(null, 0),
|
| -
|
| - /* Punctuators. */
|
| - AT("@", 0),
|
| - LPAREN("(", 0),
|
| - RPAREN(")", 0),
|
| - LBRACK("[", 0),
|
| - RBRACK("]", 0),
|
| - LBRACE("{", 0),
|
| - RBRACE("}", 0),
|
| - COLON(":", 0),
|
| - SEMICOLON(";", 0),
|
| - PERIOD(".", 0),
|
| - CASCADE("..", 2),
|
| - ELLIPSIS("...", 0),
|
| - COMMA(",", 0),
|
| - CONDITIONAL("?", 3),
|
| - ARROW("=>", 0),
|
| -
|
| - /* Assignment operators. */
|
| - ASSIGN("=", 1),
|
| - ASSIGN_BIT_OR("|=", 1),
|
| - ASSIGN_BIT_XOR("^=", 1),
|
| - ASSIGN_BIT_AND("&=", 1),
|
| - ASSIGN_SHL("<<=", 1),
|
| - ASSIGN_SAR(">>=", 1),
|
| - ASSIGN_ADD("+=", 1),
|
| - ASSIGN_SUB("-=", 1),
|
| - ASSIGN_MUL("*=", 1),
|
| - ASSIGN_DIV("/=", 1),
|
| - ASSIGN_MOD("%=", 1),
|
| - ASSIGN_TRUNC("~/=", 1),
|
| -
|
| - /* Binary operators sorted by precedence. */
|
| - OR("||", 4),
|
| - AND("&&", 5),
|
| - BIT_OR("|", 6),
|
| - BIT_XOR("^", 7),
|
| - BIT_AND("&", 8),
|
| - SHL("<<", 11),
|
| - SAR(">>", 11),
|
| - ADD("+", 12),
|
| - SUB("-", 12),
|
| - MUL("*", 13),
|
| - DIV("/", 13),
|
| - TRUNC("~/", 13),
|
| - MOD("%", 13),
|
| -
|
| - /* Compare operators sorted by precedence. */
|
| - EQ("==", 9),
|
| - NE("!=", 9),
|
| - EQ_STRICT("===", 9),
|
| - NE_STRICT("!==", 9),
|
| - LT("<", 10),
|
| - GT(">", 10),
|
| - LTE("<=", 10),
|
| - GTE(">=", 10),
|
| - AS("as", 10),
|
| - IS("is", 10),
|
| -
|
| - /* Unary operators. */
|
| - NOT("!", 0),
|
| - BIT_NOT("~", 0),
|
| -
|
| - /* Count operators (also unary). */
|
| - INC("++", 0),
|
| - DEC("--", 0),
|
| -
|
| - /* [] operator overloading. */
|
| - INDEX("[]", 0),
|
| - ASSIGN_INDEX("[]=", 0),
|
| -
|
| - /* Keywords. */
|
| - ASSERT("assert", 0),
|
| - BREAK("break", 0),
|
| - CASE("case", 0),
|
| - CATCH("catch", 0),
|
| - CLASS("class",0),
|
| - CONST("const", 0),
|
| - CONTINUE("continue", 0),
|
| - DEFAULT("default", 0),
|
| - DO("do", 0),
|
| - ELSE("else", 0),
|
| - EXTENDS("extends", 0),
|
| - FINAL("final", 0),
|
| - FINALLY("finally", 0),
|
| - FOR("for", 0),
|
| - IF("if", 0),
|
| - IN("in", 0),
|
| - NEW("new", 0),
|
| - RETHROW("rethrow", 0),
|
| - RETURN("return", 0),
|
| - SUPER("super", 0),
|
| - SWITCH("switch", 0),
|
| - THIS("this", 0),
|
| - THROW("throw", 0),
|
| - TRY("try", 0),
|
| - VAR("var", 0),
|
| - VOID("void", 0),
|
| - WHILE("while", 0),
|
| - WITH("with", 0),
|
| -
|
| - /* Literals. */
|
| - NULL_LITERAL("null", 0),
|
| - TRUE_LITERAL("true", 0),
|
| - FALSE_LITERAL("false", 0),
|
| - HEX_LITERAL(null, 0),
|
| - INTEGER_LITERAL(null, 0),
|
| - DOUBLE_LITERAL(null, 0),
|
| - STRING(null, 0),
|
| -
|
| - /** String interpolation and string templates. */
|
| - STRING_SEGMENT(null, 0),
|
| - STRING_LAST_SEGMENT(null, 0),
|
| - // STRING_EMBED_EXP_START does not have a unique string representation in the code:
|
| - // "$id" yields the token STRING_EMBED_EXP_START after the '$', and similarly
|
| - // "${id}" yield the same token for '${'.
|
| - STRING_EMBED_EXP_START(null, 0),
|
| - STRING_EMBED_EXP_END(null, 0),
|
| -
|
| - // Note: STRING_EMBED_EXP_END uses the same symbol as RBRACE, but it is
|
| - // recognized by the scanner when closing embedded expressions in string
|
| - // interpolation and string templates.
|
| -
|
| - /* Directives */
|
| - LIBRARY("#library", 0),
|
| - IMPORT("#import", 0),
|
| - SOURCE("#source", 0),
|
| - RESOURCE("#resource", 0),
|
| - NATIVE("#native", 0),
|
| -
|
| - /* Identifiers (not keywords). */
|
| - IDENTIFIER(null, 0),
|
| - WHITESPACE(null, 0),
|
| -
|
| - /* Pseudo tokens. */
|
| - // If you add another pseudo token, don't forget to update the predicate below.
|
| - ILLEGAL(null, 0),
|
| - COMMENT(null, 0),
|
| -
|
| - /**
|
| - * Non-token to be used by tools where a value outside the range of anything
|
| - * returned by the scanner is needed. This is the equivalent of -1 in a C
|
| - * tokenizer.
|
| - *
|
| - * This token is never returned by the scanner. It must have an ordinal
|
| - * value outside the range of all tokens returned by the scanner.
|
| - */
|
| - NON_TOKEN(null, 0);
|
| -
|
| - private static Map<String, Token> tokens = new HashMap<String, Token>();
|
| -
|
| - static {
|
| - for (Token tok : Token.values()) {
|
| - if (tok.syntax_ != null) {
|
| - tokens.put(tok.syntax_, tok);
|
| - }
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * Given a string finds the corresponding token. Pseudo tokens (EOS, ILLEGAL and COMMENT) are
|
| - * ignored.
|
| - */
|
| - public static Token lookup(String syntax) {
|
| - Token token = tokens.get(syntax);
|
| - if ("as".equals(syntax)) {
|
| - return IDENTIFIER;
|
| - }
|
| - if (token == null) {
|
| - return IDENTIFIER;
|
| - }
|
| - return token;
|
| - }
|
| -
|
| - private final String syntax_;
|
| - private final int precedence_;
|
| -
|
| - /**
|
| - * The <CODE>syntax</CODE> parameter serves two purposes: 1. map tokens that
|
| - * look like identifiers ("null", "true", etc.) to their correct token.
|
| - * 2. Find the string-representation of operators.</BR>
|
| - * When it is <CODE>null</CODE> then the token either doesn't have a unique
|
| - * representation, or it is a pseudo token (which doesn't physically appear
|
| - * in the source).
|
| - */
|
| - Token(String syntax, int precedence) {
|
| - syntax_ = syntax;
|
| - precedence_ = precedence;
|
| - }
|
| -
|
| - public Token asBinaryOperator() {
|
| - int ordinal = ordinal() - ASSIGN_BIT_OR.ordinal() + BIT_OR.ordinal();
|
| - return values()[ordinal];
|
| - }
|
| -
|
| - public int getPrecedence() {
|
| - return precedence_;
|
| - }
|
| -
|
| - public String getSyntax() {
|
| - return syntax_;
|
| - }
|
| -
|
| - public boolean isEqualityOperator() {
|
| - int ordinal = ordinal();
|
| - return EQ.ordinal() <= ordinal && ordinal <= NE_STRICT.ordinal();
|
| - }
|
| -
|
| - public boolean isRelationalOperator() {
|
| - int ordinal = ordinal();
|
| - return LT.ordinal() <= ordinal && ordinal <= GTE.ordinal();
|
| - }
|
| -
|
| - public boolean isAssignmentOperator() {
|
| - int ordinal = ordinal();
|
| - return ASSIGN.ordinal() <= ordinal && ordinal <= ASSIGN_TRUNC.ordinal();
|
| - }
|
| -
|
| - public boolean isBinaryOperator() {
|
| - int ordinal = ordinal();
|
| - return (ASSIGN.ordinal() <= ordinal && ordinal <= IS.ordinal())
|
| - || (ordinal == COMMA.ordinal());
|
| - }
|
| -
|
| - public boolean isCountOperator() {
|
| - int ordinal = ordinal();
|
| - return INC.ordinal() <= ordinal && ordinal <= DEC.ordinal();
|
| - }
|
| -
|
| - public boolean isUnaryOperator() {
|
| - int ordinal = ordinal();
|
| - return NOT.ordinal() <= ordinal && ordinal <= DEC.ordinal();
|
| - }
|
| -
|
| - public boolean isUserDefinableOperator() {
|
| - int ordinal = ordinal();
|
| - return ((BIT_OR.ordinal() <= ordinal && ordinal <= GTE.ordinal())
|
| - || this == BIT_NOT || this == INDEX || this == ASSIGN_INDEX)
|
| - && this != NE && this != EQ_STRICT && this != NE_STRICT;
|
| - }
|
| -
|
| - @Override
|
| - public String toString() {
|
| - String result = getSyntax();
|
| - if (result == null) {
|
| - return name();
|
| - }
|
| - return result;
|
| - }
|
| -}
|
|
|