com.metadave.etp.ETP.java Source code

Java tutorial

Introduction

Here is the source code for com.metadave.etp.ETP.java

Source

/*
 * -------------------------------------------------------------------
 *
 *   Copyright (c) 2013 Dave Parfitt
 *
 *   This file is provided to you under the Apache License,
 *   Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License.  You may obtain
 *   a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing,
 *   software distributed under the License is distributed on an
 *   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 *   KIND, either express or implied.  See the License for the
 *   specific language governing permissions and limitations
 *   under the License.
 * -------------------------------------------------------------------
 */

package com.metadave.etp;

import com.metadave.etp.rep.ETPTerm;
import org.antlr.v4.runtime.ANTLRInputStream;
import org.antlr.v4.runtime.CommonTokenStream;
import org.antlr.v4.runtime.RecognitionException;
import org.antlr.v4.runtime.tree.ParseTreeWalker;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class ETP {
    public static ETPTerm parse(String s) throws ParseException {
        ANTLRInputStream input = new ANTLRInputStream(s);
        ETPLexer lexer = new ETPLexer(input);
        CommonTokenStream tokens = new CommonTokenStream(lexer);
        ETPParser parser = new ETPParser(tokens);
        parser.removeErrorListeners();
        parser.addErrorListener(new ETPErrorListener());
        ETPWalker ew = new ETPWalker(tokens);
        ParseTreeWalker walker = new ParseTreeWalker();
        ETPTerm<?> term = null;

        ETPParser.Etp_termContext t = null;
        try {
            t = parser.etp_term();
            walker.walk(ew, t);
        } catch (Throwable e) {
            throw new ParseException("ETP parse error", e);
        }
        term = (ETPTerm<?>) ew.getValue(t);
        return term;
    }

    public static ETPTerm parse(InputStream is) throws IOException, ParseException {
        ANTLRInputStream input = new ANTLRInputStream(is);
        ETPLexer lexer = new ETPLexer(input);
        CommonTokenStream tokens = new CommonTokenStream(lexer);
        ETPParser parser = new ETPParser(tokens);
        parser.removeErrorListeners();
        parser.addErrorListener(new ETPErrorListener());
        ETPWalker ew = new ETPWalker(tokens);
        ParseTreeWalker walker = new ParseTreeWalker();
        ETPTerm<?> term = null;
        ETPParser.Etp_termContext t = null;
        try {
            t = parser.etp_term();
            walker.walk(ew, t);
        } catch (Throwable e) {
            throw new ParseException("ETP parse error", e);
        }
        term = (ETPTerm<?>) ew.getValue(t);
        return term;
    }

    public static List<ETPTerm> parseMulti(String s) throws ParseException {
        ANTLRInputStream input = new ANTLRInputStream(s);
        ETPLexer lexer = new ETPLexer(input);
        CommonTokenStream tokens = new CommonTokenStream(lexer);
        ETPParser parser = new ETPParser(tokens);
        parser.removeErrorListeners();
        parser.addErrorListener(new ETPErrorListener());
        ETPWalker ew = new ETPWalker(tokens);
        ParseTreeWalker walker = new ParseTreeWalker();
        List<ETPTerm> terms = null;

        ETPParser.Etp_termsContext t = null;
        try {
            t = parser.etp_terms();
            walker.walk(ew, t);
        } catch (Throwable e) {
            throw new ParseException("ETP parse error", e);
        }
        terms = (List<ETPTerm>) ew.getValue(t);
        return terms;
    }

    public static List<ETPTerm> parseMulti(InputStream is) throws IOException, ParseException {
        ANTLRInputStream input = new ANTLRInputStream(is);
        ETPLexer lexer = new ETPLexer(input);
        CommonTokenStream tokens = new CommonTokenStream(lexer);
        ETPParser parser = new ETPParser(tokens);
        parser.removeErrorListeners();
        parser.addErrorListener(new ETPErrorListener());
        ETPWalker ew = new ETPWalker(tokens);
        ParseTreeWalker walker = new ParseTreeWalker();
        List<ETPTerm> terms = null;

        ETPParser.Etp_termsContext t = null;
        try {
            t = parser.etp_terms();
            walker.walk(ew, t);
        } catch (Throwable e) {
            throw new ParseException("ETP parse error", e);
        }
        terms = (List<ETPTerm>) ew.getValue(t);
        return terms;
    }

    public static class ParseException extends Exception {
        public ParseException(String message, Throwable cause) {
            super(message, cause);
        }
    }
}