1 45 46 package edu.rice.cs.util.sexp; 47 48 51 public interface Tokens { 52 53 57 class SExpToken { 58 protected String _rep; 59 60 61 public SExpToken(String rep) { _rep = rep; } 62 63 64 public String getText() { return _rep; } 65 66 public boolean equals(Object o) { 67 return (o!=null && o.getClass() == getClass() && ((SExpToken)o)._rep.equals(_rep)); 68 } 69 70 public int hashCode() { return _rep.hashCode(); } 71 72 public String toString() { return _rep; } 73 } 74 75 77 class LeftParenToken extends SExpToken { 78 public static final LeftParenToken ONLY = new LeftParenToken(); 79 private LeftParenToken(){ super("("); } 80 } 81 82 class RightParenToken extends SExpToken { 83 public static final RightParenToken ONLY = new RightParenToken(); 84 private RightParenToken(){ super(")"); } 85 } 86 87 class BackSlashToken extends SExpToken { 88 public static final BackSlashToken ONLY = new BackSlashToken(); 89 private BackSlashToken(){ super("\\"); } 90 } 91 92 94 95 class WordToken extends SExpToken { public WordToken(String word) { super(word); } } 96 97 100 class QuotedTextToken extends SExpToken { 101 public QuotedTextToken(String txt) { super(txt); } 103 public String getFullText() { return "\"" + _rep + "\""; } 104 } 105 106 110 class BooleanToken extends SExpToken { 111 public static final BooleanToken TRUE = new BooleanToken(true); 112 public static final BooleanToken FALSE = new BooleanToken(false); 113 114 private boolean _bool; 115 private BooleanToken(boolean bool){ 116 super(""+bool); 117 _bool = bool; 118 } 119 public boolean getValue() { return _bool; } 120 } 121 122 125 class NumberToken extends SExpToken { 126 private double _num; 127 public NumberToken(double num){ 128 super((num % 1 == 0) ? "" + (int)num : "" + num); 131 _num = num; 132 } 133 public double getValue() { return _num; } 134 } 135 136 } 137 | Popular Tags |