Class VocabularyImpl
- All Implemented Interfaces:
Vocabulary
Vocabulary
interface.- Author:
- Sam Harwell
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionVocabularyImpl
(String[] literalNames, String[] symbolicNames) Constructs a new instance ofVocabularyImpl
from the specified literal and symbolic token names.VocabularyImpl
(String[] literalNames, String[] symbolicNames, String[] displayNames) Constructs a new instance ofVocabularyImpl
from the specified literal, symbolic, and display token names. -
Method Summary
Modifier and TypeMethodDescriptionstatic Vocabulary
fromTokenNames
(String[] tokenNames) Returns aVocabularyImpl
instance from the specified set of token names.getDisplayName
(int tokenType) Gets the display name of a token type.getLiteralName
(int tokenType) Gets the string literal associated with a token type.int
Returns the highest token type value.getSymbolicName
(int tokenType) Gets the symbolic name associated with a token type.
-
Field Details
-
EMPTY_VOCABULARY
Gets an emptyVocabulary
instance.No literal or symbol names are assigned to token types, so
getDisplayName(int)
returns the numeric value for all tokens exceptToken.EOF
.
-
-
Constructor Details
-
VocabularyImpl
Constructs a new instance ofVocabularyImpl
from the specified literal and symbolic token names.- Parameters:
literalNames
- The literal names assigned to tokens, ornull
if no literal names are assigned.symbolicNames
- The symbolic names assigned to tokens, ornull
if no symbolic names are assigned.- See Also:
-
VocabularyImpl
Constructs a new instance ofVocabularyImpl
from the specified literal, symbolic, and display token names.- Parameters:
literalNames
- The literal names assigned to tokens, ornull
if no literal names are assigned.symbolicNames
- The symbolic names assigned to tokens, ornull
if no symbolic names are assigned.displayNames
- The display names assigned to tokens, ornull
to use the values inliteralNames
andsymbolicNames
as the source of display names, as described ingetDisplayName(int)
.- See Also:
-
-
Method Details
-
fromTokenNames
Returns aVocabularyImpl
instance from the specified set of token names. This method acts as a compatibility layer for the singletokenNames
array generated by previous releases of ANTLR.The resulting vocabulary instance returns
null
forgetLiteralName(int)
andgetSymbolicName(int)
, and the value fromtokenNames
for the display names.- Parameters:
tokenNames
- The token names, ornull
if no token names are available.- Returns:
- A
Vocabulary
instance which usestokenNames
for the display names of tokens.
-
getMaxTokenType
public int getMaxTokenType()Description copied from interface:Vocabulary
Returns the highest token type value. It can be used to iterate from zero to that number, inclusively, thus querying all stored entries.- Specified by:
getMaxTokenType
in interfaceVocabulary
- Returns:
- the highest token type value
-
getLiteralName
Description copied from interface:Vocabulary
Gets the string literal associated with a token type. The string returned by this method, when notnull
, can be used unaltered in a parser grammar to represent this token type.The following table shows examples of lexer rules and the literal names assigned to the corresponding token types.
Rule Literal Name Java String Literal THIS : 'this';
'this'
"'this'"
SQUOTE : '\'';
'\''
"'\\''"
ID : [A-Z]+;
n/a null
- Specified by:
getLiteralName
in interfaceVocabulary
- Parameters:
tokenType
- The token type.- Returns:
- The string literal associated with the specified token type, or
null
if no string literal is associated with the type.
-
getSymbolicName
Description copied from interface:Vocabulary
Gets the symbolic name associated with a token type. The string returned by this method, when notnull
, can be used unaltered in a parser grammar to represent this token type.This method supports token types defined by any of the following methods:
- Tokens created by lexer rules.
- Tokens defined in a
tokens{}
block in a lexer or parser grammar. - The implicitly defined
EOF
token, which has the token typeToken.EOF
.
The following table shows examples of lexer rules and the literal names assigned to the corresponding token types.
Rule Symbolic Name THIS : 'this';
THIS
SQUOTE : '\'';
SQUOTE
ID : [A-Z]+;
ID
- Specified by:
getSymbolicName
in interfaceVocabulary
- Parameters:
tokenType
- The token type.- Returns:
- The symbolic name associated with the specified token type, or
null
if no symbolic name is associated with the type.
-
getDisplayName
Description copied from interface:Vocabulary
Gets the display name of a token type.ANTLR provides a default implementation of this method, but applications are free to override the behavior in any manner which makes sense for the application. The default implementation returns the first result from the following list which produces a non-
null
result.- The result of
Vocabulary.getLiteralName(int)
- The result of
Vocabulary.getSymbolicName(int)
- The result of
Integer.toString(int, int)
- Specified by:
getDisplayName
in interfaceVocabulary
- Parameters:
tokenType
- The token type.- Returns:
- The display name of the token type, for use in error reporting or other user-visible messages which reference specific token types.
- The result of
-