What's the difference between defining a token in the tokens block and defining a token as a lexer index?
                +1 
                A: 
                
                
              
            The lexer tokens are the tokens that antlr generates through parsing a certain combination of characters, for example:
fragment
F_W :   (' '|'\t'|'\r'|'\n'|'\f')*
    ;
However, the tokens in the token block are the visual tokens that users create for the benefits of parsing; they don't have a direct mappings to a set of character series. For example,
tokens { BLOCK; }
gives you a visual token BLOCK that you can put ahead or on top of your block rule to mark the subsequest session is a block rule like this:
block: 
'{' expression* '}' ->
 BLOCK^ expression*
;
                  Winston Chen
                   2009-07-12 01:34:06