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 {
16 InputStream grammarStream =
17 FleetParser.class.getClassLoader().getResourceAsStream("fleet.g");
19 Parser metaGrammarParser = new CharParser(MetaGrammar.newInstance());
20 Tree<String> parsedGrammar = metaGrammarParser.parse(new CharInput(grammarStream)).expand1();
21 Grammar.Bindings gbr = new AnnotationGrammarBindings(Program.class);
22 Union mathGrammar = Grammar.create(parsedGrammar, "s", gbr);
23 Parser mathParser = new CharParser(mathGrammar);
25 System.out.println("about to parse: tests/test.fleet");
26 Tree tree = mathParser.parse(new CharInput(System.in)).expand1();
28 // below is ugly voodoo which will go away very soon. ignore it.
29 TreeFunctor tf = (TreeFunctor)tree.head();
30 Program program = (Program)tf.invoke(tree);
31 // above is ugly voodoo which will go away very soon. ignore it.
34 System.out.println("dispatching root codebag:");
35 System.out.println(program.root);
37 Fleet fleet = new Fleet();
38 program.configure(fleet);
40 System.out.println("memory before execution:");
41 System.out.print(" ");
42 for(int i=0; i<fleet.mem.length; i++)
43 System.out.print(fleet.mem[i] + " ");
47 System.out.println("enabling execution...");
49 System.out.println("execution halted.");
52 System.out.println("memory after execution:");
53 System.out.print(" ");
54 for(int i=0; i<fleet.mem.length; i++)
55 System.out.print(fleet.mem[i] + " ");