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 {
21 System.out.println("a");
24 new CharParser(MetaGrammar.make()).parse(new StringReader(req.getParameter("grammar").trim())).expand1();
25 System.out.println("b");
26 Union meta = MetaGrammar.make();
27 Forest<String> out = new CharParser(meta).parse(new StringReader(req.getParameter("input").trim()));
28 System.out.println(out);
30 final GraphViz gv = new GraphViz();
33 resp.setContentType("image/svg+xml");
34 final Process proc = Runtime.getRuntime().exec(new String[] { "dot", "-Tsvg" });
38 PrintWriter pw = new PrintWriter(new OutputStreamWriter(proc.getOutputStream()));
42 } catch (Exception e) {
48 byte[] buf = new byte[1024];
49 InputStream is = proc.getInputStream();
50 OutputStream os = resp.getOutputStream();
53 int numread = is.read(buf, 0, buf.length);
54 if (numread==-1) break;
55 os.write(buf, 0, numread);
60 } catch (ParseFailed e) {
62 resp.setContentType("text/plain");
63 PrintWriter pw = new PrintWriter(new OutputStreamWriter(resp.getOutputStream()));
69 } catch (Exception e) {
70 throw new ServletException(e);