From fe1771360b47a8b7202cf0ee296d89ad9b4adf37 Mon Sep 17 00:00:00 2001 From: adam Date: Sun, 11 Jan 2009 00:17:12 -0500 Subject: [PATCH] add edu.berkeley.sbp.misc.TestAstGenerator darcs-hash:20090111051712-5007d-4d8ff8077006c7c6b8b6ccc04f3541dd35fce9e5.gz --- Makefile | 3 ++ src/edu/berkeley/sbp/misc/TestAstGenerator.java | 34 +++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 src/edu/berkeley/sbp/misc/TestAstGenerator.java diff --git a/Makefile b/Makefile index 55c7365..c3642cf 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,9 @@ demo: edu.berkeley.sbp.jar demo2: edu.berkeley.sbp.jar $(java) -cp $< edu.berkeley.sbp.misc.Demo2 +ast: edu.berkeley.sbp.jar + $(java) -cp $< edu.berkeley.sbp.misc.TestAstGenerator tests/math.g + regress: make boot rm edu.berkeley.sbp.jar diff --git a/src/edu/berkeley/sbp/misc/TestAstGenerator.java b/src/edu/berkeley/sbp/misc/TestAstGenerator.java new file mode 100644 index 0000000..4ccbdc7 --- /dev/null +++ b/src/edu/berkeley/sbp/misc/TestAstGenerator.java @@ -0,0 +1,34 @@ +// Copyright 2006-2007 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.util.*; +import java.util.*; +import java.io.*; + +public class TestAstGenerator { + + public static GrammarAST.ImportResolver resolver = new GrammarAST.ImportResolver() { + public InputStream getImportStream(String importname) { + try { + return new FileInputStream("tests/"+importname); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + }; + + public static void main(String[] s) throws Exception { + + Parser metaGrammarParser = new CharParser(GrammarAST.getMetaGrammar()); + Tree parsedGrammar = metaGrammarParser.parse(new CharInput(new FileInputStream(s[0]))).expand1(); + PrintWriter pw = new PrintWriter(System.out); + GrammarAST.emitCode(pw, parsedGrammar, "Expr", resolver); + pw.flush(); + } + +} -- 1.7.10.4