/* * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. * Use of this file is governed by the BSD 3-clause license that * can be found in the LICENSE.txt file in the project root. */ package org.antlr.v4.codegen.model; import org.antlr.v4.codegen.OutputModelFactory; import org.antlr.v4.codegen.model.chunk.ActionChunk; import org.antlr.v4.codegen.model.chunk.ActionText; import org.antlr.v4.tool.Grammar; import java.util.Map; /** */ public class ParserFile extends OutputFile { public String genPackage; // from -package cmd-line public String exportMacro; // from -DexportMacro cmd-line public boolean genListener; // from -listener cmd-line public boolean genVisitor; // from -visitor cmd-line @ModelElement public Parser parser; @ModelElement public Map<String, Action> namedActions; @ModelElement public ActionChunk contextSuperClass; public String grammarName; public ParserFile(OutputModelFactory factory, String fileName) { super(factory, fileName); Grammar g = factory.getGrammar(); namedActions = buildNamedActions(factory.getGrammar()); genPackage = g.tool.genPackage; exportMacro = factory.getGrammar().getOptionString("exportMacro"); // need the below members in the ST for Python, C++ genListener = g.tool.gen_listener; genVisitor = g.tool.gen_visitor; grammarName = g.name; if (g.getOptionString("contextSuperClass") != null) { contextSuperClass = new ActionText(null, g.getOptionString("contextSuperClass")); } } }