Skip to content

Commit

Permalink
Fix possible NPE while editing ANTLR Grammar
Browse files Browse the repository at this point in the history
  • Loading branch information
lkishalmi committed Sep 22, 2022
1 parent 1c79f0f commit a1373cd
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,11 @@ protected ParseTreeListener createStructureListener() {

@Override
public void exitRule_(ANTLRv3Parser.Rule_Context ctx) {
AntlrStructureItem.RuleStructureItem rule = new AntlrStructureItem.RuleStructureItem(ctx.id_().getText(), getFileObject(), ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex() + 1);
structure.add(rule);
if (ctx.id_() != null) {
AntlrStructureItem.RuleStructureItem rule = new AntlrStructureItem.RuleStructureItem(
ctx.id_().getText(), getFileObject(), ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex() + 1);
structure.add(rule);
}
}

};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ protected ParseTreeListener createStructureListener() {

@Override
public void exitLexerRuleSpec(ANTLRv4Parser.LexerRuleSpecContext ctx) {
if (ctx.FRAGMENT() == null) {
if ((ctx.FRAGMENT() == null) && (ctx.TOKEN_REF() != null)) {
// Do not represent fragments in the structure
AntlrStructureItem.RuleStructureItem rule = new AntlrStructureItem.RuleStructureItem(ctx.TOKEN_REF().getText(), getFileObject(), ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex() + 1);
lexerStructure.add(rule);
Expand All @@ -220,8 +220,10 @@ public void exitLexerRuleSpec(ANTLRv4Parser.LexerRuleSpecContext ctx) {

@Override
public void exitParserRuleSpec(ANTLRv4Parser.ParserRuleSpecContext ctx) {
AntlrStructureItem.RuleStructureItem rule = new AntlrStructureItem.RuleStructureItem(ctx.RULE_REF().getText(), getFileObject(), ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex() + 1);
structure.add(rule);
if (ctx.RULE_REF() != null) {
AntlrStructureItem.RuleStructureItem rule = new AntlrStructureItem.RuleStructureItem(ctx.RULE_REF().getText(), getFileObject(), ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex() + 1);
structure.add(rule);
}
}

@Override
Expand Down

0 comments on commit a1373cd

Please sign in to comment.