diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | bd9e6617827818fd043452c08c606f07b78014a0 (patch) | |
tree | 425bb4c3168f9c02f10150f235d2cb998dcc6108 /poxml/GettextParser.cpp | |
download | tdesdk-bd9e6617827818fd043452c08c606f07b78014a0.tar.gz tdesdk-bd9e6617827818fd043452c08c606f07b78014a0.zip |
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
Diffstat (limited to 'poxml/GettextParser.cpp')
-rw-r--r-- | poxml/GettextParser.cpp | 414 |
1 files changed, 414 insertions, 0 deletions
diff --git a/poxml/GettextParser.cpp b/poxml/GettextParser.cpp new file mode 100644 index 00000000..90651eaa --- /dev/null +++ b/poxml/GettextParser.cpp @@ -0,0 +1,414 @@ +/* $ANTLR 2.7.1: "gettext.g" -> "GettextParser.cpp"$ */ +#include "GettextParser.hpp" +#include "antlr/NoViableAltException.hpp" +#include "antlr/SemanticException.hpp" +#line 12 "gettext.g" + +#include <iostream> +#include "GettextLexer.hpp" +#include "GettextParser.hpp" +#include "antlr/AST.hpp" +#include "antlr/CommonAST.hpp" + +/* +int main() +{ + ANTLR_USING_NAMESPACE(std) + ANTLR_USING_NAMESPACE(antlr) + try { + GettextLexer lexer(cin); + GettextParser parser(lexer); + parser.file(); + + } catch(exception& e) { + cerr << "exception: " << e.what() << endl; + } +} +*/ + +#line 30 "GettextParser.cpp" +GettextParser::GettextParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf, int k) +: ANTLR_USE_NAMESPACE(antlr)LLkParser(tokenBuf,k) +{ + setTokenNames(_tokenNames); +} + +GettextParser::GettextParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf) +: ANTLR_USE_NAMESPACE(antlr)LLkParser(tokenBuf,1) +{ + setTokenNames(_tokenNames); +} + +GettextParser::GettextParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer, int k) +: ANTLR_USE_NAMESPACE(antlr)LLkParser(lexer,k) +{ + setTokenNames(_tokenNames); +} + +GettextParser::GettextParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer) +: ANTLR_USE_NAMESPACE(antlr)LLkParser(lexer,1) +{ + setTokenNames(_tokenNames); +} + +GettextParser::GettextParser(const ANTLR_USE_NAMESPACE(antlr)ParserSharedInputState& state) +: ANTLR_USE_NAMESPACE(antlr)LLkParser(state,1) +{ + setTokenNames(_tokenNames); +} + + MsgList GettextParser::file() { +#line 43 "gettext.g" + MsgList ml ; +#line 64 "GettextParser.cpp" +#line 43 "gettext.g" + + string c, mi, ms; + MsgBlock mb; + MsgList ml2; + +#line 71 "GettextParser.cpp" + + try { // for error handling + bool synPredMatched3 = false; + if (((LA(1)==T_MSGID||LA(1)==T_COMMENT))) { + int _m3 = mark(); + synPredMatched3 = true; + inputState->guessing++; + try { + { + comment(); + match(T_MSGID); + } + } + catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { + synPredMatched3 = false; + } + rewind(_m3); + inputState->guessing--; + } + if ( synPredMatched3 ) { + { + mb=file_block(); + ml2=file(); + if ( inputState->guessing==0 ) { +#line 49 "gettext.g" + ml = ml2; ml.append(mb); +#line 98 "GettextParser.cpp" + } + } + } + else { + bool synPredMatched6 = false; + if (((LA(1)==ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE||LA(1)==T_COMMENT))) { + int _m6 = mark(); + synPredMatched6 = true; + inputState->guessing++; + try { + { + comment(); + match(ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE); + } + } + catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { + synPredMatched6 = false; + } + rewind(_m6); + inputState->guessing--; + } + if ( synPredMatched6 ) { + c=comment(); + if ( inputState->guessing==0 ) { +#line 50 "gettext.g" + (void)c; +#line 125 "GettextParser.cpp" + } + } + else { + throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); + } + } + } + catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { + if( inputState->guessing == 0 ) { + reportError(ex); + consume(); + consumeUntil(_tokenSet_0); + } else { + throw ex; + } + } + return ml ; +} + +string GettextParser::comment() { +#line 76 "gettext.g" + string s; +#line 148 "GettextParser.cpp" + ANTLR_USE_NAMESPACE(antlr)RefToken c = ANTLR_USE_NAMESPACE(antlr)nullToken; +#line 76 "gettext.g" + + string r; + +#line 154 "GettextParser.cpp" + + try { // for error handling + if ((LA(1)==T_COMMENT)) { + { + c = LT(1); + match(T_COMMENT); + r=comment(); + if ( inputState->guessing==0 ) { +#line 80 "gettext.g" + s = c->getText() + r; +#line 165 "GettextParser.cpp" + } + } + } + else if ((LA(1)==ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE||LA(1)==T_MSGID)) { + } + else { + throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); + } + + } + catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { + if( inputState->guessing == 0 ) { + reportError(ex); + consume(); + consumeUntil(_tokenSet_1); + } else { + throw ex; + } + } + return s; +} + + MsgBlock GettextParser::file_block() { +#line 53 "gettext.g" + MsgBlock mb ; +#line 191 "GettextParser.cpp" +#line 53 "gettext.g" + + string c, mi, mip, ms; + +#line 196 "GettextParser.cpp" + + try { // for error handling + c=comment(); + mi=msgid(); + { + if ((LA(1)==T_MSGSTR)) { + { + ms=msgstr(); + if ( inputState->guessing==0 ) { +#line 59 "gettext.g" + + mb.comment = QString::fromUtf8(c.c_str()); + mb.msgid = QString::fromUtf8(mi.c_str()); + mb.msgstr = QString::fromUtf8(ms.c_str()); + +#line 212 "GettextParser.cpp" + } + } + } + else if ((LA(1)==T_MSGID_PLURAL)) { + { + mip=msgid_plural(); + ms=msgstr_plural(); + if ( inputState->guessing==0 ) { +#line 66 "gettext.g" + + mb.comment = QString::fromUtf8(c.c_str()); + mb.msgid = QString::fromUtf8(mi.c_str()); + mb.msgid_plural = QString::fromUtf8(mip.c_str()); + mb.msgstr = QString::fromUtf8(ms.c_str()); + +#line 228 "GettextParser.cpp" + } + } + } + else { + throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); + } + + } + } + catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { + if( inputState->guessing == 0 ) { + reportError(ex); + consume(); + consumeUntil(_tokenSet_2); + } else { + throw ex; + } + } + return mb ; +} + +string GettextParser::msgid() { +#line 84 "gettext.g" + string s; +#line 253 "GettextParser.cpp" + ANTLR_USE_NAMESPACE(antlr)RefToken t = ANTLR_USE_NAMESPACE(antlr)nullToken; + + try { // for error handling + match(T_MSGID); + t = LT(1); + match(T_STRING); + if ( inputState->guessing==0 ) { +#line 85 "gettext.g" + s = t->getText(); +#line 263 "GettextParser.cpp" + } + } + catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { + if( inputState->guessing == 0 ) { + reportError(ex); + consume(); + consumeUntil(_tokenSet_3); + } else { + throw ex; + } + } + return s; +} + +string GettextParser::msgstr() { +#line 92 "gettext.g" + string s; +#line 281 "GettextParser.cpp" + ANTLR_USE_NAMESPACE(antlr)RefToken t = ANTLR_USE_NAMESPACE(antlr)nullToken; + + try { // for error handling + match(T_MSGSTR); + t = LT(1); + match(T_STRING); + if ( inputState->guessing==0 ) { +#line 93 "gettext.g" + s = t->getText(); +#line 291 "GettextParser.cpp" + } + } + catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { + if( inputState->guessing == 0 ) { + reportError(ex); + consume(); + consumeUntil(_tokenSet_2); + } else { + throw ex; + } + } + return s; +} + +string GettextParser::msgid_plural() { +#line 88 "gettext.g" + string s; +#line 309 "GettextParser.cpp" + ANTLR_USE_NAMESPACE(antlr)RefToken t = ANTLR_USE_NAMESPACE(antlr)nullToken; + + try { // for error handling + match(T_MSGID_PLURAL); + t = LT(1); + match(T_STRING); + if ( inputState->guessing==0 ) { +#line 89 "gettext.g" + s = t->getText(); +#line 319 "GettextParser.cpp" + } + } + catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { + if( inputState->guessing == 0 ) { + reportError(ex); + consume(); + consumeUntil(_tokenSet_4); + } else { + throw ex; + } + } + return s; +} + +string GettextParser::msgstr_plural() { +#line 96 "gettext.g" + string s; +#line 337 "GettextParser.cpp" + ANTLR_USE_NAMESPACE(antlr)RefToken n = ANTLR_USE_NAMESPACE(antlr)nullToken; + ANTLR_USE_NAMESPACE(antlr)RefToken t = ANTLR_USE_NAMESPACE(antlr)nullToken; + + try { // for error handling + { + int _cnt18=0; + for (;;) { + if ((LA(1)==T_MSGSTR)) { + match(T_MSGSTR); + match(L_BRACKET); + n = LT(1); + match(T_INT); + match(R_BRACKET); + t = LT(1); + match(T_STRING); + if ( inputState->guessing==0 ) { +#line 98 "gettext.g" + s = t->getText(); +#line 356 "GettextParser.cpp" + } + } + else { + if ( _cnt18>=1 ) { goto _loop18; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());} + } + + _cnt18++; + } + _loop18:; + } + } + catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { + if( inputState->guessing == 0 ) { + reportError(ex); + consume(); + consumeUntil(_tokenSet_2); + } else { + throw ex; + } + } + return s; +} + +const char* GettextParser::_tokenNames[] = { + "<0>", + "EOF", + "<2>", + "NULL_TREE_LOOKAHEAD", + "T_MSGID", + "T_COMMENT", + "T_STRING", + "T_MSGID_PLURAL", + "T_MSGSTR", + "L_BRACKET", + "T_INT", + "R_BRACKET", + "WS", + "MSG_TAG", + "ESC", + 0 +}; + +const unsigned long GettextParser::_tokenSet_0_data_[] = { 2UL, 0UL, 0UL, 0UL }; +// EOF +const ANTLR_USE_NAMESPACE(antlr)BitSet GettextParser::_tokenSet_0(_tokenSet_0_data_,4); +const unsigned long GettextParser::_tokenSet_1_data_[] = { 18UL, 0UL, 0UL, 0UL }; +// EOF T_MSGID +const ANTLR_USE_NAMESPACE(antlr)BitSet GettextParser::_tokenSet_1(_tokenSet_1_data_,4); +const unsigned long GettextParser::_tokenSet_2_data_[] = { 50UL, 0UL, 0UL, 0UL }; +// EOF T_MSGID T_COMMENT +const ANTLR_USE_NAMESPACE(antlr)BitSet GettextParser::_tokenSet_2(_tokenSet_2_data_,4); +const unsigned long GettextParser::_tokenSet_3_data_[] = { 384UL, 0UL, 0UL, 0UL }; +// T_MSGID_PLURAL T_MSGSTR +const ANTLR_USE_NAMESPACE(antlr)BitSet GettextParser::_tokenSet_3(_tokenSet_3_data_,4); +const unsigned long GettextParser::_tokenSet_4_data_[] = { 256UL, 0UL, 0UL, 0UL }; +// T_MSGSTR +const ANTLR_USE_NAMESPACE(antlr)BitSet GettextParser::_tokenSet_4(_tokenSet_4_data_,4); + + |