forked from jasder/antlr
warning 108 for "token name foo is already defined"
This commit is contained in:
parent
b879d508ee
commit
59b3a05a05
|
@ -221,17 +221,14 @@ public class SemanticPipeline {
|
||||||
{
|
{
|
||||||
//Grammar G = g.getOutermostGrammar(); // put in root, even if imported
|
//Grammar G = g.getOutermostGrammar(); // put in root, even if imported
|
||||||
|
|
||||||
// DEFINE tokens { X='x'; } ALIASES
|
// create token types for tokens { A, B, C } ALIASES
|
||||||
for (GrammarAST alias : tokensDefs) {
|
for (GrammarAST alias : tokensDefs) {
|
||||||
if ( alias.getType()== ANTLRParser.ASSIGN ) {
|
if (g.getTokenType(alias.getText()) != Token.INVALID_TYPE) {
|
||||||
String name = alias.getChild(0).getText();
|
g.tool.errMgr.grammarError(ErrorType.TOKEN_NAME_REASSIGNMENT, g.fileName, alias.token, alias.getText());
|
||||||
String lit = alias.getChild(1).getText();
|
|
||||||
g.defineTokenAlias(name, lit);
|
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
g.defineTokenName(alias.getText());
|
g.defineTokenName(alias.getText());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// DEFINE TOKEN TYPES FOR TOKEN REFS LIKE ID, INT
|
// DEFINE TOKEN TYPES FOR TOKEN REFS LIKE ID, INT
|
||||||
for (GrammarAST idAST : tokenIDs) {
|
for (GrammarAST idAST : tokenIDs) {
|
||||||
|
|
|
@ -126,7 +126,7 @@ public enum ErrorType {
|
||||||
NO_SUCH_GRAMMAR_SCOPE(105, "reference to undefined grammar in rule reference: <arg>.<arg2>", ErrorSeverity.ERROR),
|
NO_SUCH_GRAMMAR_SCOPE(105, "reference to undefined grammar in rule reference: <arg>.<arg2>", ErrorSeverity.ERROR),
|
||||||
NO_SUCH_RULE_IN_SCOPE(106, "rule <arg2> is not defined in grammar <arg>", ErrorSeverity.ERROR),
|
NO_SUCH_RULE_IN_SCOPE(106, "rule <arg2> is not defined in grammar <arg>", ErrorSeverity.ERROR),
|
||||||
// TOKEN_STRING_REASSIGNMENT(107, "cannot alias <arg> in tokens {}; string already assigned to <arg2>", ErrorSeverity.ERROR),
|
// TOKEN_STRING_REASSIGNMENT(107, "cannot alias <arg> in tokens {}; string already assigned to <arg2>", ErrorSeverity.ERROR),
|
||||||
// TOKEN_NAME_REASSIGNMENT(108, "cannot redefine <arg>; token name already <if(arg2)>assigned to <arg2><else>defined<endif>", ErrorSeverity.ERROR),
|
TOKEN_NAME_REASSIGNMENT(108, "token name <arg> is already defined", ErrorSeverity.WARNING),
|
||||||
//TOKEN_VOCAB_IN_DELEGATE(, "tokenVocab option ignored in imported grammar <arg>", ErrorSeverity.ERROR),
|
//TOKEN_VOCAB_IN_DELEGATE(, "tokenVocab option ignored in imported grammar <arg>", ErrorSeverity.ERROR),
|
||||||
OPTIONS_IN_DELEGATE(109, "options ignored in imported grammar <arg>", ErrorSeverity.WARNING),
|
OPTIONS_IN_DELEGATE(109, "options ignored in imported grammar <arg>", ErrorSeverity.WARNING),
|
||||||
// TOKEN_ALIAS_IN_DELEGATE(, "can't assign string to token name <arg> to string in imported grammar <arg2>", ErrorSeverity.ERROR),
|
// TOKEN_ALIAS_IN_DELEGATE(, "can't assign string to token name <arg> to string in imported grammar <arg2>", ErrorSeverity.ERROR),
|
||||||
|
|
Loading…
Reference in New Issue