1 // Copyright 2006-2007 all rights reserved; see LICENSE file for BSD-style license
3 package edu.berkeley.sbp.misc;
4 import edu.berkeley.sbp.util.*;
5 import edu.berkeley.sbp.*;
6 import edu.berkeley.sbp.chr.*;
9 //import javax.servlet.*;
10 //import javax.servlet.http.*;
14 public class ParserServlet /*extends HttpServlet*/ {
16 public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException {
19 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);