/* Scanner.lex */
import java.util.Vector;


class Yylex {
	private final int YY_BUFFER_SIZE = 512;
	private final int YY_F = -1;
	private final int YY_NO_STATE = -1;
	private final int YY_NOT_ACCEPT = 0;
	private final int YY_START = 1;
	private final int YY_END = 2;
	private final int YY_NO_ANCHOR = 4;
	private final char YY_EOF = '\uFFFF';

/* parse_string_literal
 * This function takes a string and unbackslashifies it. */
private static String parse_string_literal(String s) {
  StringBuffer buf = new StringBuffer(s.length());
  int pos = 0, len = s.length(), bs;
  while (pos < len) {
	bs = s.indexOf('\\', pos);
	if (bs == -1) {
	  buf.append(s.substring(pos, len));
	  pos = len;
	} else {
	  buf.append(s.substring(pos, bs));
	  char c = s.charAt(bs+1);
	  switch (c) {
	  case '\'':
	  case '\"':
	  case '\\':
		buf.append(c);
		break;
	  case 'n':
		buf.append('\n');
		break;
	  }
	  pos = bs + 2;
	}
  }
  return buf.toString();
}
private java_cup.runtime.Symbol tok(int kind, Object value) {
  return new java_cup.runtime.Symbol(kind, yyline+1, yyline+1, value);
}
private ParseErrorStream error_stream;
private void err(int line, String msg) {
  error_stream.error(line, msg);
}
private void err(String msg) {
  err(yyline, msg);
}
Yylex(java.io.InputStream s, ParseErrorStream es) {
  this(s);
  error_stream = es;
}
	private java.io.BufferedReader yy_reader;
	private int yy_buffer_index;
	private int yy_buffer_read;
	private int yy_buffer_start;
	private int yy_buffer_end;
	private char yy_buffer[];
	private int yychar;
	private int yyline;
	private int yy_lexical_state;

	Yylex (java.io.Reader reader) {
		this ();
		if (null == reader) {
			throw (new Error("Error: Bad input stream initializer."));
		}
		yy_reader = new java.io.BufferedReader(reader);
	}

	Yylex (java.io.InputStream instream) {
		this ();
		if (null == instream) {
			throw (new Error("Error: Bad input stream initializer."));
		}
		yy_reader = new java.io.BufferedReader(new java.io.InputStreamReader(instream));
	}

	private Yylex () {
		yy_buffer = new char[YY_BUFFER_SIZE];
		yy_buffer_read = 0;
		yy_buffer_index = 0;
		yy_buffer_start = 0;
		yy_buffer_end = 0;
		yychar = 0;
		yyline = 0;
		yy_lexical_state = YYINITIAL;
	}

	private boolean yy_eof_done = false;
	private final int YYINITIAL = 0;
	private final int yy_state_dtrans[] = {
		0
	};
	private void yybegin (int state) {
		yy_lexical_state = state;
	}
	private char yy_advance ()
		throws java.io.IOException {
		int next_read;
		int i;
		int j;

		if (yy_buffer_index < yy_buffer_read) {
			return yy_buffer[yy_buffer_index++];
		}

		if (0 != yy_buffer_start) {
			i = yy_buffer_start;
			j = 0;
			while (i < yy_buffer_read) {
				yy_buffer[j] = yy_buffer[i];
				++i;
				++j;
			}
			yy_buffer_end = yy_buffer_end - yy_buffer_start;
			yy_buffer_start = 0;
			yy_buffer_read = j;
			yy_buffer_index = j;
			next_read = yy_reader.read(yy_buffer,
					yy_buffer_read,
					yy_buffer.length - yy_buffer_read);
			if (-1 == next_read) {
				return YY_EOF;
			}
			yy_buffer_read = yy_buffer_read + next_read;
		}

		while (yy_buffer_index >= yy_buffer_read) {
			if (yy_buffer_index >= yy_buffer.length) {
				yy_buffer = yy_double(yy_buffer);
			}
			next_read = yy_reader.read(yy_buffer,
					yy_buffer_read,
					yy_buffer.length - yy_buffer_read);
			if (-1 == next_read) {
				return YY_EOF;
			}
			yy_buffer_read = yy_buffer_read + next_read;
		}
		return yy_buffer[yy_buffer_index++];
	}
	private void yy_move_start () {
		if ((byte) '\n' == yy_buffer[yy_buffer_start]) {
			++yyline;
		}
		++yychar;
		++yy_buffer_start;
	}
	private void yy_pushback () {
		--yy_buffer_end;
	}
	private void yy_mark_start () {
		int i;
		for (i = yy_buffer_start; i < yy_buffer_index; ++i) {
			if ((byte) '\n' == yy_buffer[i]) {
				++yyline;
			}
		}
		yychar = yychar
			+ yy_buffer_index - yy_buffer_start;
		yy_buffer_start = yy_buffer_index;
	}
	private void yy_mark_end () {
		yy_buffer_end = yy_buffer_index;
	}
	private void yy_to_mark () {
		yy_buffer_index = yy_buffer_end;
	}
	private java.lang.String yytext () {
		return (new java.lang.String(yy_buffer,
			yy_buffer_start,
			yy_buffer_end - yy_buffer_start));
	}
	private int yylength () {
		return yy_buffer_end - yy_buffer_start;
	}
	private char[] yy_double (char buf[]) {
		int i;
		char newbuf[];
		newbuf = new char[2*buf.length];
		for (i = 0; i < buf.length; ++i) {
			newbuf[i] = buf[i];
		}
		return newbuf;
	}
	private final int YY_E_INTERNAL = 0;
	private final int YY_E_MATCH = 1;
	private java.lang.String yy_error_string[] = {
		"Error: Internal error.\n",
		"Error: Unmatched input.\n"
	};
	private void yy_error (int code,boolean fatal) {
		java.lang.System.out.print(yy_error_string[code]);
		java.lang.System.out.flush();
		if (fatal) {
			throw new Error("Fatal Error.\n");
		}
	}
private int [][] unpackFromString(int size1, int size2, String st)
    {
      int colonIndex = -1;
      String lengthString;
      int sequenceLength = 0;
      int sequenceInteger = 0;
      int commaIndex;
      String workString;
      int res[][] = new int[size1][size2];
      for (int i= 0; i < size1; i++)
	for (int j= 0; j < size2; j++)
	  {
	    if (sequenceLength == 0) 
	      {	
		commaIndex = st.indexOf(',');
		if (commaIndex == -1)
		  workString = st;
		else
		  workString = st.substring(0, commaIndex);
		st = st.substring(commaIndex+1);
		colonIndex = workString.indexOf(':');
		if (colonIndex == -1)
		  {
		    res[i][j] = Integer.parseInt(workString);
		  }
		else 
		  {
		    lengthString = workString.substring(colonIndex+1);  
		    sequenceLength = Integer.parseInt(lengthString);
		    workString = workString.substring(0,colonIndex);
		    sequenceInteger = Integer.parseInt(workString);
		    res[i][j] = sequenceInteger;
		    sequenceLength--;
		  }
	      }
	    else 
	      {
		res[i][j] = sequenceInteger;
		sequenceLength--;
	      }
	  }
      return res;
    }
	private int yy_acpt[] = {
		YY_NOT_ACCEPT,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NOT_ACCEPT,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NOT_ACCEPT,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NOT_ACCEPT,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NOT_ACCEPT,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NOT_ACCEPT,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NOT_ACCEPT,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR,
		YY_NO_ANCHOR
	};
	private int yy_cmap[] = {
		0, 0, 0, 0, 0, 0, 0, 0,
		0, 1, 2, 0, 1, 1, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0,
		1, 3, 4, 0, 0, 0, 5, 6,
		7, 8, 9, 10, 11, 12, 13, 14,
		15, 16, 16, 16, 16, 16, 16, 16,
		16, 16, 0, 17, 18, 19, 20, 0,
		0, 21, 22, 23, 24, 25, 26, 27,
		28, 29, 27, 27, 30, 27, 31, 32,
		27, 27, 33, 34, 35, 36, 37, 38,
		39, 27, 27, 40, 41, 42, 0, 27,
		0, 21, 22, 23, 24, 25, 26, 27,
		28, 29, 27, 27, 30, 27, 43, 32,
		27, 27, 33, 34, 35, 36, 37, 38,
		44, 27, 27, 45, 46, 47, 0, 0
		
	};
	private int yy_rmap[] = {
		0, 1, 1, 1, 1, 1, 1, 1,
		1, 1, 2, 1, 3, 4, 5, 6,
		1, 1, 1, 1, 1, 1, 1, 1,
		1, 1, 1, 1, 6, 1, 1, 1,
		7, 6, 6, 6, 6, 6, 6, 6,
		6, 6, 6, 6, 6, 6, 6, 8,
		9, 10, 11, 12, 8, 13, 14, 15,
		16, 17, 18, 19, 20, 21, 22, 7,
		23, 24, 25, 26, 27, 28, 29, 30,
		31, 32, 33, 34, 35, 36, 37, 38,
		39, 40, 41, 42, 43, 44, 45, 46,
		47, 48, 49, 50, 51, 52, 53, 54,
		55, 56, 57, 58, 59, 60, 61, 62,
		63, 64, 65, 66, 67, 68 
	};
	private int yy_nxt[][] = unpackFromString(69,48,
"1,2:2,48,52,55,58,3,4,5,6,7,8,9,61,10,49,11,12,13,14,15,109,98,15,88,99,15:2,50,15,75,15,105,15,89,15,90,100,15,16,1,17,75,15,18,64,19,-1:63,49:2,-1:27,63,-1:21,23,24,-1:47,25,-1:47,26,27,-1:42,15:2,-1:4,15:19,-1:3,15:2,-1:18,32:2,-1:4,32:6,-1:21,47:4,21,47,-1,47:34,51,47:6,-1:19,20,-1:43,49:2,-1:46,15:2,-1:4,15:5,28,15:4,53,15:8,-1:3,53,15,-1:7,47,-1,47,-1:34,47,-1,47,-1:19,15:2,-1:4,15:14,33,15:4,-1:3,15:2,-1:9,30,-1:46,22,-1:57,15:2,-1:4,15:17,34,15,-1:3,15:2,-1:7,54,-1,54,-1:34,54,-1,54,-1:4,54:4,-1,54,-1,54:34,57,54:6,-1:15,15:2,-1:4,15:4,35,15:14,-1:3,15:2,-1:3,60:2,31,60:45,-1:14,60,-1:48,15:2,-1:4,15:9,36,15:9,-1:3,15:2,-1:49,29,-1:16,15:2,-1:4,15:13,37,15:5,-1:3,15:2,-1:18,15:2,-1:4,15:4,38,15:14,-1:3,15:2,-1:18,15:2,-1:4,15:3,39,15:15,-1:3,15:2,-1:18,15:2,-1:4,15:13,40,15:5,-1:3,15:2,-1:18,15:2,-1:4,15:4,41,15:14,-1:3,15:2,-1:18,15:2,-1:4,15:4,42,15:14,-1:3,15:2,-1:18,15:2,-1:4,15:10,43,15:8,-1:3,43,15,-1:18,15:2,-1:4,15:10,44,15:8,-1:3,44,15,-1:18,15:2,-1:4,15:14,45,15:4,-1:3,15:2,-1:18,15:2,-1:4,15:13,46,15:5,-1:3,15:2,-1:18,15:2,-1:4,15:4,56,15:10,77,15:3,-1:3,15:2,-1:18,15:2,-1:4,15:13,59,15:5,-1:3,15:2,-1:18,15:2,-1:4,15:9,62,15:9,-1:3,15:2,-1:18,15:2,-1:4,15:8,65,15:10,-1:3,15:2,-1:18,15:2,-1:4,15:15,66,15:3,-1:3,15:2,-1:18,15:2,-1:4,15:8,67,15:10,-1:3,15:2,-1:18,15:2,-1:4,15:13,68,15:5,-1:3,15:2,-1:18,15:2,-1:4,15:13,69,15:5,-1:3,15:2,-1:18,15:2,-1:4,15:9,70,15:9,-1:3,15:2,-1:18,15:2,-1:4,15:12,71,15:6,-1:3,15:2,-1:18,15:2,-1:4,72,15:18,-1:3,15:2,-1:18,15:2,-1:4,15:15,73,15:3,-1:3,15:2,-1:18,15:2,-1:4,15:3,74,15:15,-1:3,15:2,-1:18,15:2,-1:4,15:9,76,15:8,108,-1:3,15,108,-1:18,15:2,-1:4,15:7,78,15:4,79,15:6,-1:3,15:2,-1:18,15:2,-1:4,15:11,80,15:7,-1:3,15:2,-1:18,15:2,-1:4,81,15:18,-1:3,15:2,-1:18,15:2,-1:4,15:9,82,15:9,-1:3,15:2,-1:18,15:2,-1:4,15:8,83,15:10,-1:3,15:2,-1:18,15:2,-1:4,15:15,84,15:3,-1:3,15:2,-1:18,15:2,-1:4,15:4,85,15:14,-1:3,15:2,-1:18,15:2,-1:4,15:11,86,15:7,-1:3,15:2,-1:18,15:2,-1:4,15:10,87,15:8,-1:3,87,15,-1:18,15:2,-1:4,107,15:8,91,15:9,-1:3,15:2,-1:18,15:2,-1:4,92,15:18,-1:3,15:2,-1:18,15:2,-1:4,15:7,93,15:11,-1:3,15:2,-1:18,15:2,-1:4,15:14,94,15:4,-1:3,15:2,-1:18,15:2,-1:4,15:9,95,15:9,-1:3,15:2,-1:18,15:2,-1:4,15:9,96,15:9,-1:3,15:2,-1:18,15:2,-1:4,15:4,97,15:14,-1:3,15:2,-1:18,15:2,-1:4,15:4,101,15:14,-1:3,15:2,-1:18,15:2,-1:4,15:11,102,15:7,-1:3,15:2,-1:18,15:2,-1:4,15:9,103,15:9,-1:3,15:2,-1:18,15:2,-1:4,15:14,104,15:4,-1:3,15:2,-1:18,15:2,-1:4,15:11,106,15:7,-1:3,15:2,-1:3");
	public java_cup.runtime.Symbol nextToken ()
		throws java.io.IOException {
		char yy_lookahead;
		int yy_anchor = YY_NO_ANCHOR;
		int yy_state = yy_state_dtrans[yy_lexical_state];
		int yy_next_state = YY_NO_STATE;
		int yy_last_accept_state = YY_NO_STATE;
		boolean yy_initial = true;
		int yy_this_accept;

		yy_mark_start();
		yy_this_accept = yy_acpt[yy_state];
		if (YY_NOT_ACCEPT != yy_this_accept) {
			yy_last_accept_state = yy_state;
			yy_mark_end();
		}
		while (true) {
			yy_lookahead = yy_advance();
			yy_next_state = YY_F;
			if (YY_EOF != yy_lookahead) {
				yy_next_state = yy_nxt[yy_rmap[yy_state]][yy_cmap[yy_lookahead]];
			}
			if (YY_F != yy_next_state) {
				yy_state = yy_next_state;
				yy_initial = false;
				yy_this_accept = yy_acpt[yy_state];
				if (YY_NOT_ACCEPT != yy_this_accept) {
					yy_last_accept_state = yy_state;
					yy_mark_end();
				}
			}
			else {
				if (YY_EOF == yy_lookahead && true == yy_initial) {

  { return tok(Sym.EOF, null); }
				}
				else if (YY_NO_STATE == yy_last_accept_state) {
					throw (new Error("Lexical Error: Unmatched Input."));
				}
				else {
					yy_to_mark();
					yy_anchor = yy_acpt[yy_last_accept_state];
					if (0 != (YY_END & yy_anchor)) {
						yy_pushback();
					}
					if (0 != (YY_START & yy_anchor)) {
						yy_move_start();
					}
					switch (yy_last_accept_state) {
					case 1:
						{ err("Unexpected character \'"+yytext()+"\'."); }
					case -2:
						break;
					case 2:
						{ /* whitespace (space, tab, formfeed, CR, LF) */ }
					case -3:
						break;
					case 3:
						{ return tok(Sym.LPAREN, null); }
					case -4:
						break;
					case 4:
						{ return tok(Sym.RPAREN, null); }
					case -5:
						break;
					case 5:
						{ return tok(Sym.TIMES, null); }
					case -6:
						break;
					case 6:
						{ return tok(Sym.PLUS, null); }
					case -7:
						break;
					case 7:
						{ return tok(Sym.COMMA, null); }
					case -8:
						break;
					case 8:
						{ return tok(Sym.MINUS, null); }
					case -9:
						break;
					case 9:
						{ /* Dot isn't a valid operator under Decaf,
							     but is under Espresso, so we scan it. */
							  return tok(Sym.DOT, null); }
					case -10:
						break;
					case 10:
						{ return tok(Sym.INT_LITERAL,
							             Long.valueOf(yytext())); }
					case -11:
						break;
					case 11:
						{ return tok(Sym.SEMICOLON, null); }
					case -12:
						break;
					case 12:
						{ return tok(Sym.LT, null); }
					case -13:
						break;
					case 13:
						{ return tok(Sym.ASSIGN, null); }
					case -14:
						break;
					case 14:
						{ return tok(Sym.GT, null); }
					case -15:
						break;
					case 15:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -16:
						break;
					case 16:
						{ return tok(Sym.LBRACKET, null); }
					case -17:
						break;
					case 17:
						{ return tok(Sym.RBRACKET, null); }
					case -18:
						break;
					case 18:
						{ return tok(Sym.LBRACE, null); }
					case -19:
						break;
					case 19:
						{ return tok(Sym.RBRACE, null); }
					case -20:
						break;
					case 20:
						{ return tok(Sym.NE, null); }
					case -21:
						break;
					case 21:
						{ String text = yytext();
							  text = text.substring(1, text.length() - 1);
							  text = parse_string_literal(text);
							  return tok(Sym.STRING_LITERAL, text); }
					case -22:
						break;
					case 22:
						{ return tok(Sym.AND, null); }
					case -23:
						break;
					case 23:
						{ return tok(Sym.LSHIFT, null); }
					case -24:
						break;
					case 24:
						{ return tok(Sym.LE, null); }
					case -25:
						break;
					case 25:
						{ return tok(Sym.EQ, null); }
					case -26:
						break;
					case 26:
						{ return tok(Sym.GE, null); }
					case -27:
						break;
					case 27:
						{ return tok(Sym.RSHIFT, null); }
					case -28:
						break;
					case 28:
						{ return tok(Sym.IF,      yytext()); }
					case -29:
						break;
					case 29:
						{ return tok(Sym.OR, null); }
					case -30:
						break;
					case 30:
						{ String text = yytext();
							  text = text.substring(1, text.length() - 1);
							  text = parse_string_literal(text);
							  return tok(Sym.CHAR_LITERAL,
							             new Character(text.charAt(0))); }
					case -31:
						break;
					case 31:
						{ /* comment */ }
					case -32:
						break;
					case 32:
						{ return tok(Sym.INT_LITERAL,
							             Long.valueOf(yytext().substring(2),
							                          16)); }
					case -33:
						break;
					case 33:
						{ return tok(Sym.INT,     yytext()); }
					case -34:
						break;
					case 34:
						{ return tok(Sym.NEW,     yytext()); }
					case -35:
						break;
					case 35:
						{ return tok(Sym.ELSE,    yytext()); }
					case -36:
						break;
					case 36:
						{ return tok(Sym.NULL,    yytext()); }
					case -37:
						break;
					case 37:
						{ return tok(Sym.THIS,    yytext()); }
					case -38:
						break;
					case 38:
						{ return tok(Sym.TRUE,    yytext()); }
					case -39:
						break;
					case 39:
						{ return tok(Sym.VOID,    yytext()); }
					case -40:
						break;
					case 40:
						{ return tok(Sym.CLASS,   yytext()); }
					case -41:
						break;
					case 41:
						{ return tok(Sym.FALSE,   yytext()); }
					case -42:
						break;
					case 42:
						{ return tok(Sym.WHILE,   yytext()); }
					case -43:
						break;
					case 43:
						{ return tok(Sym.RETURN,  yytext()); }
					case -44:
						break;
					case 44:
						{ return tok(Sym.BOOLEAN, yytext()); }
					case -45:
						break;
					case 45:
						{ return tok(Sym.CALLOUT, yytext()); }
					case -46:
						break;
					case 46:
						{ return tok(Sym.EXTENDS, yytext()); }
					case -47:
						break;
					case 48:
						{ err("Unexpected character \'"+yytext()+"\'."); }
					case -48:
						break;
					case 49:
						{ return tok(Sym.INT_LITERAL,
							             Long.valueOf(yytext())); }
					case -49:
						break;
					case 50:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -50:
						break;
					case 52:
						{ err("Unexpected character \'"+yytext()+"\'."); }
					case -51:
						break;
					case 53:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -52:
						break;
					case 55:
						{ err("Unexpected character \'"+yytext()+"\'."); }
					case -53:
						break;
					case 56:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -54:
						break;
					case 58:
						{ err("Unexpected character \'"+yytext()+"\'."); }
					case -55:
						break;
					case 59:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -56:
						break;
					case 61:
						{ err("Unexpected character \'"+yytext()+"\'."); }
					case -57:
						break;
					case 62:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -58:
						break;
					case 64:
						{ err("Unexpected character \'"+yytext()+"\'."); }
					case -59:
						break;
					case 65:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -60:
						break;
					case 66:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -61:
						break;
					case 67:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -62:
						break;
					case 68:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -63:
						break;
					case 69:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -64:
						break;
					case 70:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -65:
						break;
					case 71:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -66:
						break;
					case 72:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -67:
						break;
					case 73:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -68:
						break;
					case 74:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -69:
						break;
					case 75:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -70:
						break;
					case 76:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -71:
						break;
					case 77:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -72:
						break;
					case 78:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -73:
						break;
					case 79:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -74:
						break;
					case 80:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -75:
						break;
					case 81:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -76:
						break;
					case 82:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -77:
						break;
					case 83:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -78:
						break;
					case 84:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -79:
						break;
					case 85:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -80:
						break;
					case 86:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -81:
						break;
					case 87:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -82:
						break;
					case 88:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -83:
						break;
					case 89:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -84:
						break;
					case 90:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -85:
						break;
					case 91:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -86:
						break;
					case 92:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -87:
						break;
					case 93:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -88:
						break;
					case 94:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -89:
						break;
					case 95:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -90:
						break;
					case 96:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -91:
						break;
					case 97:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -92:
						break;
					case 98:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -93:
						break;
					case 99:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -94:
						break;
					case 100:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -95:
						break;
					case 101:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -96:
						break;
					case 102:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -97:
						break;
					case 103:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -98:
						break;
					case 104:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -99:
						break;
					case 105:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -100:
						break;
					case 106:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -101:
						break;
					case 107:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -102:
						break;
					case 108:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -103:
						break;
					case 109:
						{ return tok(Sym.ID, yytext().toLowerCase()); }
					case -104:
						break;
					default:
						yy_error(YY_E_INTERNAL,false);
					case -1:
					}
					yy_initial = true;
					yy_state = yy_state_dtrans[yy_lexical_state];
					yy_next_state = YY_NO_STATE;
					yy_last_accept_state = YY_NO_STATE;
					yy_mark_start();
					yy_this_accept = yy_acpt[yy_state];
					if (YY_NOT_ACCEPT != yy_this_accept) {
						yy_last_accept_state = yy_state;
					}
				}
			}
		}
	}
}
