/* $ANTLR 2.7.1: "gettext.g" -> "GettextLexer.cpp"$ */ #include "GettextLexer.hpp" #include "antlr/CharBuffer.hpp" #include "antlr/TokenStreamException.hpp" #include "antlr/TokenStreamIOException.hpp" #include "antlr/TokenStreamRecognitionException.hpp" #include "antlr/CharStreamException.hpp" #include "antlr/CharStreamIOException.hpp" #include "antlr/NoViableAltForCharException.hpp" #line 1 "gettext.g" #line 14 "GettextLexer.cpp" GettextLexer::GettextLexer(ANTLR_USE_NAMESPACE(std)istream& in) : ANTLR_USE_NAMESPACE(antlr)CharScanner(new ANTLR_USE_NAMESPACE(antlr)CharBuffer(in)) { setCaseSensitive(true); initLiterals(); } GettextLexer::GettextLexer(ANTLR_USE_NAMESPACE(antlr)InputBuffer& ib) : ANTLR_USE_NAMESPACE(antlr)CharScanner(ib) { setCaseSensitive(true); initLiterals(); } GettextLexer::GettextLexer(const ANTLR_USE_NAMESPACE(antlr)LexerSharedInputState& state) : ANTLR_USE_NAMESPACE(antlr)CharScanner(state) { setCaseSensitive(true); initLiterals(); } void GettextLexer::initLiterals() { } bool GettextLexer::getCaseSensitiveLiterals() const { return true; } ANTLR_USE_NAMESPACE(antlr)RefToken GettextLexer::nextToken() { ANTLR_USE_NAMESPACE(antlr)RefToken theRetToken; for (;;) { ANTLR_USE_NAMESPACE(antlr)RefToken theRetToken; int _ttype = ANTLR_USE_NAMESPACE(antlr)Token::INVALID_TYPE; resetText(); try { // for char stream error handling try { // for lexical error handling switch ( LA(1)) { case static_cast('\t'): case static_cast('\n'): case static_cast('\r'): case static_cast(' '): { mWS(true); theRetToken=_returnToken; break; } case static_cast('['): { mL_BRACKET(true); theRetToken=_returnToken; break; } case static_cast(']'): { mR_BRACKET(true); theRetToken=_returnToken; break; } case static_cast('0'): case static_cast('1'): case static_cast('2'): case static_cast('3'): case static_cast('4'): case static_cast('5'): case static_cast('6'): case static_cast('7'): case static_cast('8'): case static_cast('9'): { mT_INT(true); theRetToken=_returnToken; break; } case static_cast('#'): { mT_COMMENT(true); theRetToken=_returnToken; break; } case static_cast('m'): { mMSG_TAG(true); theRetToken=_returnToken; break; } case static_cast('"'): { mT_STRING(true); theRetToken=_returnToken; break; } default: { if (LA(1)==EOF_CHAR) {uponEOF(); _returnToken = makeToken(ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE);} else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine());} } } if ( !_returnToken ) goto tryAgain; // found SKIP token _ttype = _returnToken->getType(); _returnToken->setType(_ttype); return _returnToken; } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& e) { throw ANTLR_USE_NAMESPACE(antlr)TokenStreamRecognitionException(e); } } catch (ANTLR_USE_NAMESPACE(antlr)CharStreamIOException& csie) { throw ANTLR_USE_NAMESPACE(antlr)TokenStreamIOException(csie.io); } catch (ANTLR_USE_NAMESPACE(antlr)CharStreamException& cse) { throw ANTLR_USE_NAMESPACE(antlr)TokenStreamException(cse.getMessage()); } tryAgain:; } } void GettextLexer::mWS(bool _createToken) { int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length(); _ttype = WS; int _saveIndex; { switch ( LA(1)) { case static_cast(' '): { match(static_cast(' ')); break; } case static_cast('\t'): { match(static_cast('\t')); break; } case static_cast('\n'): case static_cast('\r'): { { switch ( LA(1)) { case static_cast('\n'): { match(static_cast('\n')); break; } case static_cast('\r'): { match("\r\n"); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine()); } } } #line 110 "gettext.g" newline(); #line 173 "GettextLexer.cpp" break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine()); } } } #line 111 "gettext.g" _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP; #line 184 "GettextLexer.cpp" if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) { _token = makeToken(_ttype); _token->setText(text.substr(_begin, text.length()-_begin)); } _returnToken = _token; _saveIndex=0; } void GettextLexer::mL_BRACKET(bool _createToken) { int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length(); _ttype = L_BRACKET; int _saveIndex; match(static_cast('[')); if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) { _token = makeToken(_ttype); _token->setText(text.substr(_begin, text.length()-_begin)); } _returnToken = _token; _saveIndex=0; } void GettextLexer::mR_BRACKET(bool _createToken) { int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length(); _ttype = R_BRACKET; int _saveIndex; match(static_cast(']')); if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) { _token = makeToken(_ttype); _token->setText(text.substr(_begin, text.length()-_begin)); } _returnToken = _token; _saveIndex=0; } void GettextLexer::mT_INT(bool _createToken) { int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length(); _ttype = T_INT; int _saveIndex; { int _cnt26=0; for (;;) { if (((LA(1) >= static_cast('0') && LA(1) <= static_cast('9')))) { matchRange(static_cast('0'),static_cast('9')); } else { if ( _cnt26>=1 ) { goto _loop26; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine());} } _cnt26++; } _loop26:; } if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) { _token = makeToken(_ttype); _token->setText(text.substr(_begin, text.length()-_begin)); } _returnToken = _token; _saveIndex=0; } void GettextLexer::mT_COMMENT(bool _createToken) { int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length(); _ttype = T_COMMENT; int _saveIndex; match(static_cast('#')); { for (;;) { if ((_tokenSet_0.member(LA(1)))) { matchNot(static_cast('\n')); } else { goto _loop29; } } _loop29:; } if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) { _token = makeToken(_ttype); _token->setText(text.substr(_begin, text.length()-_begin)); } _returnToken = _token; _saveIndex=0; } void GettextLexer::mMSG_TAG(bool _createToken) { int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length(); _ttype = MSG_TAG; int _saveIndex; match("msg"); { switch ( LA(1)) { case static_cast('i'): { { match("id"); } { if ((LA(1)==static_cast('_'))) { match("_plural"); #line 126 "gettext.g" _ttype = T_MSGID_PLURAL; #line 292 "GettextLexer.cpp" } else { match(""); #line 125 "gettext.g" _ttype = T_MSGID; #line 298 "GettextLexer.cpp" } } break; } case static_cast('s'): { match("str"); #line 128 "gettext.g" _ttype = T_MSGSTR; #line 309 "GettextLexer.cpp" break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine()); } } } if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) { _token = makeToken(_ttype); _token->setText(text.substr(_begin, text.length()-_begin)); } _returnToken = _token; _saveIndex=0; } void GettextLexer::mT_STRING(bool _createToken) { int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length(); _ttype = T_STRING; int _saveIndex; { int _cnt43=0; for (;;) { if ((LA(1)==static_cast('"'))) { _saveIndex=text.length(); match(static_cast('"')); text.erase(_saveIndex); { for (;;) { if ((LA(1)==static_cast('\\'))) { mESC(false); } else if ((_tokenSet_1.member(LA(1)))) { matchNot(static_cast('"')); } else { goto _loop37; } } _loop37:; } { _saveIndex=text.length(); match(static_cast('"')); text.erase(_saveIndex); { for (;;) { switch ( LA(1)) { case static_cast(' '): { match(static_cast(' ')); break; } case static_cast('t'): { match(static_cast('t')); break; } default: { goto _loop40; } } } _loop40:; } _saveIndex=text.length(); match(static_cast('\n')); text.erase(_saveIndex); #line 133 "gettext.g" newline(); #line 383 "GettextLexer.cpp" { for (;;) { switch ( LA(1)) { case static_cast(' '): { _saveIndex=text.length(); match(static_cast(' ')); text.erase(_saveIndex); break; } case static_cast('\t'): { _saveIndex=text.length(); match(static_cast('\t')); text.erase(_saveIndex); break; } default: { goto _loop42; } } } _loop42:; } } } else { if ( _cnt43>=1 ) { goto _loop43; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine());} } _cnt43++; } _loop43:; } if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) { _token = makeToken(_ttype); _token->setText(text.substr(_begin, text.length()-_begin)); } _returnToken = _token; _saveIndex=0; } void GettextLexer::mESC(bool _createToken) { int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length(); _ttype = ESC; int _saveIndex; match(static_cast('\\')); { switch ( LA(1)) { case static_cast('n'): { match(static_cast('n')); break; } case static_cast('r'): { match(static_cast('r')); break; } case static_cast('t'): { match(static_cast('t')); break; } case static_cast('b'): { match(static_cast('b')); break; } case static_cast('f'): { match(static_cast('f')); break; } case static_cast('"'): { match(static_cast('"')); break; } case static_cast('\''): { match(static_cast('\'')); break; } case static_cast('\\'): { match(static_cast('\\')); break; } case static_cast('0'): case static_cast('1'): case static_cast('2'): case static_cast('3'): { { matchRange(static_cast('0'),static_cast('3')); } { if (((LA(1) >= static_cast('0') && LA(1) <= static_cast('9')))) { { matchRange(static_cast('0'),static_cast('9')); } { if (((LA(1) >= static_cast('0') && LA(1) <= static_cast('9')))) { matchRange(static_cast('0'),static_cast('9')); } else if (((LA(1) >= static_cast('\0') && LA(1) <= static_cast('\377')))) { } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine()); } } } else if (((LA(1) >= static_cast('\0') && LA(1) <= static_cast('\377')))) { } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine()); } } break; } case static_cast('4'): case static_cast('5'): case static_cast('6'): case static_cast('7'): { { matchRange(static_cast('4'),static_cast('7')); } { if (((LA(1) >= static_cast('0') && LA(1) <= static_cast('9')))) { { matchRange(static_cast('0'),static_cast('9')); } } else if (((LA(1) >= static_cast('\0') && LA(1) <= static_cast('\377')))) { } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine()); } } break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine()); } } } if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) { _token = makeToken(_ttype); _token->setText(text.substr(_begin, text.length()-_begin)); } _returnToken = _token; _saveIndex=0; } const unsigned long GettextLexer::_tokenSet_0_data_[] = { 4294966271UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; const ANTLR_USE_NAMESPACE(antlr)BitSet GettextLexer::_tokenSet_0(_tokenSet_0_data_,16); const unsigned long GettextLexer::_tokenSet_1_data_[] = { 4294967295UL, 4294967291UL, 4026531839UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; const ANTLR_USE_NAMESPACE(antlr)BitSet GettextLexer::_tokenSet_1(_tokenSet_1_data_,16);