1 package edu.berkeley.fleet;
3 import edu.berkeley.sbp.*;
4 import edu.berkeley.sbp.chr.*;
5 import edu.berkeley.sbp.misc.*;
6 import edu.berkeley.sbp.meta.*;
7 import edu.berkeley.sbp.bind.*;
8 import edu.berkeley.sbp.util.*;
12 public class FleetParser {
14 public static void main(String[] s) throws Exception {
15 go(new InputStreamReader(System.in));
18 public static void go(Reader r) throws Exception {
19 InputStream grammarStream =
20 FleetParser.class.getClassLoader().getResourceAsStream("fleet.g");
22 Parser metaGrammarParser = new CharParser(MetaGrammar.newInstance());
23 Tree<String> parsedGrammar = metaGrammarParser.parse(new CharInput(grammarStream)).expand1();
24 Grammar.Bindings gbr = new AnnotationGrammarBindings(Program.class);
25 Union mathGrammar = Grammar.create(parsedGrammar, "s", gbr);
26 Parser mathParser = new CharParser(mathGrammar);
28 Log.println("about to parse: tests/test.fleet");
29 Tree tree = mathParser.parse(new CharInput(r)).expand1();
31 // below is ugly voodoo which will go away very soon. ignore it.
32 TreeFunctor tf = (TreeFunctor)tree.head();
33 Program program = (Program)tf.invoke(tree);
34 // above is ugly voodoo which will go away very soon. ignore it.
37 Log.println("dispatching root codebag:");
38 Log.println(program.root);
40 Fleet fleet = new Fleet();
41 program.configure(fleet);
43 Log.println("memory before execution:");
47 Log.println("enabling execution...");
49 Log.println("execution halted.");
52 Log.println("memory after execution:");