All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.mongodb_jdbc_driver.zql.ZqlParser Maven / Gradle / Ivy

The newest version!
/*
 * This file is part of Zql.
 *
 * Zql is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Zql is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Zql.  If not, see .
 */

package net.sf.mongodb_jdbc_driver.zql;

import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.Vector;

/**
 * ZqlParser: an SQL parser
 */
public class ZqlParser
{

	ZqlJJParser _parser = null;

	/**
	 * Test program: Parses SQL statements from stdin or from a text file.
* If the program receives one argument, it is an SQL text file name; if there's no argument, the program * reads from stdin. */ public static void main(String args[]) throws ParseException { ZqlParser p = null; if (args.length < 1) { System.out.println("/* Reading from stdin (exit; to finish) */"); p = new ZqlParser(System.in); } else { try { p = new ZqlParser(new DataInputStream(new FileInputStream(args[0]))); } catch (FileNotFoundException e) { System.out.println("/* File " + args[0] + " not found. Reading from stdin */"); p = new ZqlParser(System.in); } } // else ends here if (args.length > 0) { System.out.println("/* Reading from " + args[0] + "*/"); } ZStatement st = null; while ((st = p.readStatement()) != null) { System.out.println(st.toString() + ";"); } System.out.println("exit;"); System.out.println("/* Parse Successful */"); } // main ends here /** * Create a new parser to parse SQL statements from a given input stream. * * @param in * The InputStream from which SQL statements will be read. */ public ZqlParser(InputStream in) { initParser(in); } /** * Create a new parser: before use, call initParser(InputStream) to specify an input stream for the * parsing. */ public ZqlParser() { }; /** * Initialize (or re-initialize) the input stream for the parser. */ public void initParser(InputStream in) { if (_parser == null) { _parser = new ZqlJJParser(in); } else { _parser.ReInit(in); } } public void addCustomFunction(String fct, int nparm) { ZUtils.addCustomFunction(fct, nparm); } /** * Parse an SQL Statement from the parser's input stream. * * @return An SQL statement, or null if there's no more statement. */ public ZStatement readStatement() throws ParseException { if (_parser == null) throw new ParseException("Parser not initialized: use initParser(InputStream);"); return _parser.SQLStatement(); } /** * Parse a set of SQL Statements from the parser's input stream (all the available statements are parsed * and returned). * * @return A vector of ZStatement objects (SQL statements). */ public Vector readStatements() throws ParseException { if (_parser == null) throw new ParseException("Parser not initialized: use initParser(InputStream);"); return _parser.SQLStatements(); } /** * Parse an SQL Expression (like the WHERE clause of an SQL query). * * @return An SQL expression. */ public ZExp readExpression() throws ParseException { if (_parser == null) throw new ParseException("Parser not initialized: use initParser(InputStream);"); return _parser.SQLExpression(); } };




© 2015 - 2025 Weber Informatics LLC | Privacy Policy