From c94037def5f2c09e51e1695bc5966b02ceed442c Mon Sep 17 00:00:00 2001 From: Terence Parr Date: Wed, 1 Feb 2012 15:55:49 -0800 Subject: [PATCH] fixed regression "a returns [int i] : A ;" didn't work. --- tool/src/org/antlr/v4/parse/ANTLRLexer.g | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/tool/src/org/antlr/v4/parse/ANTLRLexer.g b/tool/src/org/antlr/v4/parse/ANTLRLexer.g index 54d034495..76fd5a62f 100644 --- a/tool/src/org/antlr/v4/parse/ANTLRLexer.g +++ b/tool/src/org/antlr/v4/parse/ANTLRLexer.g @@ -119,12 +119,7 @@ package org.antlr.v4.parse; @members { - public Token prevToken; - @Override - public void emit(Token token) { - super.emit(token); - if ( token.getChannel()==Token.DEFAULT_CHANNEL ) prevToken = token; - } + public boolean isLexer = false; } // -------- @@ -227,10 +222,10 @@ COMMENT ARG_OR_CHARSET options {k=1;} - : {prevToken.getType()!=RULE_REF}?=> LEXER_CHAR_SET {$type=LEXER_CHAR_SET;} - | {prevToken.getType()==RULE_REF}?=> ARG_ACTION {$type=ARG_ACTION;} + : {isLexer}?=> LEXER_CHAR_SET {$type=LEXER_CHAR_SET;} + | {!isLexer}?=> ARG_ACTION {$type=ARG_ACTION;} ; - + fragment LEXER_CHAR_SET : '[' ('\\]'|'\\'|~('\\'|']'))* ']' @@ -412,7 +407,7 @@ TOKENS_SPEC : 'tokens' WSNLCHARS* '{' ; IMPORT : 'import' ; FRAGMENT : 'fragment' ; -LEXER : 'lexer' ; +LEXER : 'lexer' {isLexer=true;} ; PARSER : 'parser' ; GRAMMAR : 'grammar' ; PROTECTED : 'protected' ;