//*** 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