summaryrefslogtreecommitdiffstats
path: root/poxml/GettextLexer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'poxml/GettextLexer.cpp')
-rw-r--r--poxml/GettextLexer.cpp550
1 files changed, 550 insertions, 0 deletions
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<unsigned char>('\t'):
+ case static_cast<unsigned char>('\n'):
+ case static_cast<unsigned char>('\r'):
+ case static_cast<unsigned char>(' '):
+ {
+ mWS(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case static_cast<unsigned char>('['):
+ {
+ mL_BRACKET(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case static_cast<unsigned char>(']'):
+ {
+ mR_BRACKET(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case static_cast<unsigned char>('0'):
+ case static_cast<unsigned char>('1'):
+ case static_cast<unsigned char>('2'):
+ case static_cast<unsigned char>('3'):
+ case static_cast<unsigned char>('4'):
+ case static_cast<unsigned char>('5'):
+ case static_cast<unsigned char>('6'):
+ case static_cast<unsigned char>('7'):
+ case static_cast<unsigned char>('8'):
+ case static_cast<unsigned char>('9'):
+ {
+ mT_INT(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case static_cast<unsigned char>('#'):
+ {
+ mT_COMMENT(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case static_cast<unsigned char>('m'):
+ {
+ mMSG_TAG(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case static_cast<unsigned char>('"'):
+ {
+ 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<unsigned char>(' '):
+ {
+ match(static_cast<unsigned char>(' '));
+ break;
+ }
+ case static_cast<unsigned char>('\t'):
+ {
+ match(static_cast<unsigned char>('\t'));
+ break;
+ }
+ case static_cast<unsigned char>('\n'):
+ case static_cast<unsigned char>('\r'):
+ {
+ {
+ switch ( LA(1)) {
+ case static_cast<unsigned char>('\n'):
+ {
+ match(static_cast<unsigned char>('\n'));
+ break;
+ }
+ case static_cast<unsigned char>('\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<unsigned char>('['));
+ 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<unsigned char>(']'));
+ 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<unsigned char>('0') && LA(1) <= static_cast<unsigned char>('9')))) {
+ matchRange(static_cast<unsigned char>('0'),static_cast<unsigned char>('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<unsigned char>('#'));
+ {
+ for (;;) {
+ if ((_tokenSet_0.member(LA(1)))) {
+ matchNot(static_cast<unsigned char>('\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<unsigned char>('i'):
+ {
+ {
+ match("id");
+ }
+ {
+ if ((LA(1)==static_cast<unsigned char>('_'))) {
+ 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<unsigned char>('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<unsigned char>('"'))) {
+ _saveIndex=text.length();
+ match(static_cast<unsigned char>('"'));
+ text.erase(_saveIndex);
+ {
+ for (;;) {
+ if ((LA(1)==static_cast<unsigned char>('\\'))) {
+ mESC(false);
+ }
+ else if ((_tokenSet_1.member(LA(1)))) {
+ matchNot(static_cast<unsigned char>('"'));
+ }
+ else {
+ goto _loop37;
+ }
+
+ }
+ _loop37:;
+ }
+ {
+ _saveIndex=text.length();
+ match(static_cast<unsigned char>('"'));
+ text.erase(_saveIndex);
+ {
+ for (;;) {
+ switch ( LA(1)) {
+ case static_cast<unsigned char>(' '):
+ {
+ match(static_cast<unsigned char>(' '));
+ break;
+ }
+ case static_cast<unsigned char>('t'):
+ {
+ match(static_cast<unsigned char>('t'));
+ break;
+ }
+ default:
+ {
+ goto _loop40;
+ }
+ }
+ }
+ _loop40:;
+ }
+ _saveIndex=text.length();
+ match(static_cast<unsigned char>('\n'));
+ text.erase(_saveIndex);
+#line 133 "gettext.g"
+ newline();
+#line 383 "GettextLexer.cpp"
+ {
+ for (;;) {
+ switch ( LA(1)) {
+ case static_cast<unsigned char>(' '):
+ {
+ _saveIndex=text.length();
+ match(static_cast<unsigned char>(' '));
+ text.erase(_saveIndex);
+ break;
+ }
+ case static_cast<unsigned char>('\t'):
+ {
+ _saveIndex=text.length();
+ match(static_cast<unsigned char>('\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<unsigned char>('\\'));
+ {
+ switch ( LA(1)) {
+ case static_cast<unsigned char>('n'):
+ {
+ match(static_cast<unsigned char>('n'));
+ break;
+ }
+ case static_cast<unsigned char>('r'):
+ {
+ match(static_cast<unsigned char>('r'));
+ break;
+ }
+ case static_cast<unsigned char>('t'):
+ {
+ match(static_cast<unsigned char>('t'));
+ break;
+ }
+ case static_cast<unsigned char>('b'):
+ {
+ match(static_cast<unsigned char>('b'));
+ break;
+ }
+ case static_cast<unsigned char>('f'):
+ {
+ match(static_cast<unsigned char>('f'));
+ break;
+ }
+ case static_cast<unsigned char>('"'):
+ {
+ match(static_cast<unsigned char>('"'));
+ break;
+ }
+ case static_cast<unsigned char>('\''):
+ {
+ match(static_cast<unsigned char>('\''));
+ break;
+ }
+ case static_cast<unsigned char>('\\'):
+ {
+ match(static_cast<unsigned char>('\\'));
+ break;
+ }
+ case static_cast<unsigned char>('0'):
+ case static_cast<unsigned char>('1'):
+ case static_cast<unsigned char>('2'):
+ case static_cast<unsigned char>('3'):
+ {
+ {
+ matchRange(static_cast<unsigned char>('0'),static_cast<unsigned char>('3'));
+ }
+ {
+ if (((LA(1) >= static_cast<unsigned char>('0') && LA(1) <= static_cast<unsigned char>('9')))) {
+ {
+ matchRange(static_cast<unsigned char>('0'),static_cast<unsigned char>('9'));
+ }
+ {
+ if (((LA(1) >= static_cast<unsigned char>('0') && LA(1) <= static_cast<unsigned char>('9')))) {
+ matchRange(static_cast<unsigned char>('0'),static_cast<unsigned char>('9'));
+ }
+ else if (((LA(1) >= static_cast<unsigned char>('\0') && LA(1) <= static_cast<unsigned char>('\377')))) {
+ }
+ else {
+ throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine());
+ }
+
+ }
+ }
+ else if (((LA(1) >= static_cast<unsigned char>('\0') && LA(1) <= static_cast<unsigned char>('\377')))) {
+ }
+ else {
+ throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine());
+ }
+
+ }
+ break;
+ }
+ case static_cast<unsigned char>('4'):
+ case static_cast<unsigned char>('5'):
+ case static_cast<unsigned char>('6'):
+ case static_cast<unsigned char>('7'):
+ {
+ {
+ matchRange(static_cast<unsigned char>('4'),static_cast<unsigned char>('7'));
+ }
+ {
+ if (((LA(1) >= static_cast<unsigned char>('0') && LA(1) <= static_cast<unsigned char>('9')))) {
+ {
+ matchRange(static_cast<unsigned char>('0'),static_cast<unsigned char>('9'));
+ }
+ }
+ else if (((LA(1) >= static_cast<unsigned char>('\0') && LA(1) <= static_cast<unsigned char>('\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);
+