org.antlr.v4.codegen.CodeGeneratorExtension 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.LabeledOp;
import org.antlr.v4.codegen.model.Lexer;
import org.antlr.v4.codegen.model.LexerFile;
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.tool.ast.GrammarAST;
import java.util.List;
/** Filter list of SrcOps and return; default is pass-through filter */
public class CodeGeneratorExtension {
public OutputModelFactory factory;
public CodeGeneratorExtension(OutputModelFactory factory) {
this.factory = factory;
}
public ParserFile parserFile(ParserFile f) { return f; }
public Parser parser(Parser p) { return p; }
public LexerFile lexerFile(LexerFile f) { return f; }
public Lexer lexer(Lexer l) { return l; }
public RuleFunction rule(RuleFunction rf) { return rf; }
public List rulePostamble(List ops) { return ops; }
public CodeBlockForAlt alternative(CodeBlockForAlt blk, boolean outerMost) { return blk; }
public CodeBlockForAlt finishAlternative(CodeBlockForAlt blk, boolean outerMost) { return blk; }
public CodeBlockForAlt epsilon(CodeBlockForAlt blk) { return blk; }
public List ruleRef(List ops) { return ops; }
public List tokenRef(List ops) { return ops; }
public List set(List ops) { return ops; }
public List stringRef(List ops) { return ops; }
public List wildcard(List ops) { return ops; }
// ACTIONS
public List action(List ops) { return ops; }
public List sempred(List ops) { return ops; }
// BLOCKS
public Choice getChoiceBlock(Choice c) { return c; }
public Choice getEBNFBlock(Choice c) { return c; }
public boolean needsImplicitLabel(GrammarAST ID, LabeledOp op) { return false; }
}