1 package edu.berkeley.sbp.misc;
2 import edu.berkeley.sbp.util.*;
3 import edu.berkeley.sbp.*;
4 import edu.berkeley.sbp.chr.*;
7 import javax.servlet.*;
8 import javax.servlet.http.*;
13 public class ParserServlet extends HttpServlet {
15 public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException {
18 public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException {
22 System.out.println("a");
25 new CharParser(MetaGrammar.make()).parse(new StringReader(req.getParameter("grammar").trim())).expand1();
26 System.out.println("b");
27 Union meta = MetaGrammar.make();
28 Forest<String> out = new CharParser(meta).parse(new StringReader(req.getParameter("input").trim()));
29 System.out.println(out);
31 final GraphViz gv = new GraphViz();
34 resp.setContentType("image/svg+xml");
35 final Process proc = Runtime.getRuntime().exec(new String[] { "dot", "-Tsvg" });
39 PrintWriter pw = new PrintWriter(new OutputStreamWriter(proc.getOutputStream()));
43 } catch (Exception e) {
49 byte[] buf = new byte[1024];
50 InputStream is = proc.getInputStream();
51 OutputStream os = resp.getOutputStream();
54 int numread = is.read(buf, 0, buf.length);
55 if (numread==-1) break;
56 os.write(buf, 0, numread);
61 } catch (ParseFailed e) {
63 resp.setContentType("text/plain");
64 PrintWriter pw = new PrintWriter(new OutputStreamWriter(resp.getOutputStream()));
70 } catch (Exception e) {
71 throw new ServletException(e);