44b3f840980a1258a37be59f32e96127dadafbfb
[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         /*
23         try {
24         try {
25             System.out.println("a");
26            
27             Tree<String> gram =
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);
33             
34             final GraphViz gv = new GraphViz();
35             out.toGraphViz(gv);
36
37             resp.setContentType("image/svg+xml");
38             final Process proc = Runtime.getRuntime().exec(new String[] { "dot", "-Tsvg" });
39             new Thread() {
40                 public void run() {
41                     try {
42                         PrintWriter pw = new PrintWriter(new OutputStreamWriter(proc.getOutputStream()));
43                         gv.dump(pw);
44                         pw.flush();
45                         pw.close();
46                     } catch (Exception e) {
47                         e.printStackTrace(); 
48                    }
49                 }
50             }.start();
51
52             byte[] buf = new byte[1024];
53             InputStream is = proc.getInputStream();
54             OutputStream os = resp.getOutputStream();
55
56             while(true) {
57                 int numread = is.read(buf, 0, buf.length);
58                 if (numread==-1) break;
59                 os.write(buf, 0, numread);
60             }
61             os.flush();
62             os.close();
63
64         } catch (ParseFailed e) {
65             e.printStackTrace();
66             resp.setContentType("text/plain");
67             PrintWriter pw = new PrintWriter(new OutputStreamWriter(resp.getOutputStream()));
68             pw.println(e);
69             pw.flush();
70             pw.close();
71         }
72         
73         } catch (Exception e) {
74             throw new ServletException(e);
75         }
76         */
77   //}
78
79 }