X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fmisc%2FDemo.java;h=83154727202d25cff8fc6ddacfc7550f5bf0c1ff;hb=688306d0a14d09b5c49811c73f18f11c098f57a2;hp=0bafd7603fce0e2fef0cc63c050508031f8adec8;hpb=11571b006d50d45f4f67643697c28ecb2e81bb81;p=sbp.git diff --git a/src/edu/berkeley/sbp/misc/Demo.java b/src/edu/berkeley/sbp/misc/Demo.java index 0bafd76..8315472 100644 --- a/src/edu/berkeley/sbp/misc/Demo.java +++ b/src/edu/berkeley/sbp/misc/Demo.java @@ -1,3 +1,5 @@ +// Copyright 2006 all rights reserved; see LICENSE file for BSD-style license + package edu.berkeley.sbp.misc; import edu.berkeley.sbp.*; @@ -30,25 +32,24 @@ public class Demo { public static @bind.as("/") class Divide extends BinOp { } public static @bind.as("+") class Add extends BinOp { } public static @bind.as("-") class Subtract extends BinOp { } - } // invoke "java -jar edu.berkeley.sbp.jar edu.berkeley.sbp.misc.Demo tests/demo.g " public static void main(String[] s) throws Exception { - Parser metaGrammarParser = new CharParser(MetaGrammar.make()); + Parser metaGrammarParser = new CharParser(MetaGrammar.newInstance()); Tree parsedGrammar = metaGrammarParser.parse(new CharInput(new FileInputStream(s[0]))).expand1(); - GrammarBindingResolver gbr = new AnnotationGrammarBindingResolver(Math.class); - Union mathGrammar = MetaGrammar.make(parsedGrammar, "Expr", gbr); + Grammar.Bindings gbr = new AnnotationGrammarBindings(Math.class); + Union mathGrammar = Grammar.create(parsedGrammar, "Expr", gbr); Parser mathParser = new CharParser(mathGrammar); System.out.println("about to parse: \""+s[1]+"\""); Tree tree = mathParser.parse(new CharInput(new StringReader(s[1]))).expand1(); // below is ugly voodoo which will go away very soon. ignore it. - Tree.TreeFunctor tf = (Tree.TreeFunctor)tree.head(); - Math.Expr e = (Math.Expr)tf.invoke(tree.children()); + TreeFunctor tf = (TreeFunctor)tree.head(); + Math.Expr e = (Math.Expr)tf.invoke(tree); // above is ugly voodoo which will go away very soon. ignore it. System.out.println("done!");