From bd9e6617827818fd043452c08c606f07b78014a0 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdesdk@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- poxml/GettextLexer.cpp | 550 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 550 insertions(+) create mode 100644 poxml/GettextLexer.cpp (limited to 'poxml/GettextLexer.cpp') diff --git a/poxml/GettextLexer.cpp b/poxml/GettextLexer.cpp new file mode 100644 index 00000000..cc768114 --- /dev/null +++ b/poxml/GettextLexer.cpp @@ -0,0 +1,550 @@ +/* $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); + -- cgit v1.2.1