/* Generated By: CSCC: 4.0 (07/17/2009) Do not edit this line. TheParser.cs */ namespace edu.neu.ccs.demeterf.http.classes{ using edu.neu.ccs.demeterf.lib; using System.Net.Sockets; using System.Text; using System.IO; using System; using Fields = edu.neu.ccs.demeterf.Fields; using ident = edu.neu.ccs.demeterf.lib.ident; using verbatim = edu.neu.ccs.demeterf.lib.verbatim; class TheParser : TheParserConstants { static char unescapeChar(String s){ s = s.Substring(1,s.Length-1); char c = s[0]; if (c == '\\'){ switch (s[1]) { case 'n': return '\n'; case 't': return '\t'; case 'b': return '\b'; case 'r': return '\r'; case 'f': return '\f'; case '\\': return '\\'; case '\'': return '\''; case '\"': return '\"'; default: return (char)(Convert.ToInt32(s.Substring(1, s.Length), 8)); } } return c; } public byte parse_byte() { int i; i = parse_int(); {if (true) return (byte)i;} throw new System.Exception("Missing return statement in function"); } public Byte parse_Byte() { byte b; b = parse_byte(); {if (true) return b;} throw new System.Exception("Missing return statement in function"); } public short parse_short() { Token t; t = jj_consume_token(INT); {if (true) return Int16.Parse(t.image);} throw new System.Exception("Missing return statement in function"); } public Int16 parse_Int16() { short i; i = parse_short(); {if (true) return i;} throw new System.Exception("Missing return statement in function"); } public int parse_int() { Token t; t = jj_consume_token(INT); {if (true) return Int32.Parse(t.image);} throw new System.Exception("Missing return statement in function"); } public Int32 parse_Int32() { int i; i = parse_int(); {if (true) return i;} throw new System.Exception("Missing return statement in function"); } public long parse_long() { Token t; t = jj_consume_token(INT); {if (true) return Int64.Parse(t.image);} throw new System.Exception("Missing return statement in function"); } public Int64 parse_Int64() { long l; l = parse_long(); {if (true) return l;} throw new System.Exception("Missing return statement in function"); } public double parse_double() { Token t; t = jj_consume_token(DOUBLE); {if (true) return Double.Parse(t.image);} throw new System.Exception("Missing return statement in function"); } public Double parse_Double() { double d; d = parse_double(); {if (true) return d;} throw new System.Exception("Missing return statement in function"); } public float parse_float() { Token t; t = jj_consume_token(DOUBLE); {if (true) return Single.Parse(t.image);} throw new System.Exception("Missing return statement in function"); } public Single parse_Single() { Single s; s = parse_float(); {if (true) return s;} throw new System.Exception("Missing return statement in function"); } public String parse_string() { Token t; t = jj_consume_token(STRING); {if (true) return t.image.Substring(1,t.image.Length-2);} throw new System.Exception("Missing return statement in function"); } public String parse_String() { string s; s = parse_string(); {if (true) return s;} throw new System.Exception("Missing return statement in function"); } public bool parse_bool() { Token t; switch ((jj_ntk==-1)?jj_init_ntk():jj_ntk) { case TRUE: t = jj_consume_token(TRUE); {if (true) return true;} break; case FALSE: t = jj_consume_token(FALSE); {if (true) return false;} break; default: jj_la1[0] = jj_gen; jj_consume_token(-1); throw new ParseException(); } throw new System.Exception("Missing return statement in function"); } public Boolean parse_Boolean() { bool b; b = parse_bool(); {if (true) return b;} throw new System.Exception("Missing return statement in function"); } public char parse_char() { Token t; t = jj_consume_token(CHAR); {if (true) return unescapeChar(t.image);} throw new System.Exception("Missing return statement in function"); } public Char parse_Char() { char c; c = parse_char(); {if (true) return c;} throw new System.Exception("Missing return statement in function"); } public ident parse_ident() { Token t; t = jj_consume_token(IDENT); {if (true) return new ident(t.image);} throw new System.Exception("Missing return statement in function"); } public verbatim parse_verbatim() { Token t; t = jj_consume_token(TEXT); {if (true) return new verbatim(t.image.Substring(2,t.image.Length-2));} throw new System.Exception("Missing return statement in function"); } public HTTPHead parse_HTTPHead() { HTTPHead sup = null; switch ((jj_ntk==-1)?jj_init_ntk():jj_ntk) { case 1: sup = parse_GetReq(); {if (true) return sup;} break; case 3: sup = parse_PostReq(); {if (true) return sup;} break; case 2: sup = parse_HeadReq(); {if (true) return sup;} break; case 4: sup = parse_PutReq(); {if (true) return sup;} break; case 5: sup = parse_DeleteReq(); {if (true) return sup;} break; case 6: sup = parse_TraceReq(); {if (true) return sup;} break; case 7: sup = parse_ConnectReq(); {if (true) return sup;} break; case 8: sup = parse_OptionsReq(); {if (true) return sup;} break; default: jj_la1[1] = jj_gen; jj_consume_token(-1); throw new ParseException(); } throw new System.Exception("Missing return statement in function"); } public GetReq parse_GetReq() { URL url; HTTPVer ver; jj_consume_token(1); url = parse_URL(); ver = parse_HTTPVer(); {if (true) return new GetReq(url,ver);} throw new System.Exception("Missing return statement in function"); } public HeadReq parse_HeadReq() { URL url; HTTPVer ver; jj_consume_token(2); url = parse_URL(); ver = parse_HTTPVer(); {if (true) return new HeadReq(url,ver);} throw new System.Exception("Missing return statement in function"); } public PostReq parse_PostReq() { URL url; HTTPVer ver; jj_consume_token(3); url = parse_URL(); ver = parse_HTTPVer(); {if (true) return new PostReq(url,ver);} throw new System.Exception("Missing return statement in function"); } public PutReq parse_PutReq() { URL url; HTTPVer ver; jj_consume_token(4); url = parse_URL(); ver = parse_HTTPVer(); {if (true) return new PutReq(url,ver);} throw new System.Exception("Missing return statement in function"); } public DeleteReq parse_DeleteReq() { URL url; HTTPVer ver; jj_consume_token(5); url = parse_URL(); ver = parse_HTTPVer(); {if (true) return new DeleteReq(url,ver);} throw new System.Exception("Missing return statement in function"); } public TraceReq parse_TraceReq() { URL url; HTTPVer ver; jj_consume_token(6); url = parse_URL(); ver = parse_HTTPVer(); {if (true) return new TraceReq(url,ver);} throw new System.Exception("Missing return statement in function"); } public ConnectReq parse_ConnectReq() { URL url; HTTPVer ver; jj_consume_token(7); url = parse_URL(); ver = parse_HTTPVer(); {if (true) return new ConnectReq(url,ver);} throw new System.Exception("Missing return statement in function"); } public OptionsReq parse_OptionsReq() { URL url; HTTPVer ver; jj_consume_token(8); url = parse_URL(); ver = parse_HTTPVer(); {if (true) return new OptionsReq(url,ver);} throw new System.Exception("Missing return statement in function"); } public URL parse_URL() { URL sup = null; switch ((jj_ntk==-1)?jj_init_ntk():jj_ntk) { case 9: sup = parse_BaseURL(); {if (true) return sup;} break; case IDENT: sup = parse_MidURL(); {if (true) return sup;} break; default: jj_la1[2] = jj_gen; sup = parse_NoURL(); {if (true) return sup;} } throw new System.Exception("Missing return statement in function"); } public BaseURL parse_BaseURL() { URL rest; jj_consume_token(9); rest = parse_URL(); {if (true) return new BaseURL(rest);} throw new System.Exception("Missing return statement in function"); } public MidURL parse_MidURL() { ident id; URL rest; id = parse_ident(); rest = parse_URL(); {if (true) return new MidURL(id,rest);} throw new System.Exception("Missing return statement in function"); } public NoURL parse_NoURL() { {if (true) return new NoURL();} throw new System.Exception("Missing return statement in function"); } public HTTPVer parse_HTTPVer() { double ver; jj_consume_token(10); ver = parse_double(); {if (true) return new HTTPVer(ver);} throw new System.Exception("Missing return statement in function"); } public MsgHead parse_MsgHead() { ident key; ident value; key = parse_ident(); jj_consume_token(11); value = parse_ident(); {if (true) return new MsgHead(key,value);} throw new System.Exception("Missing return statement in function"); } public TheParserTokenManager token_source; SimpleCharStream jj_input_stream; public Token token, jj_nt; private long jj_ntk; private long jj_gen; private long[] jj_la1 = new long[3]; static private long[] jj_la1_0; static TheParser(){ jj_la1_init_0(); } private static void jj_la1_init_0() { jj_la1_0 = new long[] {0x180000,0x1fe,0x8000200,}; } public TheParser(System.IO.Stream stream) { jj_input_stream = new SimpleCharStream(stream, 1, 1); token_source = new TheParserTokenManager(jj_input_stream); token = new Token(); jj_ntk = -1; jj_gen = 0; for (int i = 0; i < 3; i++) jj_la1[i] = -1; } public void ReInit(System.IO.Stream stream) { jj_input_stream.ReInit(stream, 1, 1); token_source.ReInit(jj_input_stream); token = new Token(); jj_ntk = -1; jj_gen = 0; for (int i = 0; i < 3; i++) jj_la1[i] = -1; } public TheParser(System.IO.TextReader stream) { jj_input_stream = new SimpleCharStream(stream, 1, 1); token_source = new TheParserTokenManager(jj_input_stream); token = new Token(); jj_ntk = -1; jj_gen = 0; for (int i = 0; i < 3; i++) jj_la1[i] = -1; } public void ReInit(System.IO.TextReader stream) { jj_input_stream.ReInit(stream, 1, 1); token_source.ReInit(jj_input_stream); token = new Token(); jj_ntk = -1; jj_gen = 0; for (int i = 0; i < 3; i++) jj_la1[i] = -1; } public TheParser(TheParserTokenManager tm) { token_source = tm; token = new Token(); jj_ntk = -1; jj_gen = 0; for (int i = 0; i < 3; i++) jj_la1[i] = -1; } public void ReInit(TheParserTokenManager tm) { token_source = tm; token = new Token(); jj_ntk = -1; jj_gen = 0; for (int i = 0; i < 3; i++) jj_la1[i] = -1; } private Token jj_consume_token(int kind){ Token oldToken; if ((oldToken = token).next != null) token = token.next; else token = token.next = token_source.getNextToken(); jj_ntk = -1; if (token.kind == kind) { jj_gen++; return token; } token = oldToken; jj_kind = kind; throw generateParseException(); } public Token getNextToken() { if (token.next != null) token = token.next; else token = token.next = token_source.getNextToken(); jj_ntk = -1; jj_gen++; return token; } public Token getToken(int index) { Token t = token; for (int i = 0; i < index; i++) { if (t.next != null) t = t.next; else t = t.next = token_source.getNextToken(); } return t; } private long jj_init_ntk() { if ((jj_nt=token.next) == null) return (jj_ntk = (token.next=token_source.getNextToken()).kind); else return (jj_ntk = jj_nt.kind); } private System.Collections.Generic.List jj_expentries = new System.Collections.Generic.List(); private long[] jj_expentry; private long jj_kind = -1; public ParseException generateParseException() { jj_expentries.Clear(); bool[] la1tokens = new bool[28]; for (int i = 0; i < 28; i++) { la1tokens[i] = false; } if (jj_kind >= 0) { la1tokens[jj_kind] = true; jj_kind = -1; } for (int i = 0; i < 3; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1<