Skip to content

Commit c10b287

Browse files
committed
Fix inability to handle gaps in the token assignments
1 parent 41e71a7 commit c10b287

File tree

15 files changed

+17
-16
lines changed

15 files changed

+17
-16
lines changed

tool/src/main/java/org/antlr/codegen/CodeGenerator.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -861,10 +861,11 @@ protected void genTokenTypeConstants(ST code) {
861861
protected void genTokenTypeNames(ST code) {
862862
for (int t=Label.MIN_TOKEN_TYPE; t<=grammar.getMaxTokenType(); t++) {
863863
String tokenName = grammar.getTokenDisplayName(t);
864-
if ( tokenName!=null ) {
864+
if (tokenName != null) {
865865
tokenName=target.getTargetStringLiteralFromString(tokenName, true);
866-
code.add("tokenNames", tokenName);
867866
}
867+
868+
code.add("tokenNames", tokenName);
868869
}
869870
}
870871

tool/src/main/resources/org/antlr/codegen/templates/ActionScript/ActionScript.stg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ genericParser(grammar, name, scopes, tokens, tokenNames, rules, numRules,
173173
public class <grammar.recognizerName> extends <if(actions.(actionScope).superClass)><actions.(actionScope).superClass><else><@superClassName><superClass><@end><endif> {
174174
<if(grammar.grammarIsRoot)>
175175
public static const tokenNames:Array = [
176-
"\<invalid>", "\<EOR>", "\<DOWN>", "\<UP>", <tokenNames; separator=", ">
176+
"\<invalid>", "\<EOR>", "\<DOWN>", "\<UP>", <tokenNames; separator=", ", null="\"<invalid>\"">
177177
];<\n>
178178
<endif>
179179
<tokens:{it |public static const <it.name>:int=<it.type>;}; separator="\n">

tool/src/main/resources/org/antlr/codegen/templates/C/C.stg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1195,7 +1195,7 @@ pANTLR3_UINT8 <name>TokenNames[<length(tokenNames)>+4]
11951195
(pANTLR3_UINT8) "\<EOR>",
11961196
(pANTLR3_UINT8) "\<DOWN>",
11971197
(pANTLR3_UINT8) "\<UP>",
1198-
<tokenNames:{it |(pANTLR3_UINT8) <it>}; separator=",\n">
1198+
<tokenNames:{it |(pANTLR3_UINT8) <it>}; separator=",\n", null="(pANTLR3_UINT8) \"<invalid>\"">
11991199
};
12001200
<endif>
12011201

tool/src/main/resources/org/antlr/codegen/templates/CSharp2/CSharp2.stg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ genericParser(grammar, name, scopes, tokens, tokenNames, rules, numRules,
287287
{
288288
<if(grammar.grammarIsRoot)>
289289
internal static readonly string[] tokenNames = new string[] {
290-
"\<invalid>", "\<EOR>", "\<DOWN>", "\<UP>", <tokenNames; separator=", ">
290+
"\<invalid>", "\<EOR>", "\<DOWN>", "\<UP>", <tokenNames; separator=", ", null="\"<invalid>\"">
291291
};
292292
<endif>
293293
<tokens:{it|public const int <it.name; format="id">=<it.type>;}; separator="\n">

tool/src/main/resources/org/antlr/codegen/templates/CSharp3/CSharp3.stg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ genericParser(grammar, name, scopes, tokens, tokenNames, rules, numRules,
282282
{
283283
<if(grammar.grammarIsRoot)>
284284
internal static readonly string[] tokenNames = new string[] {
285-
"\<invalid>", "\<EOR>", "\<DOWN>", "\<UP>", <tokenNames; separator=", ">
285+
"\<invalid>", "\<EOR>", "\<DOWN>", "\<UP>", <tokenNames; separator=", ", null="\"<invalid>\"">
286286
};
287287
<endif>
288288
<tokens:{it|public const int <it.name; format="id">=<it.type>;}; separator="\n">

tool/src/main/resources/org/antlr/codegen/templates/Cpp/Cpp.stg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -821,7 +821,7 @@ ANTLR_UINT8* <name>TokenNames[<length(tokenNames)>+4]
821821
(ANTLR_UINT8*) "\<EOR>",
822822
(ANTLR_UINT8*) "\<DOWN>",
823823
(ANTLR_UINT8*) "\<UP>",
824-
<tokenNames:{it |(ANTLR_UINT8*) <it>}; separator=",\n">
824+
<tokenNames:{it |(ANTLR_UINT8*) <it>}; separator=",\n", null="(ANTLR_UINT8*) \"<invalid>\"">
825825
};
826826
<endif>
827827

tool/src/main/resources/org/antlr/codegen/templates/Delphi/Delphi.stg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ type
321321
'\<EOR>',
322322
'\<DOWN>',
323323
'\<UP>',
324-
<tokenNames; separator=",\n">);<\n>
324+
<tokenNames; separator=",\n", null="'<invalid>'">);<\n>
325325
<endif>
326326
public
327327
const

tool/src/main/resources/org/antlr/codegen/templates/Java/Java.stg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ genericParser(grammar, name, scopes, tokens, tokenNames, rules, numRules,
208208
public class <grammar.recognizerName> extends <@superClassName><superClass><@end> {
209209
<if(grammar.grammarIsRoot)>
210210
public static final String[] tokenNames = new String[] {
211-
"\<invalid>", "\<EOR>", "\<DOWN>", "\<UP>", <tokenNames; separator=", ", wrap="\n\t\t">
211+
"\<invalid>", "\<EOR>", "\<DOWN>", "\<UP>", <tokenNames; null="\"<invalid>\"", separator=", ", wrap="\n\t\t">
212212
};
213213
<endif>
214214
<tokens:{it |public static final int <it.name>=<it.type>;}; separator="\n">

tool/src/main/resources/org/antlr/codegen/templates/JavaScript/JavaScript.stg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ org.antlr.lang.augmentObject(<grammar.recognizerName>.prototype, {
217217
// public class variables
218218
org.antlr.lang.augmentObject(<grammar.recognizerName>, {
219219
<if(grammar.grammarIsRoot)>
220-
tokenNames: ["\<invalid>", "\<EOR>", "\<DOWN>", "\<UP>", <tokenNames; separator=", ">],<\n>
220+
tokenNames: ["\<invalid>", "\<EOR>", "\<DOWN>", "\<UP>", <tokenNames; separator=", ", null="\"<invalid>\"">],<\n>
221221
<endif>
222222
<bitsets:bitset(name={FOLLOW_<it.name>_in_<it.inName><it.tokenIndex>},
223223
words64=it.bits); separator=",\n">

tool/src/main/resources/org/antlr/codegen/templates/ObjC/ObjC.stg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,7 @@ genericParser( grammar,
712712
{
713713
#pragma mark Bitsets
714714
<bitsets:{it | <bitsetInit(name={FOLLOW_<it.name>_in_<it.inName><it.tokenIndex>}, words64=it.bits)>}>
715-
[BaseRecognizer setTokenNames:[[AMutableArray arrayWithObjects:@"\<invalid>", @"\<EOR>", @"\<DOWN>", @"\<UP>", <tokenNames:{it | @<it>}; separator=", ", wrap="\n ">, nil] retain]];
715+
[BaseRecognizer setTokenNames:[[AMutableArray arrayWithObjects:@"\<invalid>", @"\<EOR>", @"\<DOWN>", @"\<UP>", <tokenNames:{it | @<it>}; separator=", ", null="@\"<invalid>\"", wrap="\n ">, nil] retain]];
716716
[BaseRecognizer setGrammarFileName:@"<fileName>"];
717717
<synpreds:{pred | <synpred(pred)>}>
718718
}

0 commit comments

Comments
 (0)