alfa.core.runtime.meta.parser.MetaParse.java Source code

Java tutorial

Introduction

Here is the source code for alfa.core.runtime.meta.parser.MetaParse.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package alfa.core.runtime.meta.parser;

import alfa.core.runtime.meta.parser.gen.MetaLexer;
import alfa.core.runtime.meta.parser.gen.MetaParser;
import java.io.FileInputStream;
import java.io.InputStream;
import org.antlr.v4.runtime.ANTLRInputStream;
import org.antlr.v4.runtime.CommonTokenStream;
import org.antlr.v4.runtime.tree.ParseTree;

/**
 *
 * @author tdk
 */
public class MetaParse {

    private static void _Parse(String fileName) throws Exception {
        InputStream is = new FileInputStream(fileName);

        ANTLRInputStream input = new ANTLRInputStream(is);
        MetaLexer lexer = new MetaLexer(input);
        CommonTokenStream tokens = new CommonTokenStream(lexer);
        MetaParser parser = new MetaParser(tokens);
        ParseTree tree = parser.program(); // parse; start at prog <label id="code.tour.main.6"/>
        //System.out.println( tree.toStringTree( parser ) ); // print tree as text <label id="code.tour.main.7"/>

        MetaProductions prod = new MetaProductions();

        prod.visit(tree);
    }

    public static void Parse(String fileName) {
        try {
            _Parse(fileName);
        } catch (Exception x) {
            throw new RuntimeException(x.getMessage());
        }
    }

}