Skip to content

antlr-ng Tool Class Hierarchy / codegen/ITargetGenerator / ITargetGeneratorCallables

Interface: ITargetGeneratorCallables

This interface contains all callable members of the target generator, which generate code. They all take an output model object (aka OMO) as first argument. The generator will use the information in the model object to generate the target code.

Extended by

Methods

escapeIfNeeded()

ts
escapeIfNeeded(identifier): string;

Parameters

identifier

string

Returns

string


renderBaseListenerFile()

ts
renderBaseListenerFile(file, declaration): string;

Renders a base version of a ListenerFile output model. This base class implements all methods of the listener interface as empty methods. This is useful for the user to create a custom listener class by extending this base class and overriding only the methods of interest.

Languages that support optional methods (e.g. TypeSricpt) don't need such a base class. Custom listeners can simply implement the interface and override only the methods of interest. The code generator has to insert code to test if the method is implemented or not.

Parameters

file

ListenerFile

The model object for details.

declaration

boolean

If true, render the declaration file for the base listener file.

Returns

string

The generated code as a string.


renderBaseVisitorFile()

ts
renderBaseVisitorFile(file, declaration): string;

Renders a base version of a VisitorFile output model. This base class implements all methods of the visitor interface as empty methods. This is useful for the user to create a custom vistitors class by extending this base class and overriding only the methods of interest.

Languages that support optional methods (e.g. TypeSricpt) don't need such a base class. Custom listeners can simply implement the interface and override only the methods of interest. The code generator has to insert code to test if the method is implemented or not.

Parameters

file

VisitorFile

The model object for details.

declaration

boolean

If true, render the declaration file for the base visitor file.

Returns

string

The generated code as a string.


renderImplicitRuleLabel()

ts
renderImplicitRuleLabel(ruleName): string;

Parameters

ruleName

string

Returns

string


renderImplicitSetLabel()

ts
renderImplicitSetLabel(id): string;

Parameters

id

string

Returns

string


renderImplicitTokenLabel()

ts
renderImplicitTokenLabel(tokenName): string;

Should be same for all refs to same token like ctx.ID within single rule function for literals like 'while', we gen _s<ttype>

Parameters

tokenName

string

Returns

string


renderLexerFile()

ts
renderLexerFile(file, declaration): string;

Renders a LexerFile output model.

Parameters

file

LexerFile

The model object for details.

declaration

boolean

If true, render the declaration file for the lexer file.

Returns

string

The generated code as a string.


renderListenerFile()

ts
renderListenerFile(file, declaration): string;

Renders a ListenerFile output model.

Parameters

file

ListenerFile

The model object for details.

declaration

boolean

If true, render the declaration file for the listener file.

Returns

string

The generated code as a string.


renderListLabelName()

ts
renderListLabelName(label): string;

Parameters

label

string

Returns

string


renderParserFile()

ts
renderParserFile(file, declaration): string;

Renders a ParserFile output model.

Parameters

file

ParserFile

The model object for details.

declaration

boolean

If true, render the declaration file for the parser file.

Returns

string

The generated code as a string.


renderTestFile()

ts
renderTestFile(
   grammarName, 
   lexerName, 
   parserName, 
   parserStartRuleName, 
   showDiagnosticErrors, 
   traceATN, 
   profile, 
   showDFA, 
   useListener, 
   useVisitor, 
   predictionMode, 
   buildParseTree): string;

Renders the content of the unit test file with the given parameters. The test file is used to execute a single unit test for a grammar. It contains the necessary imports, the test function and the code to parse a given input string with the specified parser and lexer.

Parameters

grammarName

string

The name of the grammar to be tested.

lexerName

string

The name of the lexer to be used in the test.

parserName

The name of the parser to be used in the test.

undefined | string

parserStartRuleName

The start rule of the parser to be used in the test.

undefined | string

showDiagnosticErrors

boolean

If true, the test will show diagnostic errors in the output.

traceATN

boolean

If true, the test will print ATN tracing information.

profile

boolean

If true, the test will profile the parsing process.

showDFA

boolean

If true, the test will show the DFA state information from the lexer.

useListener

boolean

If true, the test will use a listener to print processing information.

useVisitor

boolean

If true, the test will use a visitor. This is used mostly to test importing the generated visitor class.

predictionMode

string

The prediction mode to be used in the test. This can be one of the following: "LL", "SLL", "LL_EXACT_AMBIG_DETECTION". If undefined, the default prediction mode of the parser will be used.

buildParseTree

boolean

If true, the test will build a parse tree from the input string and print it.

Returns

string


renderVisitorFile()

ts
renderVisitorFile(file, declaration): string;

Renders a VistiorFile output model.

Parameters

file

VisitorFile

The model object for details.

declaration

boolean

If true, render the declaration file for the visitor file.

Returns

string

The generated code as a string.