package railo.runtime.sql.old; import java.io.DataInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.util.Vector; // Referenced classes of package Zql: // ZqlJJParser, ParseException, ZUtils, ZStatement, // ZExp public final class ZqlParser { public static void main(String args[]) throws ParseException { ZqlParser zqlparser = null; if(args.length < 1) { System.out.println("/* Reading from stdin (exit; to finish) */"); zqlparser = new ZqlParser(System.in); } else { try { zqlparser = new ZqlParser(new DataInputStream(new FileInputStream(args[0]))); } catch(FileNotFoundException filenotfoundexception) { System.out.println("/* File " + args[0] + " not found. Reading from stdin */"); zqlparser = new ZqlParser(System.in); } } if(args.length > 0) System.out.println("/* Reading from " + args[0] + "*/"); for(ZStatement zstatement = null; (zstatement = zqlparser.readStatement()) != null;) System.out.println(zstatement.toString() + ";"); System.out.println("exit;"); System.out.println("/* Parse Successful */"); } public ZqlParser(InputStream inputstream) { _parser = null; initParser(inputstream); } public ZqlParser() { _parser = null; } public void initParser(InputStream inputstream) { if(_parser == null) _parser = new ZqlJJParser(inputstream); else _parser.ReInit(inputstream); } public void addCustomFunction(String s, int i) { ZUtils.addCustomFunction(s, i); } public ZStatement readStatement() throws ParseException { if(_parser == null) throw new ParseException("Parser not initialized: use initParser(InputStream);"); return _parser.SQLStatement(); } public Vector readStatements() throws ParseException { if(_parser == null) throw new ParseException("Parser not initialized: use initParser(InputStream);"); return _parser.SQLStatements(); } public ZExp readExpression() throws ParseException { if(_parser == null) throw new ParseException("Parser not initialized: use initParser(InputStream);"); return _parser.SQLExpression(); } ZqlJJParser _parser; }