public abstract class BaseLanguageSupport extends Object implements LanguageSupport
| Modifier and Type | Field and Description |
|---|---|
protected Environment |
environment |
protected RuntimeData |
runtime |
| Constructor and Description |
|---|
BaseLanguageSupport() |
| Modifier and Type | Method and Description |
|---|---|
protected String |
computeModeName(String lexerMode) |
void |
emitLine(int lineNumber)
emit #line in C
|
void |
emitLine(int lineNumber,
String filename)
emit #line in C
|
protected String |
escapeDoubleQuotes(String error) |
boolean |
generateLexerCode(FormattingPrintStream output,
String lexerMode,
Lexer lexer,
Terminal token,
int additionalIndent)
Emit the code for the lexical part of the grammar
|
boolean |
generateRuleCode(Lexer lexer,
EmbeddedCodeProcessor processor,
int elementCount,
String nonTerminalId,
int sourceColumn)
Parsing logic
Scan the input stream until a rule set of actions end.
|
boolean |
getDefaultIncludeFlag()
tells me the default value for include file generation
|
int |
getDefaultIndent()
the deault indentation is language dependent
|
Environment |
getEnvironment() |
protected String |
getErrorMessage(State I) |
protected int |
getLexerCodeOffsetIndent()
%lexer needs to be indented as per given language.
|
int |
getNumberOfSpacesPerIndent()
number of spaces per indent
|
RuntimeData |
getRuntime() |
protected String |
getShortSymbolName(Symbol t) |
String |
indent(FormattingPrintStream out,
int n)
Indents a number of separators, based on the number of spaces per indent.
|
String |
indent(int n)
Indents a number of separators, returning the string
|
protected boolean |
lexerComment(FormattingPrintStream output,
Lexer lexer,
char characterToFind) |
protected boolean |
lexerDollar(FormattingPrintStream output,
String lexerMode,
Lexer lexer,
Terminal token) |
protected boolean |
lexerString(FormattingPrintStream output,
Lexer lexer,
char characterToFind) |
protected int |
manageDollar(Lexer lexer,
EmbeddedCodeProcessor processor,
int elementCount,
String nonTerminalId) |
void |
setEnvironment(Environment environment) |
void |
setRuntime(RuntimeData runtime) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgenerateCaseEnd, generateCaseStart, generateCodeGeneratorFooter, generateCodeGeneratorHeader, generateEdgeHeader, generateErrorToken, generateIntArrayComment, generateIntArrayFooter, generateIntArrayRow, generateLexerFooter, generateLexerHeader, generateLexerModeCase, generateLexerModeDefinition, generateLexerModeFooter, generateLexerModeHeader, generateRecoveryTableHeader, generateRegexEnd, generateRegexMatch, generateRegexReturn, generateStructure, generateToken, generateTokenDefinitions, generateTokensHeader, generateVertexHeader, generateVoidCodeGenerator, getExtensionSuffix, getId, getIncludeExtensionSuffix, getLanguageCode, getLexerModeRoutine, printAction, printActionHeader, printCodeHeader, printErrorEntry, printErrorFooter, printErrorTableHeader, printGoTo, printGoToTableHeader, printGrammarTable, printMissingSkeleton, printPackedState, printParserErrors, printParsingTableHeader, printTableRowprotected Environment environment
protected RuntimeData runtime
public boolean getDefaultIncludeFlag()
LanguageSupportgetDefaultIncludeFlag in interface LanguageSupportpublic int getDefaultIndent()
LanguageSupportgetDefaultIndent in interface LanguageSupportpublic void emitLine(int lineNumber)
LanguageSupportemitLine in interface LanguageSupportlineNumber - is the line numberpublic void emitLine(int lineNumber,
String filename)
LanguageSupportemitLine in interface LanguageSupportlineNumber - is the line numberfilename - is the filenamepublic int getNumberOfSpacesPerIndent()
LanguageSupportgetNumberOfSpacesPerIndent in interface LanguageSupportprotected int getLexerCodeOffsetIndent()
public String indent(FormattingPrintStream out, int n)
LanguageSupportindent in interface LanguageSupportout - is the output stream. it can be nulln - is the number of indentationspublic String indent(int n)
LanguageSupportindent in interface LanguageSupportn - is the number of indentationspublic Environment getEnvironment()
public void setEnvironment(Environment environment)
environment - the environment to setpublic RuntimeData getRuntime()
public void setRuntime(RuntimeData runtime)
runtime - the runtime to setpublic boolean generateRuleCode(Lexer lexer, EmbeddedCodeProcessor processor, int elementCount, String nonTerminalId, int sourceColumn)
LanguageSupportgenerateRuleCode in interface LanguageSupportlexer - the element that will give me the lexical logicprocessor - is the processor for ruleselementCount - the number of elements in the rulenonTerminalId - the non terminal id for the rulesourceColumn - is the column numberprotected int manageDollar(Lexer lexer, EmbeddedCodeProcessor processor, int elementCount, String nonTerminalId)
protected boolean lexerDollar(FormattingPrintStream output, String lexerMode, Lexer lexer, Terminal token)
protected boolean lexerComment(FormattingPrintStream output, Lexer lexer, char characterToFind)
protected boolean lexerString(FormattingPrintStream output, Lexer lexer, char characterToFind)
public boolean generateLexerCode(FormattingPrintStream output, String lexerMode, Lexer lexer, Terminal token, int additionalIndent)
LanguageSupportgenerateLexerCode in interface LanguageSupportoutput - is the stream to write tolexerMode - is the string representing the desired modelexer - is the lexer to obtain more characterstoken - is the current token for which generation is attemptedadditionalIndent - is the wanted indentation deltaCopyright © 2017. All rights reserved.