X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fmisc%2FDemo.java;h=2846d7c841e17ae2fbc59817307c6874c665c66a;hp=566e05d19de5a3db835972cf0923e17ac0c7e44d;hb=16460a4ebf976fddbcb4dd79f1fa0b010d61602b;hpb=c8a17fdd2e149fe5feecd96c71b7f2cab286ab96 diff --git a/src/edu/berkeley/sbp/misc/Demo.java b/src/edu/berkeley/sbp/misc/Demo.java index 566e05d..2846d7c 100644 --- a/src/edu/berkeley/sbp/misc/Demo.java +++ b/src/edu/berkeley/sbp/misc/Demo.java @@ -1,17 +1,18 @@ +// Copyright 2006 all rights reserved; see LICENSE file for BSD-style license + package edu.berkeley.sbp.misc; import edu.berkeley.sbp.*; import edu.berkeley.sbp.chr.*; import edu.berkeley.sbp.misc.*; import edu.berkeley.sbp.meta.*; -import edu.berkeley.sbp.bind.*; import edu.berkeley.sbp.util.*; import java.util.*; import java.io.*; public class Demo { - - /** our grammar class */ + /* + // our grammar class public static class Math { public static @bind.as("(") Expr parenthesis(Expr e) { return e; } @@ -30,29 +31,28 @@ 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(); + 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!"); System.out.println(Reflection.show(e)); } - + */ }