d2f7d39da4e12ece729f388947e5e81dffdd0f75
[sbp.git] / src / edu / berkeley / sbp / misc / ParserServlet.java
1 // Copyright 2006 all rights reserved; see LICENSE file for BSD-style license
2
3 package edu.berkeley.sbp.misc;
4 import edu.berkeley.sbp.util.*;
5 import edu.berkeley.sbp.*;
6 import edu.berkeley.sbp.chr.*;
7 import java.util.*;
8 import java.io.*;
9 import javax.servlet.*;
10 import javax.servlet.http.*;
11 import java.io.*;
12 import java.net.*;
13 import java.util.*;
14
15 public class ParserServlet extends HttpServlet {
16
17     public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException {
18         doPost(req, resp);
19     }
20     public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException {
21         /*
22         try {
23         try {
24             System.out.println("a");
25            
26             Tree<String> gram =
27                 new CharParser(MetaGrammar.make()).parse(new StringReader(req.getParameter("grammar").trim())).expand1();
28             System.out.println("b");
29             Union meta = MetaGrammar.make();
30             Forest<String> out = new CharParser(meta).parse(new StringReader(req.getParameter("input").trim()));
31             System.out.println(out);
32             
33             final GraphViz gv = new GraphViz();
34             out.toGraphViz(gv);
35
36             resp.setContentType("image/svg+xml");
37             final Process proc = Runtime.getRuntime().exec(new String[] { "dot", "-Tsvg" });
38             new Thread() {
39                 public void run() {
40                     try {
41                         PrintWriter pw = new PrintWriter(new OutputStreamWriter(proc.getOutputStream()));
42                         gv.dump(pw);
43                         pw.flush();
44                         pw.close();
45                     } catch (Exception e) {
46                         e.printStackTrace(); 
47                    }
48                 }
49             }.start();
50
51             byte[] buf = new byte[1024];
52             InputStream is = proc.getInputStream();
53             OutputStream os = resp.getOutputStream();
54
55             while(true) {
56                 int numread = is.read(buf, 0, buf.length);
57                 if (numread==-1) break;
58                 os.write(buf, 0, numread);
59             }
60             os.flush();
61             os.close();
62
63         } catch (ParseFailed e) {
64             e.printStackTrace();
65             resp.setContentType("text/plain");
66             PrintWriter pw = new PrintWriter(new OutputStreamWriter(resp.getOutputStream()));
67             pw.println(e);
68             pw.flush();
69             pw.close();
70         }
71         
72         } catch (Exception e) {
73             throw new ServletException(e);
74         }
75         */
76     }
77     */
78 }