blob: dc243668be114454a587f9e930f25ea2de290927 [file] [log] [blame]
grammar t039labels;
options {
language =Cpp;
}
@lexer::includes
{
#include "UserTestTraits.hpp"
#include <iostream>
}
@lexer::namespace
{ Antlr3Test }
@parser::includes {
#include "UserTestTraits.hpp"
#include "t039labelsLexer.hpp"
}
@parser::namespace
{ Antlr3Test }
@parser::members {
class TokenList {
public:
TokenList() : token() {}
TokenList(TokenList const& other) : tokens(other.tokens), token(other.token) {}
TokenList(ImplTraits::TokenPtrsListType const& lst, ImplTraits::CommonTokenType *t) : tokens(lst), token(t) {}
//private:
ImplTraits::TokenPtrsListType tokens;
ImplTraits::CommonTokenType* token;
};
}
a returns [t039labelsParser::TokenList retval]
: ids+=A ( ',' ids+=(A|B) )* C D w=. ids+=. F EOF
{ retval = t039labelsParser::TokenList($ids, $w); }
;
A: 'a'..'z';
B: '0'..'9';
C: a='A' { std::cout << $a << std::endl; };
D: a='FOOBAR' { std::cout << $a << std::endl; };
E: 'GNU' a=. { std::cout << $a << std::endl; };
F: 'BLARZ' a=EOF { std::cout << $a << std::endl; };
WS: ' '+ { $channel = HIDDEN; };