diff options
author | Shevek <[email protected]> | 2013-12-27 05:49:13 -0800 |
---|---|---|
committer | Shevek <[email protected]> | 2013-12-27 05:49:13 -0800 |
commit | bdc6c852f418c3e042aa41469d84544e5f60a526 (patch) | |
tree | 7866346f0fa48ad46a6a427d016dd4b83451dbbe /src/java/org/anarres/cpp/Token.java | |
parent | 39264fd6d2a6646e49f83b5b2b3512c1663a1c9b (diff) |
Version bump to 1.4.0-SNAPSHOT.
Rewrite build system to use gradle.
Clean up source for the new generation.
Diffstat (limited to 'src/java/org/anarres/cpp/Token.java')
-rw-r--r-- | src/java/org/anarres/cpp/Token.java | 213 |
1 files changed, 0 insertions, 213 deletions
diff --git a/src/java/org/anarres/cpp/Token.java b/src/java/org/anarres/cpp/Token.java deleted file mode 100644 index a2cac39..0000000 --- a/src/java/org/anarres/cpp/Token.java +++ /dev/null @@ -1,213 +0,0 @@ -/* - * Anarres C Preprocessor - * Copyright (c) 2007-2008, Shevek - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -package org.anarres.cpp; - -/** - * A Preprocessor token. - * - * @see Preprocessor - */ -public final class Token { - - // public static final int EOF = -1; - - private int type; - private int line; - private int column; - private Object value; - private String text; - - public Token(int type, int line, int column, - String text, Object value) { - this.type = type; - this.line = line; - this.column = column; - this.text = text; - this.value = value; - } - - public Token(int type, int line, int column, String text) { - this(type, line, column, text, null); - } - - /* pp */ Token(int type, String text, Object value) { - this(type, -1, -1, text, value); - } - - /* pp */ Token(int type, String text) { - this(type, text, null); - } - - /* pp */ Token(int type) { - this(type, type < _TOKENS ? texts[type] : "TOK" + type); - } - - /** - * Returns the semantic type of this token. - */ - public int getType() { - return type; - } - - /* pp */ void setLocation(int line, int column) { - this.line = line; - this.column = column; - } - - /** - * Returns the line at which this token started. - * - * Lines are numbered from zero. - */ - public int getLine() { - return line; - } - - /** - * Returns the column at which this token started. - * - * Columns are numbered from zero. - */ - public int getColumn() { - return column; - } - - /** - * Returns the original or generated text of this token. - * - * This is distinct from the semantic value of the token. - * - * @see #getValue() - */ - public String getText() { - return text; - } - - /** - * Returns the semantic value of this token. - * - * For strings, this is the parsed String. - * For integers, this is an Integer object. - * For other token types, as appropriate. - * - * @see #getText() - */ - public Object getValue() { - return value; - } - - /** - * Returns a description of this token, for debugging purposes. - */ - public String toString() { - StringBuilder buf = new StringBuilder(); - - buf.append('[').append(getTokenName(type)); - if (line != -1) { - buf.append('@').append(line); - if (column != -1) - buf.append(',').append(column); - } - buf.append("]:"); - if (text != null) - buf.append('"').append(text).append('"'); - else if (type > 3 && type < 256) - buf.append( (char)type ); - else - buf.append('<').append(type).append('>'); - if (value != null) - buf.append('=').append(value); - return buf.toString(); - } - - /** - * Returns the descriptive name of the given token type. - * - * This is mostly used for stringification and debugging. - */ - public static final String getTokenName(int type) { - if (type < 0) - return "Invalid" + type; - if (type >= names.length) - return "Invalid" + type; - if (names[type] == null) - return "Unknown" + type; - return names[type]; - } - -#set ($i = 257) -#set ($tokens = [ "AND_EQ", "ARROW", "CHARACTER", "CCOMMENT", "CPPCOMMENT", "DEC", "DIV_EQ", "ELLIPSIS", "EOF", "EQ", "GE", "HASH", "HEADER", "IDENTIFIER", "INC", "NUMBER", "LAND", "LAND_EQ", "LE", "LITERAL", "LOR", "LOR_EQ", "LSH", "LSH_EQ", "MOD_EQ", "MULT_EQ", "NE", "NL", "OR_EQ", "PASTE", "PLUS_EQ", "RANGE", "RSH", "RSH_EQ", "SQSTRING", "STRING", "SUB_EQ", "WHITESPACE", "XOR_EQ", "M_ARG", "M_PASTE", "M_STRING", "P_LINE", "INVALID" ]) -#foreach ($token in $tokens) - /** The token type $token. */ - public static final int $token = $i; -#set ($i = $i + 1) -#end - /** - * The number of possible semantic token types. - * - * Please note that not all token types below 255 are used. - */ - public static final int _TOKENS = $i; - - /** The position-less space token. */ - /* pp */ static final Token space = new Token(WHITESPACE, -1, -1, " "); - - private static final String[] names = new String[_TOKENS]; - private static final String[] texts = new String[_TOKENS]; - static { - for (int i = 0; i < 255; i++) { - texts[i] = String.valueOf(new char[] { (char)i }); - names[i] = texts[i]; - } - - texts[AND_EQ] = "&="; - texts[ARROW] = "->"; - texts[DEC] = "--"; - texts[DIV_EQ] = "/="; - texts[ELLIPSIS] = "..."; - texts[EQ] = "=="; - texts[GE] = ">="; - texts[HASH] = "#"; - texts[INC] = "++"; - texts[LAND] = "&&"; - texts[LAND_EQ] = "&&="; - texts[LE] = "<="; - texts[LOR] = "||"; - texts[LOR_EQ] = "||="; - texts[LSH] = "<<"; - texts[LSH_EQ] = "<<="; - texts[MOD_EQ] = "%="; - texts[MULT_EQ] = "*="; - texts[NE] = "!="; - texts[NL] = "\n"; - texts[OR_EQ] = "|="; - /* We have to split the two hashes or Velocity eats them. */ - texts[PASTE] = "#" + "#"; - texts[PLUS_EQ] = "+="; - texts[RANGE] = ".."; - texts[RSH] = ">>"; - texts[RSH_EQ] = ">>="; - texts[SUB_EQ] = "-="; - texts[XOR_EQ] = "^="; - -#foreach ($token in $tokens) - names[$token] = "$token"; -#end - } - -} |