1 // Copyright 2006 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.*;
15 public class ParserServlet /*extends HttpServlet*/ {
17 public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException {
20 public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException {
25 System.out.println("a");
28 new CharParser(MetaGrammar.make()).parse(new StringReader(req.getParameter("grammar").trim())).expand1();
29 System.out.println("b");
30 Union meta = MetaGrammar.make();
31 Forest<String> out = new CharParser(meta).parse(new StringReader(req.getParameter("input").trim()));
32 System.out.println(out);
34 final GraphViz gv = new GraphViz();
37 resp.setContentType("image/svg+xml");
38 final Process proc = Runtime.getRuntime().exec(new String[] { "dot", "-Tsvg" });
42 PrintWriter pw = new PrintWriter(new OutputStreamWriter(proc.getOutputStream()));
46 } catch (Exception e) {
52 byte[] buf = new byte[1024];
53 InputStream is = proc.getInputStream();
54 OutputStream os = resp.getOutputStream();
57 int numread = is.read(buf, 0, buf.length);
58 if (numread==-1) break;
59 os.write(buf, 0, numread);
64 } catch (ParseFailed e) {
66 resp.setContentType("text/plain");
67 PrintWriter pw = new PrintWriter(new OutputStreamWriter(resp.getOutputStream()));
73 } catch (Exception e) {
74 throw new ServletException(e);