//*** Build With // java demeterf http.cd http.beh ./classes/ --dgp:PrintToString \ // && cp modified_parser.jj classes/theparser.jj \ // && javacc -OUTPUT_DIRECTORY=classes classes/theparser.jj package edu.neu.ccs.demeterf.http.classes; import edu.neu.ccs.demeterf.lib.*; import java.net.Socket; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.io.IOException; import java.io.BufferedReader; import java.io.PrintWriter; import java.io.InputStreamReader; import java.io.InputStream; //** HTTP stuff is all line based, so it gets a little hairy to parse. // HTTP Request. We use "ident" to eliminate the syntax, but the header // and bodies will be parsed separately. noparse HTTPReq = HTTPHead List(MsgHead) *r*l ident. // HTTP Response. Similar, but slightly different. noparse HTTPResp = HTTPVer *s int *s