Terence, thanks for the quick reply! That page was easy to find and I've read over it more than once. Perhaps I'm looking for detail that doesn't exist, but I was hoping to find a definitive reference along with explanations. For instance, the table at the top giving the general form of a grammar gives options, tokens, @actionName. Further down the Tokens Section shows usage of @lexer::members, the Actions section shows @header, @members and @after. With all these I'm left to guess at the exact usage given the short examples - plus I don't know if there are other attributes of @lexer::, for example, that I'm not seeing on this page.
What led me down this path is my attempt to follow along with exercises in Martin Fowler's Domain Specific Languages using ANTLRv3, specifically the following that is reported as an error in v4:
grammar Hello;
@header {
package com.ryan;
}
@lexer::header {
package com.ryan;
}
antlr4 complains that I'm redefining 'header' with the @lexer::header block.
Ryan