summaryrefslogtreecommitdiffstats
path: root/src/java/org/anarres/cpp/Token.java
diff options
context:
space:
mode:
authorShevek <[email protected]>2013-12-27 05:49:13 -0800
committerShevek <[email protected]>2013-12-27 05:49:13 -0800
commitbdc6c852f418c3e042aa41469d84544e5f60a526 (patch)
tree7866346f0fa48ad46a6a427d016dd4b83451dbbe /src/java/org/anarres/cpp/Token.java
parent39264fd6d2a6646e49f83b5b2b3512c1663a1c9b (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.java213
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
- }
-
-}