org.antlr.v4.codegen.OutputModelFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of antlr4 Show documentation
Show all versions of antlr4 Show documentation
The ANTLR 4 grammar compiler.
/*
* Copyright (c) 2012 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;
import org.antlr.v4.codegen.model.Choice;
import org.antlr.v4.codegen.model.CodeBlockForAlt;
import org.antlr.v4.codegen.model.CodeBlockForOuterMostAlt;
import org.antlr.v4.codegen.model.LabeledOp;
import org.antlr.v4.codegen.model.Lexer;
import org.antlr.v4.codegen.model.LexerFile;
import org.antlr.v4.codegen.model.OutputModelObject;
import org.antlr.v4.codegen.model.Parser;
import org.antlr.v4.codegen.model.ParserFile;
import org.antlr.v4.codegen.model.RuleFunction;
import org.antlr.v4.codegen.model.SrcOp;
import org.antlr.v4.codegen.model.decl.CodeBlock;
import org.antlr.v4.runtime.misc.IntervalSet;
import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.tool.Alternative;
import org.antlr.v4.tool.Grammar;
import org.antlr.v4.tool.Rule;
import org.antlr.v4.tool.ast.ActionAST;
import org.antlr.v4.tool.ast.BlockAST;
import org.antlr.v4.tool.ast.GrammarAST;
import java.util.List;
public interface OutputModelFactory {
Grammar getGrammar();
@NotNull
CodeGenerator getGenerator();
@NotNull
Target getTarget();
void setController(OutputModelController controller);
OutputModelController getController();
ParserFile parserFile(String fileName);
Parser parser(ParserFile file);
LexerFile lexerFile(String fileName);
Lexer lexer(LexerFile file);
RuleFunction rule(Rule r);
List rulePostamble(RuleFunction function, Rule r);
// ELEMENT TRIGGERS
CodeBlockForAlt alternative(Alternative alt, boolean outerMost);
CodeBlockForAlt finishAlternative(CodeBlockForAlt blk, List ops);
CodeBlockForAlt epsilon(Alternative alt, boolean outerMost);
List ruleRef(GrammarAST ID, GrammarAST label, GrammarAST args);
List tokenRef(GrammarAST ID, GrammarAST label, GrammarAST args);
List stringRef(GrammarAST ID, GrammarAST label);
List set(GrammarAST setAST, GrammarAST label, boolean invert);
List wildcard(GrammarAST ast, GrammarAST labelAST);
List action(ActionAST ast);
List sempred(ActionAST ast);
Choice getChoiceBlock(BlockAST blkAST, List alts, GrammarAST label);
Choice getEBNFBlock(GrammarAST ebnfRoot, List alts);
Choice getLL1ChoiceBlock(BlockAST blkAST, List alts);
Choice getComplexChoiceBlock(BlockAST blkAST, List alts);
Choice getLL1EBNFBlock(GrammarAST ebnfRoot, List alts);
Choice getComplexEBNFBlock(GrammarAST ebnfRoot, List alts);
List getLL1Test(IntervalSet look, GrammarAST blkAST);
boolean needsImplicitLabel(GrammarAST ID, LabeledOp op);
// CONTEXT INFO
OutputModelObject getRoot();
RuleFunction getCurrentRuleFunction();
Alternative getCurrentOuterMostAlt();
CodeBlock getCurrentBlock();
CodeBlockForOuterMostAlt getCurrentOuterMostAlternativeBlock();
int getCodeBlockLevel();
int getTreeLevel();
}