1 package ro.infoiasi.donald.compiler.parser; 2 3 import ro.infoiasi.donald.compiler.cfg.*; 4 5 public class Token { 6 public static final int UNKNOWN_LINE = -1; 7 public static final int UNKNOWN_COLUMN = -1; 8 public static final int UNKNOWN_NCHAR = -1; 9 public static final int UNKNOWN_LENGTH = -1; 10 11 public Token(Terminal a, int line, int column, int nchar, int length, Object value) { 12 this.a = a; 13 this.line = line; 14 this.column = column; 15 this.nchar = nchar; 16 this.length = length; 17 this.value = value; 18 } 19 20 public Token(Terminal a, int line, int column, int nchar, int length) { 21 this(a, line, column, nchar, length, null); 22 } 23 24 public Token(Terminal a, int line, int column) { 25 this(a, line, column, UNKNOWN_NCHAR, UNKNOWN_LENGTH); 26 } 27 28 public Token(Terminal a) { 29 this(a, UNKNOWN_LINE, UNKNOWN_COLUMN, UNKNOWN_NCHAR, UNKNOWN_LENGTH); 30 } 31 32 public Terminal getSymbol() { 33 return a; 34 } 35 36 public int getLine() { 37 return line; 38 } 39 40 public int getColumn() { 41 return column; 42 } 43 44 public int getCharNumber() { 45 return nchar; 46 } 47 48 public int getLength() { 49 return length; 50 } 51 52 public Object getValue() { 53 return value; 54 } 55 56 public void setSymbol(Terminal a) { 57 this.a = a; 58 } 59 60 public void setLine(int line) { 61 this.line = line; 62 } 63 64 public void setColumn(int column) { 65 this.column = column; 66 } 67 68 public void setCharNumber(int nchar) { 69 this.nchar = nchar; 70 } 71 72 public void setLength(int length) { 73 this.length = length; 74 } 75 76 public void setValue(Object value) { 77 this.value = value; 78 } 79 80 public String toString() { 81 StringBuffer sb = new StringBuffer (a.toString()); 82 if (line != UNKNOWN_LINE) { 83 sb.append("[line="+line+"]"); 84 } 85 if (column != UNKNOWN_COLUMN) { 86 sb.append("[column="+column+"]"); 87 } 88 if (nchar != UNKNOWN_NCHAR) { 89 sb.append("[nchar="+nchar+"]"); 90 } 91 if (length != UNKNOWN_LENGTH) { 92 sb.append("[length="+length+"]"); 93 } 94 if (value != null) { 95 sb.append("[value="+value+"]"); 96 } 97 return sb.toString(); 98 } 99 100 private Terminal a; 101 private int line, column, nchar, length; 102 private Object value; 103 } 104 | Popular Tags |