1grammar t039labels; 2options { 3 language =Cpp; 4} 5 6@lexer::includes 7{ 8#include "UserTestTraits.hpp" 9#include <iostream> 10} 11@lexer::namespace 12{ Antlr3Test } 13 14@parser::includes { 15#include "UserTestTraits.hpp" 16#include "t039labelsLexer.hpp" 17} 18@parser::namespace 19{ Antlr3Test } 20@parser::members { 21 class TokenList { 22 public: 23 TokenList() : token() {} 24 TokenList(TokenList const& other) : tokens(other.tokens), token(other.token) {} 25 TokenList(ImplTraits::TokenPtrsListType const& lst, ImplTraits::CommonTokenType *t) : tokens(lst), token(t) {} 26 //private: 27 ImplTraits::TokenPtrsListType tokens; 28 ImplTraits::CommonTokenType* token; 29 }; 30} 31a returns [t039labelsParser::TokenList retval] 32 : ids+=A ( ',' ids+=(A|B) )* C D w=. ids+=. F EOF 33 { retval = t039labelsParser::TokenList($ids, $w); } 34 ; 35 36A: 'a'..'z'; 37B: '0'..'9'; 38C: a='A' { std::cout << $a << std::endl; }; 39D: a='FOOBAR' { std::cout << $a << std::endl; }; 40E: 'GNU' a=. { std::cout << $a << std::endl; }; 41F: 'BLARZ' a=EOF { std::cout << $a << std::endl; }; 42 43WS: ' '+ { $channel = HIDDEN; }; 44