From: <ibr...@us...> - 2013-04-01 23:14:55
|
Revision: 4603 http://sourceforge.net/p/tora/code/4603 Author: ibre5041 Date: 2013-04-01 23:14:51 +0000 (Mon, 01 Apr 2013) Log Message: ----------- Modified Paths: -------------- branches/tora3/extlibs/parsing.cpp/Makefile branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g branches/tora3/extlibs/parsing.cpp/antlr-complete-3.5.1-SNAPSHOT.jar branches/tora3/extlibs/parsing.cpp/org/antlr/codegen/templates/Cpp/Cpp.stg branches/tora3/extlibs/parsing.cpp/t0.cpp branches/tora3/src/editor/tocustomlexer.cpp branches/tora3/src/editor/tocustomlexer.h branches/tora3/src/parsing/PLSQLGuiLexer.cc branches/tora3/src/parsing/PLSQLGuiLexer.hpp branches/tora3/src/parsing/tsqllexer.h branches/tora3/src/parsing/tsqllexeroracle2.cc branches/tora3/src/tests/test4window.cpp branches/tora3/src/tests/test4window.h Modified: branches/tora3/extlibs/parsing.cpp/Makefile =================================================================== --- branches/tora3/extlibs/parsing.cpp/Makefile 2013-03-28 15:34:56 UTC (rev 4602) +++ branches/tora3/extlibs/parsing.cpp/Makefile 2013-04-01 23:14:51 UTC (rev 4603) @@ -8,11 +8,13 @@ GRAMMAROPTIONS=-report -Xconversiontimeout 1500000 -Xmultithreaded -Xwatchconversion ANTLR = antlr-complete-3.5.1-SNAPSHOT.jar +.SUFFIXES: + INCLUDES= -I. -I../libantlr3cpp-3.5.1/include/ LIBS = -CFLAGS=-ggdb -O0 -fno-inline +CFLAGS=-ggdb3 -O0 -fno-inline ##CFLAGS=-ggdb3 -O3 TOBJS= utils.o Modified: branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g =================================================================== --- branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-03-28 15:34:56 UTC (rev 4602) +++ branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-04-01 23:14:51 UTC (rev 4603) @@ -180,9 +180,9 @@ ) => ( - '@' ('@')? - | '/' - | 'ACCEPT' + // '@' ('@')? + //| '/' + 'ACCEPT' | 'APPEND' | 'ARCHIVE' | 'ATTRIBUTE' @@ -1135,7 +1135,7 @@ ; //{ Rule #360 <NEWLINE> -fragment +//fragment NEWLINE : '\r' (options{greedy=true;}: '\n')? | '\n' @@ -1143,15 +1143,15 @@ //} //{ Rule #522 <SPACE> -fragment +//fragment SPACE : (' ' | '\t')+ ; //} -WHITE - : (SPACE | NEWLINE) - ; +// WHITE +// : (SPACE | NEWLINE) +// ; fragment QUESTION_MARK Modified: branches/tora3/extlibs/parsing.cpp/antlr-complete-3.5.1-SNAPSHOT.jar =================================================================== (Binary files differ) Modified: branches/tora3/extlibs/parsing.cpp/org/antlr/codegen/templates/Cpp/Cpp.stg =================================================================== --- branches/tora3/extlibs/parsing.cpp/org/antlr/codegen/templates/Cpp/Cpp.stg 2013-03-28 15:34:56 UTC (rev 4602) +++ branches/tora3/extlibs/parsing.cpp/org/antlr/codegen/templates/Cpp/Cpp.stg 2013-04-01 23:14:51 UTC (rev 4603) @@ -158,6 +158,24 @@ <beginNamespace(actions)> +const ANTLR_UINT8* <name>Tokens::getTokenName(ANTLR_INT32 index) const +{ + if( EOF_TOKEN == index) + return (ANTLR_UINT8*) "\<EOF>"; + return TokenNames[index]; +} + +/** \brief Table of all token names in symbolic order, mainly used for debugging. + */ +ANTLR_UINT8* <name>Tokens::TokenNames[<length(tokens)>+4] + = { + (ANTLR_UINT8*) "\<invalid>", /* String to print to indicate an invalid token */ + (ANTLR_UINT8*) "\<EOR>", + (ANTLR_UINT8*) "\<DOWN>", + (ANTLR_UINT8*) "\<UP>", + <rest(tokens):{it |(ANTLR_UINT8*) "<it.name>",//<it.type>}; separator="\n"> + }; + /** String literals used by <name> that we must do things like MATCHS() with. * C will normally just lay down 8 bit characters, and you can use L"xxx" to * get wchar_t, but wchar_t is 16 bits on Windows, which is not UTF32 and so @@ -345,7 +363,6 @@ { public: /** Symbolic definitions of all the tokens that the <grammarType()> will work with. - * \{ * * Antlr will define EOF, but we can't use that as it it is too common in * in C header files and that would be confusing. There is no way to filter this out at the moment @@ -358,6 +375,10 @@ <tokens:{it | , <it.name> = <it.type> }; separator="\n"> }; + const ANTLR_UINT8* getTokenName(ANTLR_INT32 index) const; + +protected: + static ANTLR_UINT8* TokenNames[]; }; /** Context tracking structure for <mainName()> @@ -452,7 +473,7 @@ >> -grammarType() ::= << +grammarType() ::= <% <if(PARSER)> parser <endif> @@ -462,7 +483,7 @@ <if(TREE_PARSER)> tree parser <endif> ->> +%> componentType() ::= << <if(PARSER)> @@ -821,7 +842,7 @@ /** \brief Table of all token names in symbolic order, mainly used for * error reporting. */ -ANTLR_UINT8* <name>TokenNames[<length(tokenNames)>+4] +ANTLR_UINT8* <name>TokenNames[<length(tokenNames)>+4] = { (ANTLR_UINT8*) "\<invalid>", /* String to print to indicate an invalid token */ (ANTLR_UINT8*) "\<EOR>", @@ -2087,7 +2108,7 @@ return m_ctx->LA(i); } - <if(PARSER)> + <if(PARSER)> template\<typename PredType> bool msynpred( PredType pred ) { Modified: branches/tora3/extlibs/parsing.cpp/t0.cpp =================================================================== --- branches/tora3/extlibs/parsing.cpp/t0.cpp 2013-03-28 15:34:56 UTC (rev 4602) +++ branches/tora3/extlibs/parsing.cpp/t0.cpp 2013-04-01 23:14:51 UTC (rev 4603) @@ -169,7 +169,14 @@ while (T != PLSQLGuiLexer::EOF_TOKEN) { T = tstream->_LA(1); - printf("%d %s\n", T, tstream->_LT(1)->getText().c_str()); + PLSQLGuiLexerTraits::CommonTokenType const* token = tstream->_LT(1); + ANTLR_UINT8 const *name = lxr->getTokenName(T); + + printf("%d %s\t\"%s\"\n", + T, + name, + tstream->_LT(1)->getText().c_str() + ); tstream->consume(); } } Modified: branches/tora3/src/editor/tocustomlexer.cpp =================================================================== --- branches/tora3/src/editor/tocustomlexer.cpp 2013-03-28 15:34:56 UTC (rev 4602) +++ branches/tora3/src/editor/tocustomlexer.cpp 2013-04-01 23:14:51 UTC (rev 4603) @@ -56,6 +56,8 @@ toCustomLexer::toCustomLexer(QObject *parent) : QsciLexerCustom(parent) , lexer(LexerFactTwoParmSing::Instance().create("OracleGuiLexer", "", "toCustomLexer")) + , length(32) + , chars(NULL) { QFont mono; #if defined(Q_OS_WIN) @@ -93,15 +95,38 @@ QColor(Qt::darkBlue), QColor("white"), mono); + declareStyle(OneLine, + QColor(Qt::black), + QColor(Qt::cyan), + mono); declareStyle(Failure, QColor(Qt::black), QColor(Qt::red), mono); + + chars = (char*) malloc(length); + if(chars == NULL) + throw QString("Buffer allocation error"); + + thread = new QThread; + worker = new toCustomLexerPriv(); + worker->moveToThread(thread); + //connect(worker, SIGNAL(error(QString)), this, SLOT(errorString(QString))); + //connect(thread, SIGNAL(started()), worker, SLOT(process())); + connect(this, SIGNAL(parsingRequested()), worker, SLOT(process())); + connect(worker, SIGNAL(processed()), this, SLOT(processed())); + connect(worker, SIGNAL(finished()), thread, SLOT(quit())); + connect(worker, SIGNAL(finished()), worker, SLOT(deleteLater())); + connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater())); + thread->start(); + + schedule(); } toCustomLexer::~toCustomLexer() { - qDebug() << __FUNCTION__; + thread->terminate(); + qDebug() << __FUNCTION__; } const char* toCustomLexer::language() const @@ -140,11 +165,17 @@ resetStyle (); - char *chars = new char[(end - start) + 1]; + if( length < (end - start + 1)) + { + unsigned expLen1 = end - start + 1; + length = 2; + while( expLen1 >>= 1) + length <<= 1; + chars = (char*) realloc(chars, length); + } editor()->SendScintilla(QsciScintilla::SCI_GETTEXTRANGE, start, end, chars); source = QString::fromUtf8(chars, end - start + 1); lexer->setStatement(chars, len); - delete [] chars; int line = editor()->SendScintilla(QsciScintilla::SCI_LINEFROMPOSITION, start); int state = -1; @@ -155,7 +186,7 @@ state = editor()->SendScintilla(QsciScintilla::SCI_GETSTYLEAT, pos); } - qDebug() << '[' << line << ',' << start << "," << end << ' ' << lexer->firstWord() << "] " << "source =" << source; + qDebug() << '[' << line << ',' << start << "," << end << ' ' << lexer->firstWord() << "] " << "source =" << source << '"'; startStyling(start, 0x1f); @@ -173,7 +204,19 @@ break; } } - } + } else if ( (*i).getTokenType() == SQLLexer::Token::X_ONE_LINE) { + for(; i != lexer->end(); ++i) + { + SQLLexer::Token const &node = *i; + if( node.getTokenType() == SQLLexer::Token::X_EOL || node.getTokenType() == SQLLexer::Token::X_EOF) + { + ++i; + break; + } + unsigned len2 = node.getLength(); + setStyling(len2, OneLine); + } + } for(; i != lexer->end(); ++i) { @@ -256,3 +299,40 @@ styleStack.clear(); styleStack << Default; } + +void toCustomLexer::process() +{ + emit parsingStarted(); + emit parsingRequested(); + for(int i = 0; i < editor()->lines(); ++i) + { + editor()->setMarginText(i, QString("AA"), OneLine); + } +} + +void toCustomLexer::processed() +{ + emit parsingFinished(); + schedule(); +}; + +void toCustomLexer::schedule() +{ + QTimer::singleShot(5000, this, SLOT(process())); +} + +toCustomLexerPriv::toCustomLexerPriv() +{ + +} + +toCustomLexerPriv::~toCustomLexerPriv() +{ + +} + +void toCustomLexerPriv::process() +{ + ////styleText(0, editor()->text().length()-1); + emit processed(); +} Modified: branches/tora3/src/editor/tocustomlexer.h =================================================================== --- branches/tora3/src/editor/tocustomlexer.h 2013-03-28 15:34:56 UTC (rev 4602) +++ branches/tora3/src/editor/tocustomlexer.h 2013-04-01 23:14:51 UTC (rev 4603) @@ -48,6 +48,8 @@ class QsciStyle; +class toCustomLexerPriv; + class toCustomLexer : public QsciLexerCustom { Q_OBJECT; @@ -59,6 +61,7 @@ Reserved = 3, Builtin, String, + OneLine, Failure, MaxStyle }; @@ -71,20 +74,56 @@ virtual QString description(int) const; virtual void styleText(int start, int end); +signals: + void parsingStarted(); + void parsingFinished(); + void parsingRequested(); + +private slots: + void process(); + void processed(); + public slots: void setOracle(); void setMySQL(); + private: bool pushStyle(int style); bool popStyle(); - int getStyle(); + int getStyle(); bool hasStyle(int); void resetStyle(); + void schedule(); + + char *chars; + unsigned length; + QMap<int,QString> styleNames; QList<int> styleStack; std::auto_ptr <SQLLexer::Lexer> lexer; + + QThread *thread; + toCustomLexerPriv *worker; }; +class toCustomLexerPriv: public QObject { + Q_OBJECT; +signals: + void finished(); + void processed(); + void error(QString err); + +public: + toCustomLexerPriv(); + ~toCustomLexerPriv(); + +public slots: + void process(); + +private: + // add your variables here +}; + #endif /* TOCUSTOMLEXER_H_ */ Modified: branches/tora3/src/parsing/PLSQLGuiLexer.cc =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/PLSQLGuiLexer.hpp =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/tsqllexer.h =================================================================== --- branches/tora3/src/parsing/tsqllexer.h 2013-03-28 15:34:56 UTC (rev 4602) +++ branches/tora3/src/parsing/tsqllexer.h 2013-04-01 23:14:51 UTC (rev 4603) @@ -49,7 +49,9 @@ // Special node types X_UNASSIGNED = 0 , X_EOF + , X_EOL , X_FAILURE + , X_ONE_LINE // White space "hidden" channel , X_WHITE , X_COMMENT Modified: branches/tora3/src/parsing/tsqllexeroracle2.cc =================================================================== --- branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-03-28 15:34:56 UTC (rev 4602) +++ branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-04-01 23:14:51 UTC (rev 4603) @@ -183,9 +183,14 @@ case PLSQLGuiLexer::OTHER_COMMAND_INTRODUCER: type = Token::L_RESERVED; break; + case PLSQLGuiLexer::SQLPLUS_COMMAND_INTRODUCER: + type = Token::X_ONE_LINE; + break; case PLSQLGuiLexer::NEWLINE: + type = Token::X_EOL; + break; case PLSQLGuiLexer::SPACE: - case PLSQLGuiLexer::WHITE: + //case PLSQLGuiLexer::WHITE: type = Token::X_WHITE; break; default: Modified: branches/tora3/src/tests/test4window.cpp =================================================================== --- branches/tora3/src/tests/test4window.cpp 2013-03-28 15:34:56 UTC (rev 4602) +++ branches/tora3/src/tests/test4window.cpp 2013-04-01 23:14:51 UTC (rev 4603) @@ -81,10 +81,34 @@ ed2->setLexer(customLexer); rightVerticalLayout->addWidget(ed2); ed2->setText(sql); + ed2->setMarginType(2, QsciScintilla::TextMarginRightJustified); + ed2->setMarginWidth(2, QString::fromAscii("009")); connect(oracle, SIGNAL(triggered()), customLexer, SLOT(setOracle())); connect(mysql, SIGNAL(triggered()), customLexer, SLOT(setMySQL())); + connect(customLexer, SIGNAL(parsingStarted()), this, SLOT(parsingStarted())); + connect(customLexer, SIGNAL(parsingFinished()), this, SLOT(parsingFinished())); + QMainWindow::show(); } +void Test4Window::parsingStarted() +{ + statusbar->showMessage("Parsing started", 200); +} + +void Test4Window::parsingFinished() +{ + statusbar->showMessage("Parsing finished", 200); +} + +void Test4Window::closeEvent(QCloseEvent *event) +{ + toCustomLexer *lexer = this->findChild<toCustomLexer *>(); + if( lexer) + { + delete lexer; + } + QMainWindow::closeEvent(event); +} Modified: branches/tora3/src/tests/test4window.h =================================================================== --- branches/tora3/src/tests/test4window.h 2013-03-28 15:34:56 UTC (rev 4602) +++ branches/tora3/src/tests/test4window.h 2013-04-01 23:14:51 UTC (rev 4603) @@ -55,7 +55,15 @@ public: Test4Window(); + virtual ~Test4Window() {}; +public slots: + void parsingStarted(); + void parsingFinished(); + +protected: + virtual void closeEvent(QCloseEvent *event); + private: toWorkSpace &Workspace; }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2013-04-08 10:27:48
|
Revision: 4611 http://sourceforge.net/p/tora/code/4611 Author: ibre5041 Date: 2013-04-08 10:27:45 +0000 (Mon, 08 Apr 2013) Log Message: ----------- Handy linenumbers in test4. Modified Paths: -------------- branches/tora3/extlibs/parsing.cpp/antlr-complete-3.5.1-SNAPSHOT.jar branches/tora3/src/editor/tocustomlexer.cpp branches/tora3/src/parsing/PLSQLGuiLexer.cc branches/tora3/src/parsing/PLSQLGuiLexer.hpp branches/tora3/src/parsing/UserGuiTraits.hpp branches/tora3/src/parsing/tsqllexeroracle2.cc Modified: branches/tora3/extlibs/parsing.cpp/antlr-complete-3.5.1-SNAPSHOT.jar =================================================================== (Binary files differ) Modified: branches/tora3/src/editor/tocustomlexer.cpp =================================================================== --- branches/tora3/src/editor/tocustomlexer.cpp 2013-04-07 19:25:13 UTC (rev 4610) +++ branches/tora3/src/editor/tocustomlexer.cpp 2013-04-08 10:27:45 UTC (rev 4611) @@ -331,14 +331,30 @@ void toCustomLexer::processed() { Style style = OneLine; + unsigned lastLine = 0; Q_FOREACH(const StmtLineRange &r, worker->statements) { + // "clear" line numbers before the statement + while(lastLine < r.first) + { + editor()->setMarginText(lastLine++, QString(), Default); + } + + // "draw" line numbers for the sql statement for(unsigned int i=r.first, j=1; i <= r.second; ++i, ++j) { editor()->setMarginText(i, QString::number(j), style); } + lastLine = r.second + 1; style = style == OneLine ? OneLineAlt : OneLine; } + + // "clear" line numbers after the last statement + while(lastLine < editor()->lines()) + { + editor()->setMarginText(lastLine++, QString(), Default); + } + emit parsingFinished(); schedule(); }; Modified: branches/tora3/src/parsing/PLSQLGuiLexer.cc =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/PLSQLGuiLexer.hpp =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/UserGuiTraits.hpp =================================================================== --- branches/tora3/src/parsing/UserGuiTraits.hpp 2013-04-07 19:25:13 UTC (rev 4610) +++ branches/tora3/src/parsing/UserGuiTraits.hpp 2013-04-08 10:27:45 UTC (rev 4611) @@ -30,6 +30,23 @@ //but it leaves the start and stop tokens. So they can be accessed as usual //static const bool TOKENS_ACCESSED_FROM_OWNING_RULE = true; + class ToraToken : public antlr3::CommonToken<ImplTraits> + { + typedef antlr3::CommonToken<ImplTraits> super; + typedef typename antlr3::CommonToken<ImplTraits>::TOKEN_TYPE TOKEN_TYPE; + public: + ToraToken() : super() {}; + ToraToken( ANTLR_UINT32 type) : super(type) {}; + ToraToken( TOKEN_TYPE type) : super(type) {}; + ToraToken( const ToraToken& ctoken ) : super(ctoken) {}; + + ToraToken& operator=( const ToraToken& ctoken ) { super::operator=(ctoken); return *this; }; + + void setGuiClass( ANTLR_UINT32 type) {}; + }; + + typedef ToraToken CommonTokenType; + //Similarly, if you want to override the nextToken function. write a class that //derives from antlr3::TokenSource and override the nextToken function. But name the class //as TokenSourceType Modified: branches/tora3/src/parsing/tsqllexeroracle2.cc =================================================================== --- branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-04-07 19:25:13 UTC (rev 4610) +++ branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-04-08 10:27:45 UTC (rev 4611) @@ -299,9 +299,10 @@ bool mergeFound = start->getText().compare("MERGE", Qt::CaseInsensitive) == 0; bool explainFound = start->getText().compare("EXPLAIN", Qt::CaseInsensitive) == 0; bool exitLoop = false; - while(true) + while(!exitLoop) { i++; + QString txt = i->getText(); switch( i->getOrigTokenType()) { case PLSQLGuiLexer::LEFT_PAREN: @@ -325,7 +326,11 @@ // EXPLAIN PLAN SET STATEMENT - do not end this stmt //if(explainFound && i->getText().compare("SET", Qt::CaseInsensitive) == 0) // break; - case PLSQLGuiLexer::PLSQL_COMMAND_INTRODUCER: // DECLARE, BEGIN, CREATE, ... + case PLSQLGuiLexer::PLSQL_COMMAND_INTRODUCER: // DECLARE, BEGIN, CREATE, SET, ... + // SET starts SQLPLUS command(SET LINE), also starts OTHER sql command(SET ROLE) + // but also can be present in UPDATE statement + if(i->getText().compare("SET", Qt::CaseInsensitive) == 0) + break; case PLSQLGuiLexer::EOF_TOKEN: case PLSQLGuiLexerTraits::CommonTokenType::TOKEN_INVALID: exitLoop = true; @@ -333,8 +338,6 @@ default: // any other word clear parenFound parenFound = false; } - if( exitLoop) - break; } break; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2013-04-12 15:46:56
|
Revision: 4618 http://sourceforge.net/p/tora/code/4618 Author: ibre5041 Date: 2013-04-12 15:46:42 +0000 (Fri, 12 Apr 2013) Log Message: ----------- Modified Paths: -------------- branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g branches/tora3/extlibs/parsing.cpp/UserGuiTraits.hpp branches/tora3/src/parsing/PLSQLGuiLexer.cc branches/tora3/src/parsing/PLSQLGuiLexer.hpp branches/tora3/src/parsing/tsqllexeroracle2.cc branches/tora3/src/tests/test4window.cpp Modified: branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g =================================================================== --- branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-04-09 14:11:48 UTC (rev 4617) +++ branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-04-12 15:46:42 UTC (rev 4618) @@ -91,6 +91,8 @@ 'CALL' | 'DECLARE' | 'BEGIN' | + 'PROCEDURE' | + 'FUNCTION' | 'CREATE'; OTHER_COMMAND_INTRODUCER: @@ -416,7 +418,7 @@ 'FORCE' | /* FORCE_KEY: */ 'FROM' | /* SQL92_RESERVED_FROM:*/ 'FULL' | /* FULL_KEY: */ - 'FUNCTION' | /* FUNCTION_KEY: */ + //'FUNCTION' | /* FUNCTION_KEY: */ 'GLOBAL' | /* GLOBAL_KEY: */ 'GOTO' | /* SQL92_RESERVED_GOTO:*/ //'GRANT' | /* SQL92_RESERVED_GRANT:*/ @@ -569,7 +571,7 @@ 'PRECISION' | /* PRECISION_KEY: */ 'PRESENT' | /* PRESENT_KEY: */ 'PRIOR' | /* SQL92_RESERVED_PRIOR:*/ - 'PROCEDURE' | /* SQL92_RESERVED_PROCEDURE:*/ + //'PROCEDURE' | /* SQL92_RESERVED_PROCEDURE:*/ 'PUBLIC' | /* SQL92_RESERVED_PUBLIC:*/ 'QUERY' | /* QUERY_KEY: */ 'RAISE' | /* RAISE_KEY: */ Modified: branches/tora3/extlibs/parsing.cpp/UserGuiTraits.hpp =================================================================== --- branches/tora3/extlibs/parsing.cpp/UserGuiTraits.hpp 2013-04-09 14:11:48 UTC (rev 4617) +++ branches/tora3/extlibs/parsing.cpp/UserGuiTraits.hpp 2013-04-12 15:46:42 UTC (rev 4618) @@ -80,6 +80,8 @@ typedef antlr3::Traits<PLSQLGuiLexer, EmptyParser, UserTraits> PLSQLGuiLexerTraits; typedef antlr3::Traits<MySQLGuiLexer, EmptyParser, UserTraits> MySQLGuiLexerTraits; +typedef antlr3::Traits<MySQLGuiLexer, EmptyParser, UserTraits> OraclePLSQLLexerTraits; +typedef antlr3::Traits<MySQLGuiLexer, EmptyParser, UserTraits> OraclePLSQLParserTraits; }; Modified: branches/tora3/src/parsing/PLSQLGuiLexer.cc =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/PLSQLGuiLexer.hpp =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/tsqllexeroracle2.cc =================================================================== --- branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-04-09 14:11:48 UTC (rev 4617) +++ branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-04-12 15:46:42 UTC (rev 4618) @@ -283,6 +283,8 @@ { bool exitLoop = false; bool createFound = start->getText().compare("CREATE", Qt::CaseInsensitive) == 0; + bool functionFound = start->getText().compare("FUNCTION", Qt::CaseInsensitive) == 0; + bool procedureFound = start->getText().compare("PROCEDURE", Qt::CaseInsensitive) == 0; bool declareFound = start->getText().compare("DECLARE", Qt::CaseInsensitive) == 0; bool beginFound = start->getText().compare("BEGIN", Qt::CaseInsensitive) == 0; unsigned blockDepth = 1; @@ -291,13 +293,14 @@ { i++; QString txt = i->getText(); - if( declareFound) + if( declareFound || functionFound || procedureFound) { i = i.consumeUntil(PLSQLGuiLexer::PLSQL_COMMAND_INTRODUCER); if(i->getText().compare("BEGIN", Qt::CaseInsensitive) != 0) exitLoop = true; } + // loop until pair paren is found if(parenDepth) { while(true) @@ -315,6 +318,10 @@ switch( i->getOrigTokenType()) { + case PLSQLGuiLexer::PLSQL_COMMAND_INTRODUCER: + i = findEndToken(i); + i++; + break; case PLSQLGuiLexer::R_IF: i = i.consumeUntil(PLSQLGuiLexer::R_THEN); case PLSQLGuiLexer::R_LOOP: Modified: branches/tora3/src/tests/test4window.cpp =================================================================== --- branches/tora3/src/tests/test4window.cpp 2013-04-09 14:11:48 UTC (rev 4617) +++ branches/tora3/src/tests/test4window.cpp 2013-04-12 15:46:42 UTC (rev 4618) @@ -96,12 +96,12 @@ void Test4Window::parsingStarted() { - statusbar->showMessage("Parsing started", 200); + statusbar->showMessage("Parsing started", 2000); } void Test4Window::parsingFinished() { - statusbar->showMessage("Parsing finished", 200); + statusbar->showMessage("Parsing finished", 2000); } void Test4Window::load() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2013-06-25 09:21:31
|
Revision: 4656 http://sourceforge.net/p/tora/code/4656 Author: ibre5041 Date: 2013-06-25 09:21:27 +0000 (Tue, 25 Jun 2013) Log Message: ----------- Some progress with parsing Modified Paths: -------------- branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3bitset.inl branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3memory.hpp branches/tora3/extlibs/parsing.cpp/Makefile branches/tora3/extlibs/parsing.cpp/utils.cpp branches/tora3/src/parsing/MySQLGuiLexer.cc branches/tora3/src/parsing/MySQLGuiLexer.hpp branches/tora3/src/parsing/PLSQLGuiLexer.cc branches/tora3/src/parsing/PLSQLGuiLexer.hpp branches/tora3/src/parsing/tsqllexermysql.cc branches/tora3/src/parsing/tsqllexeroracle2.cc Modified: branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3bitset.inl =================================================================== --- branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3bitset.inl 2013-06-21 23:25:25 UTC (rev 4655) +++ branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3bitset.inl 2013-06-25 09:21:27 UTC (rev 4656) @@ -105,9 +105,8 @@ // ANTLR_UINT32 numelements = ((numBits -1) >> ANTLR_BITSET_LOG_BITS) + 1; - m_blist.set_bits( (ANTLR_BITWORD*) AllocPolicyType::alloc(numelements * sizeof(ANTLR_BITWORD))); + m_blist.set_bits( (ANTLR_BITWORD*) AllocPolicyType::alloc0(numelements * sizeof(ANTLR_BITWORD))); - memset( m_blist.get_bits(), 0, (numelements * sizeof(ANTLR_BITWORD))); m_blist.set_length( numelements ); } Modified: branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3memory.hpp =================================================================== --- branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3memory.hpp 2013-06-21 23:25:25 UTC (rev 4655) +++ branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3memory.hpp 2013-06-25 09:21:27 UTC (rev 4656) @@ -110,29 +110,29 @@ { }; - static void* operator new (std::size_t bytes) + ANTLR_INLINE static void* operator new (std::size_t bytes) { void* p = alloc(bytes); return p; } - static void* operator new (std::size_t , void* p) { return p; } - static void* operator new[]( std::size_t bytes) + ANTLR_INLINE static void* operator new (std::size_t , void* p) { return p; } + ANTLR_INLINE static void* operator new[]( std::size_t bytes) { void* p = alloc(bytes); return p; } - static void operator delete(void* p) + ANTLR_INLINE static void operator delete(void* p) { DefaultAllocPolicy::free(p); } - static void operator delete(void* , void* ) {} //placement delete + ANTLR_INLINE static void operator delete(void* , void* ) {} //placement delete - static void operator delete[](void* p) + ANTLR_INLINE static void operator delete[](void* p) { DefaultAllocPolicy::free(p); } - static void* alloc( std::size_t bytes ) + ANTLR_INLINE static void* alloc( std::size_t bytes ) { void* p = malloc(bytes); if( p== NULL ) @@ -140,19 +140,20 @@ return p; } - static void* alloc0( std::size_t bytes ) + ANTLR_INLINE static void* alloc0( std::size_t bytes ) { - void* p = DefaultAllocPolicy::alloc(bytes); - memset(p, 0, bytes ); + void* p = calloc(1, bytes); + if( p== NULL ) + throw std::bad_alloc(); return p; } - static void free( void* p ) + ANTLR_INLINE static void free( void* p ) { return ::free(p); } - static void* realloc(void *ptr, size_t size) + ANTLR_INLINE static void* realloc(void *ptr, size_t size) { return ::realloc( ptr, size ); } Modified: branches/tora3/extlibs/parsing.cpp/Makefile =================================================================== --- branches/tora3/extlibs/parsing.cpp/Makefile 2013-06-21 23:25:25 UTC (rev 4655) +++ branches/tora3/extlibs/parsing.cpp/Makefile 2013-06-25 09:21:27 UTC (rev 4656) @@ -11,7 +11,7 @@ .SUFFIXES: -INCLUDES= -I. -I../libantlr3cpp-3.5.1/include/ +INCLUDES= -I. -I../libantlr3cpp-3.5.1/include/ -I../../../boost_1_46_1/ CFLAGS=-ggdb3 -O0 -fno-inline ##CFLAGS=-ggdb3 -O3 Modified: branches/tora3/extlibs/parsing.cpp/utils.cpp =================================================================== --- branches/tora3/extlibs/parsing.cpp/utils.cpp 2013-06-21 23:25:25 UTC (rev 4655) +++ branches/tora3/extlibs/parsing.cpp/utils.cpp 2013-06-25 09:21:27 UTC (rev 4656) @@ -14,6 +14,7 @@ # include <fstream> # include <sstream> # include <dirent.h> +# include <unistd.h> # define DIRDELIM '\\' #elif _MSC_VER # define _CRT_SECURE_NO_WARNINGS 1 Modified: branches/tora3/src/parsing/MySQLGuiLexer.cc =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/MySQLGuiLexer.hpp =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/PLSQLGuiLexer.cc =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/PLSQLGuiLexer.hpp =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/tsqllexermysql.cc =================================================================== --- branches/tora3/src/parsing/tsqllexermysql.cc 2013-06-21 23:25:25 UTC (rev 4655) +++ branches/tora3/src/parsing/tsqllexermysql.cc 2013-06-25 09:21:27 UTC (rev 4656) @@ -84,7 +84,7 @@ exit(ANTLR_ERR_NOMEM); } - tstream = new MySQLGuiLexerTraits::TokenStreamType(ANTLR_SIZE_HINT, lxr->getTokSource()); + tstream = new MySQLGuiLexerTraits::TokenStreamType(ANTLR_SIZE_HINT, lxr->get_tokSource()); if (tstream == NULL) { @@ -144,10 +144,10 @@ if(token) { // ANTLR3 starts with 1st while QScintilla starts with 0th - int line = token->getLine() - 1; - int column = token->getCharPositionInLine(); - unsigned length = token->getStopIndex() - token->getStartIndex() + 1; - int offset = token->getStartIndex(); + int line = token->get_line() - 1; + int column = token->get_charPositionInLine(); + unsigned length = token->get_stopIndex() - token->get_startIndex() + 1; + int offset = token->get_startIndex(); Token::TokenType type = Token::X_UNASSIGNED; switch(token->getType()) Modified: branches/tora3/src/parsing/tsqllexeroracle2.cc =================================================================== --- branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-06-21 23:25:25 UTC (rev 4655) +++ branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-06-25 09:21:27 UTC (rev 4656) @@ -84,7 +84,7 @@ exit(ANTLR_ERR_NOMEM); } - tstream = new PLSQLGuiLexerTraits::TokenStreamType(ANTLR_SIZE_HINT, lxr->getTokSource()); + tstream = new PLSQLGuiLexerTraits::TokenStreamType(ANTLR_SIZE_HINT, lxr->get_tokSource()); if (tstream == NULL) { @@ -145,10 +145,10 @@ if(token) { // ANTLR3 starts with 1st while QScintilla starts with 0th - int line = token->getLine() - 1; - int column = token->getCharPositionInLine(); - unsigned length = token->getStopIndex() - token->getStartIndex() + 1; - int offset = token->getStartIndex(); + int line = token->get_line() - 1; + int column = token->get_charPositionInLine(); + unsigned length = token->get_stopIndex() - token->get_startIndex() + 1; + int offset = token->get_startIndex(); Token::TokenType type = Token::X_UNASSIGNED; switch(token->getType()) @@ -304,6 +304,7 @@ i = i.consumeUntil(PLSQLGuiLexer::PLSQL_COMMAND_INTRODUCER); if(i->getText().compare("BEGIN", Qt::CaseInsensitive) != 0) exitLoop = true; + continue; } // loop until pair paren is found This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2013-06-26 14:55:25
|
Revision: 4659 http://sourceforge.net/p/tora/code/4659 Author: ibre5041 Date: 2013-06-26 14:55:18 +0000 (Wed, 26 Jun 2013) Log Message: ----------- refectoring test Modified Paths: -------------- branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g branches/tora3/extlibs/parsing.cpp/t0.cpp branches/tora3/src/editor/tocustomlexer.h branches/tora3/src/parsing/tsqllexeroracle2.cc Modified: branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g =================================================================== --- branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-06-26 14:51:58 UTC (rev 4658) +++ branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-06-26 14:55:18 UTC (rev 4659) @@ -31,6 +31,7 @@ tokens { DOUBLE_PERIOD; SQLPLUS_COMMAND; + SQLPLUS_SOLIDUS; } @lexer::includes @@ -66,9 +67,13 @@ */ } +@lexer::context { + void advanceInput(); +} + @lexer::members { - - void advanceInput() + //@lexer::members + void PLSQLGuiLexer::advanceInput() { RecognizerSharedStateType *state = get_state(); state->set_tokenStartCharIndex(getCharIndex()); @@ -1144,13 +1149,30 @@ ; //{ Rule #360 <NEWLINE> -//fragment +fragment NEWLINE : '\r' (options{greedy=true;}: '\n')? | '\n' ; //} +LINE + : n=NEWLINE + { + $n->set_type(NEWLINE); + get_tokSource()->enqueueToken($n); + advanceInput(); + } + ( + s=SPACE? + { + $s->set_type(SPACE); + get_tokSource()->enqueueToken($n); + advanceInput(); + } + )? + ; + //{ Rule #522 <SPACE> //fragment SPACE Modified: branches/tora3/extlibs/parsing.cpp/t0.cpp =================================================================== --- branches/tora3/extlibs/parsing.cpp/t0.cpp 2013-06-26 14:51:58 UTC (rev 4658) +++ branches/tora3/extlibs/parsing.cpp/t0.cpp 2013-06-26 14:55:18 UTC (rev 4659) @@ -170,7 +170,7 @@ { T = tstream->_LA(1); PLSQLGuiLexerTraits::CommonTokenType const* token = tstream->_LT(1); - ANTLR_UINT8 const *name = lxr->getTokenName(T); + ANTLR_UINT8 const *name = (ANTLR_UINT8 const*)""; //lxr->getTokenName(T); printf("%d %s\t\"%s\"\n", T, Modified: branches/tora3/src/editor/tocustomlexer.h =================================================================== --- branches/tora3/src/editor/tocustomlexer.h 2013-06-26 14:51:58 UTC (rev 4658) +++ branches/tora3/src/editor/tocustomlexer.h 2013-06-26 14:55:18 UTC (rev 4659) @@ -110,6 +110,12 @@ toCustomLexerPriv *worker; }; +/* Utility class for @ref toCustomLexer + * Instance of this class "lives" within background thread + * and dispatches signals from/to the main thread + * + * NOTE: this class could by nested, but QT does not support it + */ class toCustomLexerPriv: public QObject { Q_OBJECT; friend class toCustomLexer; Modified: branches/tora3/src/parsing/tsqllexeroracle2.cc =================================================================== --- branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-06-26 14:51:58 UTC (rev 4658) +++ branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-06-26 14:55:18 UTC (rev 4659) @@ -34,6 +34,10 @@ Antlr3Impl::PLSQLGuiLexer *lxr; Antlr3Impl::PLSQLGuiLexerTraits::TokenStreamType* tstream; + User::PLSQLLexerTraits::InputStreamType* pinput; + User::PLSQLLexer *plxr; + User::PLSQLLexerTraits::TokenStreamType* ptstream; + unsigned lastLine, lastColumn, lastIndex; mutable Token retvalLA; @@ -65,21 +69,25 @@ input->setUcaseLA(true); // ignore case - if (input == NULL) + pinput = new User::PLSQLTraits::InputStreamType( + (const ANTLR_UINT8 *)QBAinput.data(), + ANTLR_ENC_UTF8, + QBAinput.size(), //strlen(data.c_str()), + (ANTLR_UINT8*)QBAname.data()); + + pinput->setUcaseLA(true); // ignore case + + if (input == NULL || pinput == NULL ) { // TODO throw here throw Exception(); exit(ANTLR_ERR_NOMEM); } - // Our input stream is now open and all set to go, so we can create a new instance of our - // lexer and set the lexer input to our input stream: - // (file | memory | ?) --> inputstream -> lexer --> tokenstream --> parser ( --> treeparser )? - // - lxr = new PLSQLGuiLexer(input); // CLexerNew is generated by ANTLR - //lxr->pLexer->input->charPositionInLine = 0; // fix off-by-one error for getCharPositionInLine for the 1st row + lxr = new PLSQLGuiLexer(input); + plxr = new User::PLSQLLexer(pinput); - if ( lxr == NULL ) + if ( lxr == NULL || plxr == NULL) { // TODO throw here throw Exception(); @@ -87,8 +95,9 @@ } tstream = new PLSQLGuiLexerTraits::TokenStreamType(ANTLR_SIZE_HINT, lxr->get_tokSource()); + ptstream = new User::PLSQLTraits::TokenStreamType(ANTLR_SIZE_HINT, plxr->get_tokSource()); - if (tstream == NULL) + if (tstream == NULL || ptstream == NULL) { // TODO throw here //_mState = P_ERROR; @@ -131,6 +140,16 @@ tstream = NULL; lxr = NULL; input = NULL; + + if( ptstream) + delete ptstream; + if( plxr) + delete plxr; + if( pinput) + delete pinput; + ptstream = NULL; + plxr = NULL; + pinput = NULL; } int OracleGuiLexer::size() const @@ -289,6 +308,11 @@ { case Token::L_PL_INTRODUCER: { + User::PLSQLParser *psr = new User::PLSQLParser(ptstream); + User::PLSQLParser::seq_of_statements_return r = psr->seq_of_statements(); + + delete psr; + /* bool exitLoop = false; bool createFound = start->getText().compare("CREATE", Qt::CaseInsensitive) == 0; bool functionFound = start->getText().compare("FUNCTION", Qt::CaseInsensitive) == 0; @@ -352,6 +376,7 @@ break; } } + */ break; } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2013-06-29 20:11:39
|
Revision: 4663 http://sourceforge.net/p/tora/code/4663 Author: ibre5041 Date: 2013-06-29 20:11:36 +0000 (Sat, 29 Jun 2013) Log Message: ----------- sqlplus grammar parsing Modified Paths: -------------- branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3lexer.inl branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g branches/tora3/extlibs/parsing.cpp/input/simple04.sql branches/tora3/extlibs/parsing.cpp/org/antlr/codegen/templates/Cpp/Cpp.stg branches/tora3/src/CMakeLists.txt branches/tora3/src/editor/tocustomlexer.cpp branches/tora3/src/parsing/PLSQLGuiLexer.cc branches/tora3/src/parsing/PLSQLGuiLexer.hpp branches/tora3/src/parsing/tsqllexeroracle2.cc Modified: branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3lexer.inl =================================================================== --- branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3lexer.inl 2013-06-29 00:48:00 UTC (rev 4662) +++ branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3lexer.inl 2013-06-29 20:11:36 UTC (rev 4663) @@ -53,12 +53,12 @@ err_stream << ex->get_streamName().c_str(); err_stream << "("; } + err_stream << ex->get_line() << ")"; + + err_stream << ": lexer error " << ex->getName() << '(' << ex->getType() << ')' << " :\n\t" + << ex->get_message() << " at position [" << ex->get_line() << ", " + << ex->get_charPositionInLine()+1 << "], "; - err_stream << ex->get_line() << ")"; - err_stream << ": lexer error " << ex->getType() << " :\n\t" - << ex->get_message() << " at offset " - << ex->get_charPositionInLine()+1 << ", "; - { ANTLR_UINT32 width; @@ -69,17 +69,15 @@ { if (isprint(ex->get_c() )) { - err_stream << "near '" << ex->get_c() << "' :\n"; + err_stream << "near '" << (typename StringType::value_type) ex->get_c() << "' :\n"; } else { - char tmp[128]; - sprintf( tmp, "near char(%#02X) :\n", ex->get_c() ); - err_stream << tmp; + err_stream << "near char(" << std::hex << ex->get_c() << std::dec << ") :\n"; } err_stream << "\t"; err_stream.width( width > 20 ? 20 : width ); - err_stream << ex->get_index() << "\n"; + err_stream << (typename StringType::const_pointer)ex->get_index() << "\n"; } else { @@ -96,7 +94,7 @@ { err_stream << "looks like this:\n\t\t"; err_stream.width( width > 20 ? 20 : width ); - err_stream << this->get_state()->get_tokenStartCharIndex() << "\n"; + err_stream << (typename StringType::const_pointer)this->get_state()->get_tokenStartCharIndex() << "\n"; } else { Modified: branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g =================================================================== --- branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-06-29 00:48:00 UTC (rev 4662) +++ branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-06-29 20:11:36 UTC (rev 4663) @@ -117,7 +117,13 @@ 'SAVEPOINT' | 'SET' | // either "SET ROLE/CONSTRAINT/TRANSACTION ..." or "SET LINE ..." 'TRUNCATE'; - + +// NOTE: this one must be listed before SQLPLUS CONNECT +CONNECT_BY + : 'CONNECT_BY_ROOT' /* SQL_NON_RESERVED_CONNECT_BY_ROOT:*/ + { $type = PLSQL_RESERVED; } + ; + // All these should start a NEWLINE, tricky to implement fragment SQLPLUS_COMMAND_INTRODUCER @@ -129,9 +135,9 @@ : //TODO ( SPACE { $type = SPACE; } )? ( - '@' ('@')? - | '/' - | 'ACCEPT' + // '@' ('@')? + //| '/' // See SOLIDUS rule + 'ACCEPT' | 'APPEND' | 'ARCHIVE' | 'ATTRIBUTE' @@ -179,8 +185,8 @@ | 'WHENEVER' | 'XQUERY' ) - (SPACE SWALLOW_TO_NEWLINE) - NEWLINE + (SPACE SWALLOW_TO_NEWLINE_FRAGMENT)? + //NEWLINE ; // All these PLSQL constructs can also contain 'END'; @@ -272,7 +278,7 @@ 'COMPOUND' | /* COMPOUND_KEY: */ 'COMPRESS' | /* PLSQL_RESERVED_COMPRESS:*/ //'CONNECT' | /* SQL92_RESERVED_CONNECT:*/ - 'CONNECT_BY_ROOT' | /* SQL_NON_RESERVED_CONNECT_BY_ROOT:*/ + //'CONNECT_BY_ROOT' | /* SQL_NON_RESERVED_CONNECT_BY_ROOT:*/ 'CONSTANT' | /* CONSTANT_KEY: */ 'CONSTRAINT' | /* CONSTRAINT_KEY: */ 'CONSTRAINTS' | /* CONSTRAINTS_KEY: */ @@ -1011,9 +1017,51 @@ COMMA: ','; -SOLIDUS: '/'; +SOLIDUS + @init + { + ANTLR_UINT32 linePos = getCharPositionInLine(); + ANTLR_UINT32 line = getLine(); + ANTLR_MARKER start; + bool success; + } + : '/' + { + this->inc_backtracking(); + start = this->mark(); + this->mSPACE_FRAGMENT(); + this->mNEWLINE(); // can never throw exception + success = !( this->get_failedflag() ); + this->rewind(start); + this->dec_backtracking(); + this->set_failedflag(false); + if(success && linePos == 0) + $type = SQLPLUS_SOLIDUS; + } + ; -AT_SIGN: '@'; +AT_SIGN + @init + { + ANTLR_UINT32 linePos = getCharPositionInLine(); + ANTLR_UINT32 line = getLine(); + ANTLR_MARKER start; + bool success; + } + : '@' + { + this->inc_backtracking(); + start = this->mark(); + this->mSWALLOW_TO_NEWLINE_FRAGMENT(); + this->mNEWLINE(); // can never throw exception + success = !( this->get_failedflag() ); + this->rewind(start); + this->dec_backtracking(); + this->set_failedflag(false); + if(success && linePos == 0) + $type = SQLPLUS_COMMAND; + } + ; ASSIGN_OP: ':='; @@ -1082,7 +1130,7 @@ //} fragment -SWALLOW_TO_NEWLINE +SWALLOW_TO_NEWLINE_FRAGMENT : ( ~('\r' | '\n') )* ; @@ -1105,26 +1153,13 @@ | // or nothing ) ( - (SQLPLUS_COMMAND_INTRODUCER) => sqlplus=SQLPLUS_COMMAND_INTRODUCER + (SQLPLUS_COMMAND_INTRODUCER NEWLINE) => sqlplus=SQLPLUS_COMMAND_INTRODUCER + { + $sqlplus->set_type(SQLPLUS_COMMAND); + get_tokSource()->enqueueToken($sqlplus); + advanceInput(); + } | - - // ( - // sqlplus=SQLPLUS_COMMAND_INTRODUCER - // { - // $sqlplus->set_type(SQLPLUS_COMMAND_INTRODUCER); - // get_tokSource()->enqueueToken($sqlplus); - // advanceInput(); - // } - // line=SWALLOW_TO_NEWLINE - // { - // if( $line->getText().length() ) - // { - // $line->set_type(SQLPLUS_COMMAND); - // get_tokSource()->enqueueToken($line); - // advanceInput(); - // } - // } - // ) | // or nothing ) ) { $channel=HIDDEN; } @@ -1137,7 +1172,13 @@ ; //} +// See SOLIDUS rule fragment +SPACE_FRAGMENT + : (' ' | '\t')* + ; + +fragment QUESTION_MARK : '?' ; Modified: branches/tora3/extlibs/parsing.cpp/input/simple04.sql =================================================================== --- branches/tora3/extlibs/parsing.cpp/input/simple04.sql 2013-06-29 00:48:00 UTC (rev 4662) +++ branches/tora3/extlibs/parsing.cpp/input/simple04.sql 2013-06-29 20:11:36 UTC (rev 4663) @@ -1,11 +1,11 @@ PROMPT -PROMPT "DASFSFSWG" SET COMMMIT E DEFINE +PROMPT "DASFSFSWG" SET COMMIT E DEFINE A PROMPT -- WHENEVER SPOOL -1..5 - +1..5/ +/ @ Modified: branches/tora3/extlibs/parsing.cpp/org/antlr/codegen/templates/Cpp/Cpp.stg =================================================================== --- branches/tora3/extlibs/parsing.cpp/org/antlr/codegen/templates/Cpp/Cpp.stg 2013-06-29 00:48:00 UTC (rev 4662) +++ branches/tora3/extlibs/parsing.cpp/org/antlr/codegen/templates/Cpp/Cpp.stg 2013-06-29 20:11:36 UTC (rev 4663) @@ -1709,6 +1709,8 @@ lexerStringRef(string,label,elementIndex) ::= << <if(label)> ANTLR_MARKER <label>Start = this->getCharIndex(); +ANTLR_UINT32 <label>StartLine<elementIndex> = this->getLine(); +ANTLR_UINT32 <label>StartCharPos<elementIndex> = this->getCharPositionInLine(); this->matchs(<string>); <checkRuleBacktrackFailure()> <label> = new CommonTokenType; @@ -1716,6 +1718,8 @@ <label>->set_startIndex( <label>Start); <label>->set_stopIndex( this->getCharIndex()-1); <label>->set_input( this->get_input() ); +<label>->set_line( <label>StartLine<elementIndex> ); +<label>->set_charPositionInLine( <label>StartCharPos<elementIndex> ); <else> this->matchs(<string>); <checkRuleBacktrackFailure()><\n> @@ -1778,13 +1782,17 @@ <if(label)> { ANTLR_MARKER <label>Start<elementIndex> = this->getCharIndex(); + ANTLR_UINT32 <label>StartLine<elementIndex> = this->getLine(); + ANTLR_UINT32 <label>StartCharPos<elementIndex> = this->getCharPositionInLine(); <if(scope)>m_<scope:delegateName()>-><endif>m<rule.name>(<if(scope)>m_<scope:delegateName()><endif> <if(args)>, <endif><args; separator=", ">); <checkRuleBacktrackFailure()> <label> = new CommonTokenType(); <label>->set_type( CommonTokenType::TOKEN_INVALID); <label>->set_startIndex( <label>Start<elementIndex> ); - <label>->set_stopIndex( this->getCharIndex()-1); + <label>->set_stopIndex( this->getCharIndex()-1 ); <label>->set_input( this->get_input() ); + <label>->set_line( <label>StartLine<elementIndex> ); + <label>->set_charPositionInLine( <label>StartCharPos<elementIndex> ); } <else> <if(scope)>m_<scope:delegateName()>-><endif>m<rule.name>(<args; separator=", ">); @@ -1803,6 +1811,8 @@ <if(label)> { ANTLR_UINT32 <label>Start<elementIndex>; + ANTLR_UINT32 <label>StartLine<elementIndex> = this->getLine(); + ANTLR_UINT32 <label>StartCharPos<elementIndex> = this->getCharPositionInLine(); <labelType> <label>; <label>Start<elementIndex> = this->getCharIndex(); this->matchc(ANTLR_CHARSTREAM_EOF); @@ -1812,6 +1822,8 @@ <label>->set_startIndex(<label>Start<elementIndex>); <label>->set_stopIndex(this->getCharIndex()-1); <label>->set_input( this->get_input() ); + <label>->set_line( <label>StartLine<elementIndex> ); + <label>->set_charPositionInLine( <label>StartCharPos<elementIndex> ); } <else> this->matchc(ANTLR_CHARSTREAM_EOF); Modified: branches/tora3/src/CMakeLists.txt =================================================================== --- branches/tora3/src/CMakeLists.txt 2013-06-29 00:48:00 UTC (rev 4662) +++ branches/tora3/src/CMakeLists.txt 2013-06-29 20:11:36 UTC (rev 4663) @@ -846,12 +846,12 @@ parsing/tsqllexeroracle2.cc parsing/MySQLGuiLexer.cc parsing/tsqllexermysql.cc - parsing/PLSQLLexer.cc - parsing/PLSQLParser.cc - parsing/PLSQLParser_PLSQL_DMLParser.cc - parsing/PLSQLParser_PLSQLCommons.cc - parsing/PLSQLParser_PLSQLKeys.cc - parsing/PLSQLParser_SQLPLUSParser.cc + # parsing/PLSQLLexer.cc + # parsing/PLSQLParser.cc + # parsing/PLSQLParser_PLSQL_DMLParser.cc + # parsing/PLSQLParser_PLSQLCommons.cc + # parsing/PLSQLParser_PLSQLKeys.cc + # parsing/PLSQLParser_SQLPLUSParser.cc ${TORA_UI_SOURCES} ${TEST4_MOC_SOURCES} ${TEST4_SOURCES} Modified: branches/tora3/src/editor/tocustomlexer.cpp =================================================================== --- branches/tora3/src/editor/tocustomlexer.cpp 2013-06-29 00:48:00 UTC (rev 4662) +++ branches/tora3/src/editor/tocustomlexer.cpp 2013-06-29 20:11:36 UTC (rev 4663) @@ -57,7 +57,7 @@ toCustomLexer::toCustomLexer(QObject *parent) : QsciLexerCustom(parent) - , lexer(LexerFactTwoParmSing::Instance().create("OracleGuiLexer", "", "toCustomLexer")) + , lexer(LexerFactTwoParmSing::Instance().create("OracleGuiLexer", "", "toCustomLexer - OracleGuiLexer")) , lineLength(32) , bufferLength(1024) , lineText(NULL) @@ -186,14 +186,14 @@ source = QString::fromUtf8(lineText, end - start + 1); lexer->setStatement(lineText, len); - int line = editor()->SendScintilla(QsciScintilla::SCI_LINEFROMPOSITION, start); - int state = -1; - if ( line > 0) - { - // the previous state may be needed for multi-line styling - int pos = editor()->SendScintilla(QsciScintilla::SCI_GETLINEENDPOSITION, line -1); - state = editor()->SendScintilla(QsciScintilla::SCI_GETSTYLEAT, pos); - } + int line = editor()->SendScintilla(QsciScintilla::SCI_LINEFROMPOSITION, start); + int state = -1; + if ( line > 0) + { + // the previous state may be needed for multi-line styling + int pos = editor()->SendScintilla(QsciScintilla::SCI_GETLINEENDPOSITION, line -1); + state = editor()->SendScintilla(QsciScintilla::SCI_GETSTYLEAT, pos); + } //qDebug() << '[' << line << ',' << start << "," << end << ' ' << lexer->firstWord() << "] " << "source =" << source << '"'; @@ -382,6 +382,7 @@ << SQLLexer::Token::L_PL_INTRODUCER << SQLLexer::Token::L_OTHER_INTRODUCER << SQLLexer::Token::L_LPAREN + << SQLLexer::Token::X_ONE_LINE ; try { Modified: branches/tora3/src/parsing/PLSQLGuiLexer.cc =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/PLSQLGuiLexer.hpp =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/tsqllexeroracle2.cc =================================================================== --- branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-06-29 00:48:00 UTC (rev 4662) +++ branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-06-29 20:11:36 UTC (rev 4663) @@ -13,40 +13,40 @@ { public: OracleGuiLexer(const QString &statement, const QString &name); - virtual ~OracleGuiLexer(); - virtual QString firstWord(); - virtual QString wordAt(const Position &); + virtual ~OracleGuiLexer(); + virtual QString firstWord(); + virtual QString wordAt(const Position &); virtual token_const_iterator findEndToken(token_const_iterator const &); - virtual void setStatement(const char *s, unsigned len = -1); - virtual void setStatement(const QString &s); + virtual void setStatement(const char *s, unsigned len = -1); + virtual void setStatement(const QString &s); protected: - virtual int size() const; + virtual int size() const; virtual const Token& LA(int pos) const; private: - void init(); - void clean(); - QByteArray QBAinput; - QByteArray QBAname; + void init(); + void clean(); + QByteArray QBAinput; + QByteArray QBAname; - Antlr3Impl::PLSQLGuiLexerTraits::InputStreamType* input; - Antlr3Impl::PLSQLGuiLexer *lxr; - Antlr3Impl::PLSQLGuiLexerTraits::TokenStreamType* tstream; + Antlr3Impl::PLSQLGuiLexerTraits::InputStreamType* input; + Antlr3Impl::PLSQLGuiLexer *lxr; + Antlr3Impl::PLSQLGuiLexerTraits::TokenStreamType* tstream; - User::PLSQLLexerTraits::InputStreamType* pinput; - User::PLSQLLexer *plxr; - User::PLSQLLexerTraits::TokenStreamType* ptstream; + // User::PLSQLLexerTraits::InputStreamType* pinput; + // User::PLSQLLexer *plxr; + // User::PLSQLLexerTraits::TokenStreamType* ptstream; - unsigned lastLine, lastColumn, lastIndex; + unsigned lastLine, lastColumn, lastIndex; - mutable Token retvalLA; + mutable Token retvalLA; }; OracleGuiLexer::OracleGuiLexer(const QString &statement, const QString &name) - : Lexer(statement, name) - , QBAinput(statement.toUtf8()) - , QBAname(name.toUtf8()) + : Lexer(statement, name) + , QBAinput(statement.toUtf8()) + , QBAname(name.toUtf8()) , lastLine(1) , lastColumn(0) , lastIndex(0) @@ -61,50 +61,50 @@ void OracleGuiLexer::init() { - input = new PLSQLGuiLexerTraits::InputStreamType( + input = new PLSQLGuiLexerTraits::InputStreamType( (const ANTLR_UINT8 *)QBAinput.data(), ANTLR_ENC_UTF8, QBAinput.size(), //strlen(data.c_str()), (ANTLR_UINT8*)QBAname.data()); - input->setUcaseLA(true); // ignore case + input->setUcaseLA(true); // ignore case - pinput = new User::PLSQLTraits::InputStreamType( - (const ANTLR_UINT8 *)QBAinput.data(), - ANTLR_ENC_UTF8, - QBAinput.size(), //strlen(data.c_str()), - (ANTLR_UINT8*)QBAname.data()); + // pinput = new User::PLSQLTraits::InputStreamType( + // (const ANTLR_UINT8 *)QBAinput.data(), + // ANTLR_ENC_UTF8, + // QBAinput.size(), //strlen(data.c_str()), + // (ANTLR_UINT8*)QBAname.data()); - pinput->setUcaseLA(true); // ignore case + // pinput->setUcaseLA(true); // ignore case - if (input == NULL || pinput == NULL ) - { - // TODO throw here - throw Exception(); - exit(ANTLR_ERR_NOMEM); - } + if (input == NULL /*|| pinput == NULL*/ ) + { + // TODO throw here + throw Exception(); + exit(ANTLR_ERR_NOMEM); + } - lxr = new PLSQLGuiLexer(input); - plxr = new User::PLSQLLexer(pinput); + lxr = new PLSQLGuiLexer(input); + //plxr = new User::PLSQLLexer(pinput); - if ( lxr == NULL || plxr == NULL) - { - // TODO throw here - throw Exception(); - exit(ANTLR_ERR_NOMEM); - } + if ( lxr == NULL /*|| plxr == NULL*/) + { + // TODO throw here + throw Exception(); + exit(ANTLR_ERR_NOMEM); + } - tstream = new PLSQLGuiLexerTraits::TokenStreamType(ANTLR_SIZE_HINT, lxr->get_tokSource()); - ptstream = new User::PLSQLTraits::TokenStreamType(ANTLR_SIZE_HINT, plxr->get_tokSource()); + tstream = new PLSQLGuiLexerTraits::TokenStreamType(ANTLR_SIZE_HINT, lxr->get_tokSource()); + //ptstream = new User::PLSQLTraits::TokenStreamType(ANTLR_SIZE_HINT, plxr->get_tokSource()); - if (tstream == NULL || ptstream == NULL) - { - // TODO throw here - //_mState = P_ERROR; - throw Exception(); - exit(ANTLR_ERR_NOMEM); - } - //_mState = P_LEXER; + if (tstream == NULL /*|| ptstream == NULL*/) + { + // TODO throw here + //_mState = P_ERROR; + throw Exception(); + exit(ANTLR_ERR_NOMEM); + } + //_mState = P_LEXER; }; void OracleGuiLexer::setStatement(const char *s, unsigned len) @@ -141,15 +141,15 @@ lxr = NULL; input = NULL; - if( ptstream) - delete ptstream; - if( plxr) - delete plxr; - if( pinput) - delete pinput; - ptstream = NULL; - plxr = NULL; - pinput = NULL; + // if( ptstream) + // delete ptstream; + // if( plxr) + // delete plxr; + // if( pinput) + // delete pinput; + // ptstream = NULL; + // plxr = NULL; + // pinput = NULL; } int OracleGuiLexer::size() const @@ -217,6 +217,7 @@ type = Token::L_OTHER_INTRODUCER; break; case PLSQLGuiLexer::SQLPLUS_COMMAND_INTRODUCER: + case PLSQLGuiLexer::SQLPLUS_COMMAND: type = Token::X_ONE_LINE; break; case PLSQLGuiLexer::NEWLINE: @@ -246,11 +247,11 @@ QString OracleGuiLexer::firstWord() { PLSQLGuiLexerTraits::CommonTokenType const* token = tstream->_LT(1); - if( token) - { + if( token) + { return QString((const char*)(token->getText().c_str())); - } - return QString(); + } + return QString(); } QString OracleGuiLexer::wordAt(const Position &pos) @@ -308,10 +309,10 @@ { case Token::L_PL_INTRODUCER: { - User::PLSQLParser *psr = new User::PLSQLParser(ptstream); - User::PLSQLParser::seq_of_statements_return r = psr->seq_of_statements(); + //User::PLSQLParser *psr = new User::PLSQLParser(ptstream); + //User::PLSQLParser::seq_of_statements_return r = psr->seq_of_statements(); - delete psr; + //delete psr; /* bool exitLoop = false; bool createFound = start->getText().compare("CREATE", Qt::CaseInsensitive) == 0; @@ -426,7 +427,11 @@ case PLSQLGuiLexer::COMMENT_ML: case PLSQLGuiLexer::COMMENT_SL: break; - case PLSQLGuiLexer::SOLIDUS: // TODO SOLIDUS must follow NEWLINE or NEWLINE+SPACE + case PLSQLGuiLexer::SQLPLUS_COMMAND: + case PLSQLGuiLexer::SQLPLUS_COMMAND_INTRODUCER: + exitLoop = true; + break; + case PLSQLGuiLexer::SQLPLUS_SOLIDUS: // TODO SOLIDUS must follow NEWLINE or NEWLINE+SPACE case PLSQLGuiLexer::SEMICOLON: case PLSQLGuiLexer::OTHER_COMMAND_INTRODUCER: // ALTER, GRANT, TRUNCATE, SET, ... // EXPLAIN PLAN SET STATEMENT - do not end this stmt @@ -472,6 +477,11 @@ } break; } + // Handle OneLiners (SQLPLUS commands) + case Token::X_ONE_LINE: + { + i = i.consumeUntil(PLSQLGuiLexer::NEWLINE); + } default: throw Exception(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2013-07-02 07:40:53
|
Revision: 4669 http://sourceforge.net/p/tora/code/4669 Author: ibre5041 Date: 2013-07-02 07:40:49 +0000 (Tue, 02 Jul 2013) Log Message: ----------- Ambiguous exit statement Modified Paths: -------------- branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g branches/tora3/src/parsing/PLSQLGuiLexer.cc branches/tora3/src/parsing/PLSQLGuiLexer.hpp branches/tora3/src/parsing/tsqllexeroracle2.cc Modified: branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g =================================================================== --- branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-07-01 21:37:18 UTC (rev 4668) +++ branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-07-02 07:40:49 UTC (rev 4669) @@ -87,8 +87,8 @@ 'INSERT' | 'UPDATE' | 'MERGE' | - 'COMMIT' | - 'ROLLBACK' | + 'COMMIT' | // COMMIT COMMENT 'Transfer From 7715 to 7720' WRITE IMMEDIATE NOWAIT; + 'ROLLBACK' | // ROLLBACK TO my_savepoint; 'DELETE'; PLSQL_COMMAND_INTRODUCER: @@ -125,6 +125,7 @@ { $type = PLSQL_RESERVED; } ; +// Ambiguous word can be either PLSQL function, SQL reserved word or SQLPLUS command SET @init { @@ -148,6 +149,24 @@ { $type = PLSQL_RESERVED; } ; +// Ambiguous word can be either PLSQL statement or SQLPLUS command +EXIT + @init + { + ANTLR_UINT32 linePos = getCharPositionInLine(); // TODO check linePos == 0 + ANTLR_UINT32 line = getLine(); + } + : ('EXIT' SPACE 'WHEN') => e='EXIT' { $type = PLSQL_RESERVED; } + | ('EXIT' SPACE_FRAGMENT SEMICOLON) => e='EXIT' { $type = PLSQL_RESERVED; } + | 'EXIT' + { + if( linePos == 0 ) + $type = SQLPLUS_COMMAND_INTRODUCER; + else + $type = PLSQL_RESERVED; + } + ; + // All these should start a NEWLINE, tricky to implement fragment SQLPLUS_COMMAND_INTRODUCER @@ -178,7 +197,7 @@ | 'DISCONNECT' | 'EDIT' | 'EXEC' ('U'('T'('E')?)?)? - | 'EXIT' + //| 'EXIT' // See EXIT rule | 'GET' | 'HELP' | 'HOST' @@ -1057,6 +1076,7 @@ this->rewind(start); this->dec_backtracking(); this->set_failedflag(false); + // TODO theoretically even this is SQLPLUS COMMAND " / " - check spaces before slash if(success && linePos == 0) $type = SQLPLUS_SOLIDUS; } Modified: branches/tora3/src/parsing/PLSQLGuiLexer.cc =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/PLSQLGuiLexer.hpp =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/tsqllexeroracle2.cc =================================================================== --- branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-07-01 21:37:18 UTC (rev 4668) +++ branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-07-02 07:40:49 UTC (rev 4669) @@ -386,9 +386,8 @@ case PACKAGE *10 + PROCEDURE: stack << PROCEDURE; // PROCEDURE inside PACKAGE (push PROCEDURE) continue; - case PROCEDURE *10 + PROCEDURE: - exitLoop = true; // PROCEDURE inside PROCEDURE => failure exit loop - continue; + case PROCEDURE *10 + PROCEDURE: + continue; // PROCEDURE inside PROCEDURE => (One Procedure forward decl follows another one. Do nothing) case DECLARE *10 + PROCEDURE: stack << PROCEDURE; // PROCEDURE inside DECLARE/IS/AS (push nested PROCEDURE) continue; @@ -410,7 +409,11 @@ exitLoop = true; continue; case DECLARE *10 + DECLARE: - exitLoop = true; // DECLARE inside DECLARE => failure exit loop + + if( i->getText().compare("IS", Qt::CaseInsensitive) == 0 || + i->getText().compare("AS", Qt::CaseInsensitive) == 0) + continue; // IS/AS inside DECLARE => CURSOR X IS SELECT * FROM T AS OF TIMESTAMP Y; + exitLoop = true; // DECLARE inside DECLARE => failure exit loop continue; case BEGIN *10 + DECLARE: case LOOP *10 + DECLARE: @@ -595,6 +598,8 @@ throw Exception(); } + if( i == start) // If the statement contains only one token advance forward. (Never return the same token) + i++; return i; } @@ -610,7 +615,7 @@ return PROCEDURE; else if ( token.getText().compare("DECLARE", Qt::CaseInsensitive) == 0 || token.getText().compare("AS", Qt::CaseInsensitive) == 0 || - token.getText().compare("IS", Qt::CaseInsensitive) == 0 ) // TODO also part of IS NULL, IS AS SET + token.getText().compare("IS", Qt::CaseInsensitive) == 0 ) // TODO also part of IS NULL, IS AS SET, CURSOR X IS SELECT ...; return DECLARE; else if ( token.getText().compare("BEGIN", Qt::CaseInsensitive) == 0 ) return BEGIN; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2013-07-02 20:54:02
|
Revision: 4670 http://sourceforge.net/p/tora/code/4670 Author: ibre5041 Date: 2013-07-02 20:53:57 +0000 (Tue, 02 Jul 2013) Log Message: ----------- Modified Paths: -------------- branches/tora3/extlibs/parsing.cpp/Makefile branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g branches/tora3/extlibs/parsing.cpp/UserGuiTraits.hpp branches/tora3/src/parsing/PLSQLGuiLexer.cc branches/tora3/src/parsing/PLSQLGuiLexer.hpp branches/tora3/src/parsing/UserGuiTraits.hpp branches/tora3/src/parsing/tsqllexer.h branches/tora3/src/parsing/tsqllexer.inl branches/tora3/src/parsing/tsqllexeroracle2.cc Added Paths: ----------- branches/tora3/extlibs/parsing.cpp/TokenAttr.hpp branches/tora3/src/parsing/TokenAttr.hpp Modified: branches/tora3/extlibs/parsing.cpp/Makefile =================================================================== --- branches/tora3/extlibs/parsing.cpp/Makefile 2013-07-02 07:40:49 UTC (rev 4669) +++ branches/tora3/extlibs/parsing.cpp/Makefile 2013-07-02 20:53:57 UTC (rev 4670) @@ -61,6 +61,12 @@ clean: rm -f *.o *Lexer*.[ch]pp *Parser.[ch]pp t0 t1 t2 t3 t4 m0 s0 s1 s2 *.tokens +install: + cp PLSQLGuiLexer.cpp ../../src/parsing/PLSQLGuiLexer.cc + cp PLSQLGuiLexer.hpp ../../src/parsing/PLSQLGuiLexer.hpp + cp UserGuiTraits.hpp ../../src/parsing/UserGuiTraits.hpp + cp TokenAttr.hpp ../../src/parsing/TokenAttr.hpp + %.u: %.g @echo "Bulding dependencies for "$< java -jar $(ANTLR) -depend $< > $@ Modified: branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g =================================================================== --- branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-07-02 07:40:49 UTC (rev 4669) +++ branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-07-02 20:53:57 UTC (rev 4670) @@ -92,13 +92,15 @@ 'DELETE'; PLSQL_COMMAND_INTRODUCER: - 'CALL' | - 'DECLARE' | - 'BEGIN' | - 'PROCEDURE' | - 'FUNCTION' | - 'TRIGGER' | - 'CREATE'; + c='CALL' | // TODO hande call in the TRIGGER declaration + c='DECLARE' { $c->setBlockContext(BlkCtx::CREATE); } | + b='BEGIN' { $b->setBlockContext(BlkCtx::BEGIN); } | + p='PROCEDURE' { $p->setBlockContext(BlkCtx::PROCEDURE); } | + f='FUNCTION' { $f->setBlockContext(BlkCtx::PROCEDURE); } | + t='TRIGGER' { $t->setBlockContext(BlkCtx::PROCEDURE); } | + c='CREATE' { $c->setBlockContext(BlkCtx::CREATE); } | + p='PACKAGE' { $p->setBlockContext(BlkCtx::PACKAGE); } + ; OTHER_COMMAND_INTRODUCER: 'ALTER' | @@ -231,487 +233,487 @@ ; // All these PLSQL constructs can also contain 'END'; -R_IF: r='IF'; +R_IF: r='IF' { $r->setBlockContext(BlkCtx::LOOP); }; R_THEN: r='THEN'; -R_LOOP: r='LOOP'; -R_CASE: r='CASE'; -R_END: r='END' { $r->setGuiClass(1); }; +R_LOOP: r='LOOP' { $r->setBlockContext(BlkCtx::LOOP); }; +R_CASE: r='CASE' { $r->setBlockContext(BlkCtx::LOOP); }; +R_END: r='END' { $r->setBlockContext(BlkCtx::END); }; PLSQL_RESERVED: - 'A' | /* A_KEY: */ - 'ADD' | /* ADD_KEY: */ - 'ADVISE' | /* ADVISE_KEY: */ - 'AFTER' | /* AFTER_KEY: */ - 'AGENT' | /* AGENT_KEY: */ - 'AGGREGATE' | /* AGGREGATE_KEY: */ - 'ALL' | /* SQL92_RESERVED_ALL:*/ - //'ALTER' | /* SQL92_RESERVED_ALTER:*/ - //'ANALYZE' | /* ANALYZE_KEY: */ - 'AND' | /* SQL92_RESERVED_AND:*/ - 'ANY' | /* SQL92_RESERVED_ANY:*/ - 'ARRAY' | /* ARRAY_KEY: */ - 'AS' | /* SQL92_RESERVED_AS:*/ - 'ASC' | /* SQL92_RESERVED_ASC:*/ - //'ASSOCIATE' | /* ASSOCIATE_KEY: */ - 'AT' | /* AT_KEY: */ - 'ATTRIBUTE' | /* ATTRIBUTE_KEY: */ - //'AUDIT' | /* AUDIT_KEY: */ - 'AUTHID' | /* AUTHID_KEY: */ - 'AUTO' | /* AUTO_KEY: */ - 'AUTOMATIC' | /* AUTOMATIC_KEY: */ - 'AUTONOMOUS_TRANSACTION' | /* AUTONOMOUS_TRANSACTION_KEY: */ - 'BATCH' | /* BATCH_KEY: */ - 'BEFORE' | /* BEFORE_KEY: */ - //'BEGIN' | /* SQL92_RESERVED_BEGIN:*/ - 'BETWEEN' | /* SQL92_RESERVED_BETWEEN:*/ - 'BFILE' | /* BFILE_KEY: */ - 'BINARY_DOUBLE' | /* BINARY_DOUBLE_KEY: */ - 'BINARY_DOUBLE_INFINITY' | /* BINARY_DOUBLE_INFINITY_KEY: */ - 'BINARY_DOUBLE_MAX_NORMAL' | /* BINARY_DOUBLE_MAX_NORMAL_KEY: */ - 'BINARY_DOUBLE_MAX_SUBNORMAL' | /* BINARY_DOUBLE_MAX_SUBNORMAL_KEY: */ - 'BINARY_DOUBLE_MIN_NORMAL' | /* BINARY_DOUBLE_MIN_NORMAL_KEY: */ - 'BINARY_DOUBLE_MIN_SUBNORMAL' | /* BINARY_DOUBLE_MIN_SUBNORMAL_KEY: */ - 'BINARY_DOUBLE_NAN' | /* BINARY_DOUBLE_NAN_KEY: */ - 'BINARY_FLOAT' | /* BINARY_FLOAT_KEY: */ - 'BINARY_FLOAT_INFINITY' | /* BINARY_FLOAT_INFINITY_KEY: */ - 'BINARY_FLOAT_MAX_NORMAL' | /* BINARY_FLOAT_MAX_NORMAL_KEY: */ - 'BINARY_FLOAT_MAX_SUBNORMAL' | /* BINARY_FLOAT_MAX_SUBNORMAL_KEY: */ - 'BINARY_FLOAT_MIN_NORMAL' | /* BINARY_FLOAT_MIN_NORMAL_KEY: */ - 'BINARY_FLOAT_MIN_SUBNORMAL' | /* BINARY_FLOAT_MIN_SUBNORMAL_KEY: */ - 'BINARY_FLOAT_NAN' | /* BINARY_FLOAT_NAN_KEY: */ - 'BINARY_INTEGER' | /* BINARY_INTEGER_KEY: */ - 'BIT' | /* BIT_KEY: */ - 'BIT_LENGTH' | /* BIT_LENGTH_KEY: */ - 'BLOB' | /* BLOB_KEY: */ - 'BLOCK' | /* BLOCK_KEY: */ - 'BODY' | /* BODY_KEY: */ - 'BOOLEAN' | /* BOOLEAN_KEY: */ - 'BOTH' | /* BOTH_KEY: */ - 'BREADTH' | /* BREADTH_KEY: */ - 'BULK' | /* BULK_KEY: */ - 'BULK_ROWCOUNT' | /* PERCENT_BULK_ROWCOUNT_KEY: */ - 'BY' | /* SQL92_RESERVED_BY:*/ - 'BYTE' | /* BYTE_KEY: */ - 'C' | /* C_KEY: */ - 'CACHE' | /* CACHE_KEY: */ - //'CALL' | /* CALL_KEY: */ - 'CANONICAL' | /* CANONICAL_KEY: */ - 'CASCADE' | /* CASCADE_KEY: */ - //'CASE' | /* SQL92_RESERVED_CASE:*/ - 'CHAR' | /* CHAR_KEY: */ - 'CHARACTER' | /* CHARACTER_KEY: */ - 'CHARACTER_LENGTH' | /* CHARACTER_LENGTH_KEY: */ - 'CHAR_CS' | /* CHAR_CS_KEY: */ - 'CHARSET' | /* PERCENT_CHARSET_KEY: */ - 'CHECK' | /* SQL92_RESERVED_CHECK:*/ - 'CLOB' | /* CLOB_KEY: */ - 'CLOSE' | /* CLOSE_KEY: */ - 'CLUSTER' | /* CLUSTER_KEY: */ - 'CLUSTERS' | /* PLSQL_RESERVED_CLUSTERS:*/ - 'COLAUTH' | /* PLSQL_RESERVED_COLAUTH:*/ - 'COLLATE' | /* COLLATE_KEY: */ - 'COLUMNS' | /* COLUMNS_KEY: */ - //'COMMENT' | /* COMMENT_KEY: */ - //'COMMIT' | /* COMMIT_KEY: */ - 'COMMITTED' | /* COMMITTED_KEY: */ - 'COMPATIBILITY' | /* COMPATIBILITY_KEY: */ - 'COMPILE' | /* COMPILE_KEY: */ - 'COMPOUND' | /* COMPOUND_KEY: */ - 'COMPRESS' | /* PLSQL_RESERVED_COMPRESS:*/ - //'CONNECT' | /* SQL92_RESERVED_CONNECT:*/ - //'CONNECT_BY_ROOT' | /* SQL_NON_RESERVED_CONNECT_BY_ROOT:*/ - 'CONSTANT' | /* CONSTANT_KEY: */ - 'CONSTRAINT' | /* CONSTRAINT_KEY: */ - 'CONSTRAINTS' | /* CONSTRAINTS_KEY: */ - 'CONSTRUCTOR' | /* CONSTRUCTOR_KEY: */ - 'CONTENT' | /* CONTENT_KEY: */ - 'CONTEXT' | /* CONTEXT_KEY: */ - 'CONTINUE' | /* CONTINUE_KEY: */ - 'CORRESPONDING' | /* CORRESPONDING_KEY: */ - 'CORRUPT_XID' | /* CORRUPT_XID_KEY: */ - 'CORRUPT_XID_ALL' | /* CORRUPT_XID_ALL_KEY: */ - 'COST' | /* COST_KEY: */ - 'CRASH' | /* PLSQL_RESERVED_CRASH:*/ - //'CREATE' | /* SQL92_RESERVED_CREATE:*/ - 'CROSS' | /* CROSS_KEY: */ - 'CUBE' | /* CUBE_KEY: */ - 'CURRENT' | /* SQL92_RESERVED_CURRENT:*/ - 'CURRENT_USER' | /* CURRENT_USER_KEY: */ - 'CURSOR' | /* SQL92_RESERVED_CURSOR:*/ - 'CUSTOMDATUM' | /* CUSTOMDATUM_KEY: */ - 'CYCLE' | /* CYCLE_KEY: */ - 'DATA' | /* DATA_KEY: */ - 'DATABASE' | /* DATABASE_KEY: */ - 'DATE' | /* SQL92_RESERVED_DATE:*/ - 'DAY' | /* DAY_KEY: */ - 'DB_ROLE_CHANGE' | /* DB_ROLE_CHANGE_KEY: */ - 'DDL' | /* DDL_KEY: */ - 'DEBUG' | /* DEBUG_KEY: */ - 'DEC' | /* DEC_KEY: */ - 'DECIMAL' | /* DECIMAL_KEY: */ - //'DECLARE' | /* SQL92_RESERVED_DECLARE:*/ - 'DECREMENT' | /* DECREMENT_KEY: */ - 'DEFAULT' | /* SQL92_RESERVED_DEFAULT:*/ - 'DEFAULTS' | /* DEFAULTS_KEY: */ - 'DEFERRED' | /* DEFERRED_KEY: */ - 'DEFINER' | /* DEFINER_KEY: */ - //'DELETE' | /* SQL92_RESERVED_DELETE:*/ - //'DESC' | /* SQL92_RESERVED_DESC:*/ - 'DETERMINISTIC' | /* DETERMINISTIC_KEY: */ - 'DIMENSION' | /* DIMENSION_KEY: */ - 'DISABLE' | /* DISABLE_KEY: */ - //'DISASSOCIATE' | /* DISASSOCIATE_KEY: */ - 'DISTINCT' | /* SQL92_RESERVED_DISTINCT:*/ - 'DML' | /* DML_KEY: */ - 'DOCUMENT' | /* DOCUMENT_KEY: */ - 'DOUBLE' | /* DOUBLE_KEY: */ - //'DROP' | /* SQL92_RESERVED_DROP:*/ - 'DSINTERVAL_UNCONSTRAINED' | /* DSINTERVAL_UNCONSTRAINED_KEY: */ - 'EACH' | /* EACH_KEY: */ - 'ELEMENT' | /* ELEMENT_KEY: */ - 'ELSE' | /* SQL92_RESERVED_ELSE:*/ - 'ELSIF' | /* PLSQL_NON_RESERVED_ELSIF:*/ - 'EMPTY' | /* EMPTY_KEY: */ - 'ENABLE' | /* ENABLE_KEY: */ - 'ENCODING' | /* ENCODING_KEY: */ - //'END' | /* SQL92_RESERVED_END:*/ - 'ENTITYESCAPING' | /* ENTITYESCAPING_KEY: */ - 'ERRORS' | /* ERRORS_KEY: */ - 'ESCAPE' | /* ESCAPE_KEY: */ - 'EVALNAME' | /* EVALNAME_KEY: */ - 'EXCEPT' | /* EXCEPT_KEY: */ - 'EXCEPTION' | /* SQL92_RESERVED_EXCEPTION:*/ - 'EXCEPTIONS' | /* EXCEPTIONS_KEY: */ - 'EXCEPTION_INIT' | /* EXCEPTION_INIT_KEY: */ - 'EXCLUDE' | /* EXCLUDE_KEY: */ - 'EXCLUSIVE' | /* PLSQL_RESERVED_EXCLUSIVE:*/ - 'EXECUTE' | /* EXECUTE_KEY: */ - 'EXISTS' | /* SQL92_RESERVED_EXISTS:*/ - //'EXIT' | /* EXIT_KEY: */ - //'EXPLAIN' | /* EXPLAIN_KEY: */ - 'EXTEND' | /* EXTEND_KEY: */ - 'EXTERNAL' | /* EXTERNAL_KEY: */ - 'FAILURE' | /* FAILURE_KEY: */ - 'FALSE' | /* SQL92_RESERVED_FALSE:*/ - 'FETCH' | /* SQL92_RESERVED_FETCH:*/ - 'FINAL' | /* FINAL_KEY: */ - //'FLASHBACK' | /* FLASHBACK_KEY: */ - 'FLOAT' | /* FLOAT_KEY: */ - 'FOLLOWING' | /* FOLLOWING_KEY: */ - 'FOUND' | /* PERCENT_FOUND_KEY: */ - 'FOLLOWS' | /* FOLLOWS_KEY: */ - 'FOR' | /* SQL92_RESERVED_FOR:*/ - 'FORALL' | /* FORALL_KEY: */ - 'FORCE' | /* FORCE_KEY: */ - 'FROM' | /* SQL92_RESERVED_FROM:*/ - 'FULL' | /* FULL_KEY: */ - //'FUNCTION' | /* FUNCTION_KEY: */ - 'GLOBAL' | /* GLOBAL_KEY: */ - 'GOTO' | /* SQL92_RESERVED_GOTO:*/ - //'GRANT' | /* SQL92_RESERVED_GRANT:*/ - 'GROUP' | /* SQL92_RESERVED_GROUP:*/ - 'GUARD' | /* GUARD_KEY: */ - 'HASH' | /* HASH_KEY: */ - 'HAVING' | /* SQL92_RESERVED_HAVING:*/ - 'HIDE' | /* HIDE_KEY: */ - 'HOUR' | /* HOUR_KEY: */ - 'IDENTIFIED' | /* PLSQL_RESERVED_IDENTIFIED:*/ - //'IF' | /* PLSQL_RESERVED_IF:*/ - 'IGNORE' | /* IGNORE_KEY: */ - 'IMMEDIATE' | /* IMMEDIATE_KEY: */ - 'IN' | /* SQL92_RESERVED_IN:*/ - 'INCLUDE' | /* INCLUDE_KEY: */ - 'INCLUDING' | /* INCLUDING_KEY: */ - 'INCREMENT' | /* INCREMENT_KEY: */ - 'INDENT' | /* INDENT_KEY: */ - 'INDEX' | /* PLSQL_RESERVED_INDEX:*/ - 'INDEXED' | /* INDEXED_KEY: */ - 'INDEXES' | /* PLSQL_RESERVED_INDEXES:*/ - 'INDICATOR' | /* INDICATOR_KEY: */ - 'INDICES' | /* INDICES_KEY: */ - 'INFINITE' | /* INFINITE_KEY: */ - 'INLINE' | /* INLINE_KEY: */ - 'INNER' | /* INNER_KEY: */ - 'INOUT' | /* INOUT_KEY: */ - //'INSERT' | /* SQL92_RESERVED_INSERT:*/ - 'INSTANTIABLE' | /* INSTANTIABLE_KEY: */ - 'INSTEAD' | /* INSTEAD_KEY: */ - 'INT' | /* INT_KEY: */ - 'INTEGER' | /* INTEGER_KEY: */ - 'INTERSECT' | /* SQL92_RESERVED_INTERSECT:*/ - 'INTERVAL' | /* INTERVAL_KEY: */ - 'INTO' | /* SQL92_RESERVED_INTO:*/ - 'INVALIDATE' | /* INVALIDATE_KEY: */ - 'IS' | /* SQL92_RESERVED_IS:*/ - 'ISOPEN' | /* PERCENT_ISOPEN_KEY: */ - 'ISOLATION' | /* ISOLATION_KEY: */ - 'ITERATE' | /* ITERATE_KEY: */ - 'JAVA' | /* JAVA_KEY: */ - 'JOIN' | /* JOIN_KEY: */ - 'KEEP' | /* KEEP_KEY: */ - 'LANGUAGE' | /* LANGUAGE_KEY: */ - 'LEADING' | /* LEADING_KEY: */ - 'LEFT' | /* LEFT_KEY: */ - 'LEVEL' | /* LEVEL_KEY: */ - 'LIBRARY' | /* LIBRARY_KEY: */ - 'LIKE' | /* SQL92_RESERVED_LIKE:*/ - 'LIKE2' | /* LIKE2_KEY: */ - 'LIKE4' | /* LIKE4_KEY: */ - 'LIKEC' | /* LIKEC_KEY: */ - 'LIMIT' | /* LIMIT_KEY: */ - 'LINK' | /* LINK_KEY: */ - 'LOCAL' | /* LOCAL_KEY: */ - //'LOCK' | /* PLSQL_RESERVED_LOCK:*/ - 'LOCKED' | /* LOCKED_KEY: */ - 'LOGOFF' | /* LOGOFF_KEY: */ - 'LOGON' | /* LOGON_KEY: */ - 'LONG' | /* LONG_KEY: */ - //'LOOP' | /* LOOP_KEY: */ - 'MAIN' | /* MAIN_KEY: */ - 'MAP' | /* MAP_KEY: */ - 'MATCH' | /* MATCH_KEY: */ - 'MATCHED' | /* MATCHED_KEY: */ - 'MAXVALUE' | /* MAXVALUE_KEY: */ - 'MEASURES' | /* MEASURES_KEY: */ - 'MEMBER' | /* MEMBER_KEY: */ - //'MERGE' | /* MERGE_KEY: */ - 'MINUS' | /* PLSQL_RESERVED_MINUS:*/ - 'MINUTE' | /* MINUTE_KEY: */ - 'MINVALUE' | /* MINVALUE_KEY: */ - 'MLSLABEL' | /* MLSLABEL_KEY: */ - 'MODE' | /* PLSQL_RESERVED_MODE:*/ - 'MODEL' | /* SQL_NON_RESERVED_MODEL:*/ - 'MODIFY' | /* MODIFY_KEY: */ - 'MODULE' | /* MODULE_KEY: */ - 'MONTH' | /* MONTH_KEY: */ - 'MULTISET' | /* MULTISET_KEY: */ - 'NAME' | /* NAME_KEY: */ - 'NAN' | /* NAN_KEY: */ - 'NATIONAL' | /* NATIONAL_KEY: */ - 'NATURAL' | /* NATURAL_KEY: */ - 'NATURALN' | /* NATURALN_KEY: */ - 'NAV' | /* NAV_KEY: */ - 'NCHAR' | /* NCHAR_KEY: */ - 'NCHAR_CS' | /* NCHAR_CS_KEY: */ - 'NCLOB' | /* NCLOB_KEY: */ - 'NESTED' | /* NESTED_KEY: */ - 'NEW' | /* NEW_KEY: */ - 'NEXTVAL' | /* NEXTVAL_KEY: */ - 'NO' | /* NO_KEY: */ - //'NOAUDIT' | /* NOAUDIT_KEY: */ - 'NOCACHE' | /* NOCACHE_KEY: */ - 'NOCOMPRESS' | /* PLSQL_RESERVED_NOCOMPRESS:*/ - 'NOCOPY' | /* NOCOPY_KEY: */ - 'NOCYCLE' | /* NOCYCLE_KEY: */ - 'NOENTITYESCAPING' | /* NOENTITYESCAPING_KEY: */ - 'NOMAXVALUE' | /* NOMAXVALUE_KEY: */ - 'NOMINVALUE' | /* NOMINVALUE_KEY: */ - 'NONE' | /* NONE_KEY: */ - 'NOORDER' | /* NOORDER_KEY: */ - 'NOSCHEMACHECK' | /* NOSCHEMACHECK_KEY: */ - 'NOT' | /* SQL92_RESERVED_NOT:*/ - 'NOTFOUND' | /* PERCENT_NOTFOUND_KEY: */ - 'NOTHING' | /* NOTHING_KEY: */ - 'NOWAIT' | /* PLSQL_RESERVED_NOWAIT:*/ - 'NULL' | /* SQL92_RESERVED_NULL:*/ - 'NULLS' | /* NULLS_KEY: */ - 'NUMBER' | /* NUMBER_KEY: */ - 'NUMERIC' | /* NUMERIC_KEY: */ - 'NVARCHAR2' | /* NVARCHAR2_KEY: */ - 'OBJECT' | /* OBJECT_KEY: */ - 'OCTET_LENGTH' | /* OCTET_LENGTH_KEY: */ - 'OF' | /* SQL92_RESERVED_OF:*/ - 'OFF' | /* OFF_KEY: */ - 'OID' | /* OID_KEY: */ - 'OLD' | /* OLD_KEY: */ - 'ON' | /* SQL92_RESERVED_ON:*/ - 'ONLY' | /* ONLY_KEY: */ - 'OPEN' | /* OPEN_KEY: */ - 'OPTION' | /* SQL92_RESERVED_OPTION:*/ - 'OR' | /* SQL92_RESERVED_OR:*/ - 'ORADATA' | /* ORADATA_KEY: */ - 'ORDER' | /* SQL92_RESERVED_ORDER:*/ - 'ORDINALITY' | /* ORDINALITY_KEY: */ - 'OSERROR' | /* OSERROR_KEY: */ - 'OUT' | /* OUT_KEY: */ - 'OUTER' | /* OUTER_KEY: */ - 'OVER' | /* OVER_KEY: */ - 'OVERLAPS' | /* SQL92_RESERVED_OVERLAPS:*/ - 'OVERRIDING' | /* OVERRIDING_KEY: */ - 'PACKAGE' | /* PACKAGE_KEY: */ - 'PARALLEL' | /* PARALLEL_KEY: */ - 'PARALLEL_ENABLE' | /* PARALLEL_ENABLE_KEY: */ - 'PARAMETERS' | /* PARAMETERS_KEY: */ - 'PARENT' | /* PARENT_KEY: */ - 'PARTIAL' | /* PARTIAL_KEY: */ - 'PARTITION' | /* PARTITION_KEY: */ - 'PASSING' | /* PASSING_KEY: */ - 'PIPELINED' | /* PIPELINED_KEY: */ - 'PIVOT' | /* SQL_NON_RESERVED_PIVOT:*/ - 'PLAN' | /* PLAN_KEY: */ - 'PLS_INTEGER' | /* PLS_INTEGER_KEY: */ - 'POSITION' | /* POSITION_KEY: */ - 'POSITIVE' | /* POSITIVE_KEY: */ - 'POSITIVEN' | /* POSITIVEN_KEY: */ - 'PRAGMA' | /* PRAGMA_KEY: */ - 'PRECEDING' | /* PRECEDING_KEY: */ - 'PRECISION' | /* PRECISION_KEY: */ - 'PRESENT' | /* PRESENT_KEY: */ - 'PRIOR' | /* SQL92_RESERVED_PRIOR:*/ - //'PROCEDURE' | /* SQL92_RESERVED_PROCEDURE:*/ - 'PUBLIC' | /* SQL92_RESERVED_PUBLIC:*/ - 'QUERY' | /* QUERY_KEY: */ - 'RAISE' | /* RAISE_KEY: */ - 'RANGE' | /* RANGE_KEY: */ - 'RAW' | /* RAW_KEY: */ - 'READ' | /* READ_KEY: */ - 'REAL' | /* REAL_KEY: */ - 'RECORD' | /* RECORD_KEY: */ - 'REFERENCE' | /* REFERENCE_KEY: */ - 'REFERENCING' | /* REFERENCING_KEY: */ - 'REJECT' | /* REJECT_KEY: */ - 'RELIES_ON' | /* RELIES_ON_KEY: */ - //'RENAME' | /* RENAME_KEY: */ - 'REPLACE' | /* SQL92_NON_RESERVED_REPLACE:*/ - 'RESOURCE' | /* PLSQL_RESERVED_RESOURCE:*/ - 'RESPECT' | /* RESPECT_KEY: */ - 'RESTRICT_REFERENCES' | /* RESTRICT_REFERENCES_KEY: */ - 'RESULT' | /* RESULT_KEY: */ - 'RESULT_CACHE' | /* RESULT_CACHE_KEY: */ - 'RESUMABLE' | /* RESUMABLE_KEY: */ - 'RETURN' | /* RETURN_KEY: */ - 'RETURNING' | /* RETURNING_KEY: */ - 'REUSE' | /* REUSE_KEY: */ - 'REVERSE' | /* REVERSE_KEY: */ - 'REVOKE' | /* SQL92_RESERVED_REVOKE:*/ - 'RIGHT' | /* RIGHT_KEY: */ - 'ROLE' | /* ROLE_KEY: */ - //'ROLLBACK' | /* ROLLBACK_KEY: */ - 'ROLLUP' | /* ROLLUP_KEY: */ - 'ROW' | /* ROW_KEY: */ - 'ROWCOUNT' | /* PERCENT_ROWCOUNT_KEY: */ - 'ROWID' | /* ROWID_KEY: */ - 'ROWS' | /* ROWS_KEY: */ - 'ROWTYPE' | /* PERCENT_ROWTYPE_KEY: */ - 'RULES' | /* RULES_KEY: */ - 'SAMPLE' | /* SAMPLE_KEY: */ - 'SAVE' | /* SAVE_KEY: */ - //'SAVEPOINT' | /* SAVEPOINT_KEY: */ - 'SCHEMA' | /* SCHEMA_KEY: */ - 'SCHEMACHECK' | /* SCHEMACHECK_KEY: */ - 'SCN' | /* SCN_KEY: */ - 'SEARCH' | /* SEARCH_KEY: */ - 'SECOND' | /* SECOND_KEY: */ - 'SEED' | /* SEED_KEY: */ - 'SEGMENT' | /* SEGMENT_KEY: */ - //'SELECT' | /* SQL92_RESERVED_SELECT:*/ - 'SELF' | /* SELF_KEY: */ - 'SEQUENCE' | /* SEQUENCE_KEY: */ - 'SEQUENTIAL' | /* SEQUENTIAL_KEY: */ - 'SERIALIZABLE' | /* SERIALIZABLE_KEY: */ - 'SERIALLY_REUSABLE' | /* SERIALLY_REUSABLE_KEY: */ - 'SERVERERROR' | /* SERVERERROR_KEY: */ - 'SERVEROUTPUT' | /* SERVEROUTPUT_KEY: */ - 'SESSION' | /* SESSION_KEY: */ - 'SESSION_USER' | /* SESSION_USER_KEY: */ - //'SET' | /* SET_KEY: */ - 'SETS' | /* SETS_KEY: */ - 'SETTINGS' | /* SETTINGS_KEY: */ - 'SHARE' | /* PLSQL_RESERVED_SHARE:*/ - 'SHOW' | /* SHOW_KEY: */ - 'SHUTDOWN' | /* SHUTDOWN_KEY: */ - 'SIBLINGS' | /* SIBLINGS_KEY: */ - 'SIGNTYPE' | /* SIGNTYPE_KEY: */ - 'SIMPLE_INTEGER' | /* SIMPLE_INTEGER_KEY: */ - 'SINGLE' | /* SINGLE_KEY: */ - 'SIZE' | /* SQL92_RESERVED_SIZE:*/ - 'SKIP' | /* SKIP_KEY: */ - 'SMALLINT' | /* SMALLINT_KEY: */ - 'SNAPSHOT' | /* SNAPSHOT_KEY: */ - 'SOME' | /* SOME_KEY: */ - 'SPECIFICATION' | /* SPECIFICATION_KEY: */ - 'SQLDATA' | /* SQLDATA_KEY: */ - 'SQLERROR' | /* SQLERROR_KEY: */ - 'STANDALONE' | /* STANDALONE_KEY: */ - //'START' | /* PLSQL_RESERVED_START:*/ - //'STARTUP' | /* STARTUP_KEY: */ - 'STATEMENT' | /* STATEMENT_KEY: */ - 'STATEMENT_ID' | /* STATEMENT_ID_KEY: */ - 'STATIC' | /* STATIC_KEY: */ - 'STATISTICS' | /* STATISTICS_KEY: */ - 'STRING' | /* STRING_KEY: */ - 'SUBMULTISET' | /* SUBMULTISET_KEY: */ - 'SUBPARTITION' | /* SUBPARTITION_KEY: */ - 'SUBSTITUTABLE' | /* SUBSTITUTABLE_KEY: */ - 'SUBTYPE' | /* SUBTYPE_KEY: */ - 'SUCCESS' | /* SUCCESS_KEY: */ - 'SUSPEND' | /* SUSPEND_KEY: */ - 'SYSTEM' | /* SYSTEM_KEY: */ - 'SYSTEM_USER' | /* SYSTEM_USER_KEY: */ - 'TABAUTH' | /* PLSQL_RESERVED_TABAUTH:*/ - 'TABLE' | /* SQL92_RESERVED_TABLE:*/ - 'THE' | /* SQL92_RESERVED_THE:*/ - //'THEN' | /* SQL92_RESERVED_THEN:*/ - 'TIME' | /* TIME_KEY: */ - 'TIMEOUT' | /* TIMEOUT_KEY: */ - 'TIMESTAMP' | /* TIMESTAMP_KEY: */ - 'TIMESTAMP_LTZ_UNCONSTRAINED' | /* TIMESTAMP_LTZ_UNCONSTRAINED_KEY: */ - 'TIMESTAMP_TZ_UNCONSTRAINED' | /* TIMESTAMP_TZ_UNCONSTRAINED_KEY: */ - 'TIMESTAMP_UNCONSTRAINED' | /* TIMESTAMP_UNCONSTRAINED_KEY: */ - 'TIMEZONE_ABBR' | /* TIMEZONE_ABBR_KEY: */ - 'TIMEZONE_HOUR' | /* TIMEZONE_HOUR_KEY: */ - 'TIMEZONE_MINUTE' | /* TIMEZONE_MINUTE_KEY: */ - 'TIMEZONE_REGION' | /* TIMEZONE_REGION_KEY: */ - 'TO' | /* SQL92_RESERVED_TO:*/ - 'TRAILING' | /* TRAILING_KEY: */ - 'TRANSACTION' | /* TRANSACTION_KEY: */ - //'TRIGGER' | /* TRIGGER_KEY: */ - 'TRUE' | /* SQL92_RESERVED_TRUE:*/ - //'TRUNCATE' | /* TRUNCATE_KEY: */ - 'TYPE' | /* TYPE_KEY: */ - 'UNBOUNDED' | /* UNBOUNDED_KEY: */ - 'UNDER' | /* UNDER_KEY: */ - 'UNION' | /* SQL92_RESERVED_UNION:*/ - 'UNIQUE' | /* SQL92_RESERVED_UNIQUE:*/ - 'UNKNOWN' | /* UNKNOWN_KEY: */ - 'UNLIMITED' | /* UNLIMITED_KEY: */ - 'UNPIVOT' | /* SQL_NON_RESERVED_UNPIVOT:*/ - 'UNTIL' | /* UNTIL_KEY: */ - //'UPDATE' | /* SQL92_RESERVED_UPDATE:*/ - 'UPDATED' | /* UPDATED_KEY: */ - 'UPSERT' | /* UPSERT_KEY: */ - 'UROWID' | /* UROWID_KEY: */ - 'USE' | /* USE_KEY: */ - 'USING' | /* PLSQL_NON_RESERVED_USING:*/ - 'VALIDATE' | /* VALIDATE_KEY: */ - 'VALUES' | /* SQL92_RESERVED_VALUES:*/ - 'VARCHAR' | /* VARCHAR_KEY: */ - 'VARCHAR2' | /* VARCHAR2_KEY: */ - //'VARIABLE' | /* VARIABLE_KEY: */ - 'VARRAY' | /* VARRAY_KEY: */ - 'VARYING' | /* VARYING_KEY: */ - 'VERSION' | /* VERSION_KEY: */ - 'VERSIONS' | /* VERSIONS_KEY: */ - 'VIEW' | /* SQL92_RESERVED_VIEW:*/ - 'VIEWS' | /* PLSQL_RESERVED_VIEWS:*/ - 'WAIT' | /* WAIT_KEY: */ - 'WARNING' | /* WARNING_KEY: */ - 'WELLFORMED' | /* WELLFORMED_KEY: */ - 'WHEN' | /* SQL92_RESERVED_WHEN:*/ - //'WHENEVER' | /* WHENEVER_KEY: */ - 'WHERE' | /* SQL92_RESERVED_WHERE:*/ - 'WHILE' | /* WHILE_KEY: */ - //'WITH' | /* SQL92_RESERVED_WITH:*/ - 'WITHIN' | /* WITHIN_KEY: */ - 'WORK' | /* WORK_KEY: */ - 'WRITE' | /* WRITE_KEY: */ - 'XML' | /* XML_KEY: */ - 'XMLATTRIBUTES' | /* XMLATTRIBUTES_KEY: */ - 'XMLNAMESPACES' | /* XMLNAMESPACES_KEY: */ - 'YEAR' | /* YEAR_KEY: */ - 'YES' | /* YES_KEY: */ - 'YMINTERVAL_UNCONSTRAINED' | /* YMINTERVAL_UNCONSTRAINED_KEY: */ - 'ZONE' ; /* ZONE_KEY: */ + 'A' | /* A_KEY: */ + 'ADD' | /* ADD_KEY: */ + 'ADVISE' | /* ADVISE_KEY: */ + 'AFTER' | /* AFTER_KEY: */ + 'AGENT' | /* AGENT_KEY: */ + 'AGGREGATE' | /* AGGREGATE_KEY: */ + 'ALL' | /* SQL92_RESERVED_ALL:*/ + //'ALTER' | /* SQL92_RESERVED_ALTER:*/ + //'ANALYZE' | /* ANALYZE_KEY: */ + 'AND' | /* SQL92_RESERVED_AND:*/ + 'ANY' | /* SQL92_RESERVED_ANY:*/ + 'ARRAY' | /* ARRAY_KEY: */ + a='AS' { $a->setBlockContext(BlkCtx::DECLARE); } | /* SQL92_RESERVED_AS:*/ + 'ASC' | /* SQL92_RESERVED_ASC:*/ + //'ASSOCIATE' | /* ASSOCIATE_KEY: */ + 'AT' | /* AT_KEY: */ + 'ATTRIBUTE' | /* ATTRIBUTE_KEY: */ + //'AUDIT' | /* AUDIT_KEY: */ + 'AUTHID' | /* AUTHID_KEY: */ + 'AUTO' | /* AUTO_KEY: */ + 'AUTOMATIC' | /* AUTOMATIC_KEY: */ + 'AUTONOMOUS_TRANSACTION' | /* AUTONOMOUS_TRANSACTION_KEY: */ + 'BATCH' | /* BATCH_KEY: */ + 'BEFORE' | /* BEFORE_KEY: */ + //'BEGIN' | /* SQL92_RESERVED_BEGIN:*/ + 'BETWEEN' | /* SQL92_RESERVED_BETWEEN:*/ + 'BFILE' | /* BFILE_KEY: */ + 'BINARY_DOUBLE' | /* BINARY_DOUBLE_KEY: */ + 'BINARY_DOUBLE_INFINITY' | /* BINARY_DOUBLE_INFINITY_KEY: */ + 'BINARY_DOUBLE_MAX_NORMAL' | /* BINARY_DOUBLE_MAX_NORMAL_KEY: */ + 'BINARY_DOUBLE_MAX_SUBNORMAL' | /* BINARY_DOUBLE_MAX_SUBNORMAL_KEY: */ + 'BINARY_DOUBLE_MIN_NORMAL' | /* BINARY_DOUBLE_MIN_NORMAL_KEY: */ + 'BINARY_DOUBLE_MIN_SUBNORMAL' | /* BINARY_DOUBLE_MIN_SUBNORMAL_KEY: */ + 'BINARY_DOUBLE_NAN' | /* BINARY_DOUBLE_NAN_KEY: */ + 'BINARY_FLOAT' | /* BINARY_FLOAT_KEY: */ + 'BINARY_FLOAT_INFINITY' | /* BINARY_FLOAT_INFINITY_KEY: */ + 'BINARY_FLOAT_MAX_NORMAL' | /* BINARY_FLOAT_MAX_NORMAL_KEY: */ + 'BINARY_FLOAT_MAX_SUBNORMAL' | /* BINARY_FLOAT_MAX_SUBNORMAL_KEY: */ + 'BINARY_FLOAT_MIN_NORMAL' | /* BINARY_FLOAT_MIN_NORMAL_KEY: */ + 'BINARY_FLOAT_MIN_SUBNORMAL' | /* BINARY_FLOAT_MIN_SUBNORMAL_KEY: */ + 'BINARY_FLOAT_NAN' | /* BINARY_FLOAT_NAN_KEY: */ + 'BINARY_INTEGER' | /* BINARY_INTEGER_KEY: */ + 'BIT' | /* BIT_KEY: */ + 'BIT_LENGTH' | /* BIT_LENGTH_KEY: */ + 'BLOB' | /* BLOB_KEY: */ + 'BLOCK' | /* BLOCK_KEY: */ + 'BODY' | /* BODY_KEY: */ + 'BOOLEAN' | /* BOOLEAN_KEY: */ + 'BOTH' | /* BOTH_KEY: */ + 'BREADTH' | /* BREADTH_KEY: */ + 'BULK' | /* BULK_KEY: */ + 'BULK_ROWCOUNT' | /* PERCENT_BULK_ROWCOUNT_KEY: */ + 'BY' | /* SQL92_RESERVED_BY:*/ + 'BYTE' | /* BYTE_KEY: */ + 'C' | /* C_KEY: */ + 'CACHE' | /* CACHE_KEY: */ + //'CALL' | /* CALL_KEY: */ + 'CANONICAL' | /* CANONICAL_KEY: */ + 'CASCADE' | /* CASCADE_KEY: */ + //'CASE' | /* SQL92_RESERVED_CASE:*/ + 'CHAR' | /* CHAR_KEY: */ + 'CHARACTER' | /* CHARACTER_KEY: */ + 'CHARACTER_LENGTH' | /* CHARACTER_LENGTH_KEY: */ + 'CHAR_CS' | /* CHAR_CS_KEY: */ + 'CHARSET' | /* PERCENT_CHARSET_KEY: */ + 'CHECK' | /* SQL92_RESERVED_CHECK:*/ + 'CLOB' | /* CLOB_KEY: */ + 'CLOSE' | /* CLOSE_KEY: */ + 'CLUSTER' | /* CLUSTER_KEY: */ + 'CLUSTERS' | /* PLSQL_RESERVED_CLUSTERS:*/ + 'COLAUTH' | /* PLSQL_RESERVED_COLAUTH:*/ + 'COLLATE' | /* COLLATE_KEY: */ + 'COLUMNS' | /* COLUMNS_KEY: */ + //'COMMENT' | /* COMMENT_KEY: */ + //'COMMIT' | /* COMMIT_KEY: */ + 'COMMITTED' | /* COMMITTED_KEY: */ + 'COMPATIBILITY' | /* COMPATIBILITY_KEY: */ + 'COMPILE' | /* COMPILE_KEY: */ + 'COMPOUND' | /* COMPOUND_KEY: */ + 'COMPRESS' | /* PLSQL_RESERVED_COMPRESS:*/ + //'CONNECT' | /* SQL92_RESERVED_CONNECT:*/ + //'CONNECT_BY_ROOT' | /* SQL_NON_RESERVED_CONNECT_BY_ROOT:*/ + 'CONSTANT' | /* CONSTANT_KEY: */ + 'CONSTRAINT' | /* CONSTRAINT_KEY: */ + 'CONSTRAINTS' | /* CONSTRAINTS_KEY: */ + 'CONSTRUCTOR' | /* CONSTRUCTOR_KEY: */ + 'CONTENT' | /* CONTENT_KEY: */ + 'CONTEXT' | /* CONTEXT_KEY: */ + 'CONTINUE' | /* CONTINUE_KEY: */ + 'CORRESPONDING' | /* CORRESPONDING_KEY: */ + 'CORRUPT_XID' | /* CORRUPT_XID_KEY: */ + 'CORRUPT_XID_ALL' | /* CORRUPT_XID_ALL_KEY: */ + 'COST' | /* COST_KEY: */ + 'CRASH' | /* PLSQL_RESERVED_CRASH:*/ + //'CREATE' | /* SQL92_RESERVED_CREATE:*/ + 'CROSS' | /* CROSS_KEY: */ + 'CUBE' | /* CUBE_KEY: */ + 'CURRENT' | /* SQL92_RESERVED_CURRENT:*/ + 'CURRENT_USER' | /* CURRENT_USER_KEY: */ + 'CURSOR' | /* SQL92_RESERVED_CURSOR:*/ + 'CUSTOMDATUM' | /* CUSTOMDATUM_KEY: */ + 'CYCLE' | /* CYCLE_KEY: */ + 'DATA' | /* DATA_KEY: */ + 'DATABASE' | /* DATABASE_KEY: */ + 'DATE' | /* SQL92_RESERVED_DATE:*/ + 'DAY' | /* DAY_KEY: */ + 'DB_ROLE_CHANGE' | /* DB_ROLE_CHANGE_KEY: */ + 'DDL' | /* DDL_KEY: */ + 'DEBUG' | /* DEBUG_KEY: */ + 'DEC' | /* DEC_KEY: */ + 'DECIMAL' | /* DECIMAL_KEY: */ + //'DECLARE' | /* SQL92_RESERVED_DECLARE:*/ + 'DECREMENT' | /* DECREMENT_KEY: */ + 'DEFAULT' | /* SQL92_RESERVED_DEFAULT:*/ + 'DEFAULTS' | /* DEFAULTS_KEY: */ + 'DEFERRED' | /* DEFERRED_KEY: */ + 'DEFINER' | /* DEFINER_KEY: */ + //'DELETE' | /* SQL92_RESERVED_DELETE:*/ + //'DESC' | /* SQL92_RESERVED_DESC:*/ + 'DETERMINISTIC' | /* DETERMINISTIC_KEY: */ + 'DIMENSION' | /* DIMENSION_KEY: */ + 'DISABLE' | /* DISABLE_KEY: */ + //'DISASSOCIATE' | /* DISASSOCIATE_KEY: */ + 'DISTINCT' | /* SQL92_RESERVED_DISTINCT:*/ + 'DML' | /* DML_KEY: */ + 'DOCUMENT' | /* DOCUMENT_KEY: */ + 'DOUBLE' | /* DOUBLE_KEY: */ + //'DROP' | /* SQL92_RESERVED_DROP:*/ + 'DSINTERVAL_UNCONSTRAINED' | /* DSINTERVAL_UNCONSTRAINED_KEY: */ + 'EACH' | /* EACH_KEY: */ + 'ELEMENT' | /* ELEMENT_KEY: */ + 'ELSE' | /* SQL92_RESERVED_ELSE:*/ + 'ELSIF' | /* PLSQL_NON_RESERVED_ELSIF:*/ + 'EMPTY' | /* EMPTY_KEY: */ + 'ENABLE' | /* ENABLE_KEY: */ + 'ENCODING' | /* ENCODING_KEY: */ + //'END' | /* SQL92_RESERVED_END:*/ + 'ENTITYESCAPING' | /* ENTITYESCAPING_KEY: */ + 'ERRORS' | /* ERRORS_KEY: */ + 'ESCAPE' | /* ESCAPE_KEY: */ + 'EVALNAME' | /* EVALNAME_KEY: */ + 'EXCEPT' | /* EXCEPT_KEY: */ + 'EXCEPTION' | /* SQL92_RESERVED_EXCEPTION:*/ + 'EXCEPTIONS' | /* EXCEPTIONS_KEY: */ + 'EXCEPTION_INIT' | /* EXCEPTION_INIT_KEY: */ + 'EXCLUDE' | /* EXCLUDE_KEY: */ + 'EXCLUSIVE' | /* PLSQL_RESERVED_EXCLUSIVE:*/ + 'EXECUTE' | /* EXECUTE_KEY: */ + 'EXISTS' | /* SQL92_RESERVED_EXISTS:*/ + //'EXIT' | /* EXIT_KEY: */ + //'EXPLAIN' | /* EXPLAIN_KEY: */ + 'EXTEND' | /* EXTEND_KEY: */ + 'EXTERNAL' | /* EXTERNAL_KEY: */ + 'FAILURE' | /* FAILURE_KEY: */ + 'FALSE' | /* SQL92_RESERVED_FALSE:*/ + 'FETCH' | /* SQL92_RESERVED_FETCH:*/ + 'FINAL' | /* FINAL_KEY: */ + //'FLASHBACK' | /* FLASHBACK_KEY: */ + 'FLOAT' | /* FLOAT_KEY: */ + 'FOLLOWING' | /* FOLLOWING_KEY: */ + 'FOUND' | /* PERCENT_FOUND_KEY: */ + 'FOLLOWS' | /* FOLLOWS_KEY: */ + 'FOR' | /* SQL92_RESERVED_FOR:*/ + 'FORALL' | /* FORALL_KEY: */ + 'FORCE' | /* FORCE_KEY: */ + 'FROM' | /* SQL92_RESERVED_FROM:*/ + 'FULL' | /* FULL_KEY: */ + //'FUNCTION' | /* FUNCTION_KEY: */ + 'GLOBAL' | /* GLOBAL_KEY: */ + 'GOTO' | /* SQL92_RESERVED_GOTO:*/ + //'GRANT' | /* SQL92_RESERVED_GRANT:*/ + 'GROUP' | /* SQL92_RESERVED_GROUP:*/ + 'GUARD' | /* GUARD_KEY: */ + 'HASH' | /* HASH_KEY: */ + 'HAVING' | /* SQL92_RESERVED_HAVING:*/ + 'HIDE' | /* HIDE_KEY: */ + 'HOUR' | /* HOUR_KEY: */ + 'IDENTIFIED' | /* PLSQL_RESERVED_IDENTIFIED:*/ + //'IF' | /* PLSQL_RESERVED_IF:*/ + 'IGNORE' | /* IGNORE_KEY: */ + 'IMMEDIATE' | /* IMMEDIATE_KEY: */ + 'IN' | /* SQL92_RESERVED_IN:*/ + 'INCLUDE' | /* INCLUDE_KEY: */ + 'INCLUDING' | /* INCLUDING_KEY: */ + 'INCREMENT' | /* INCREMENT_KEY: */ + 'INDENT' | /* INDENT_KEY: */ + 'INDEX' | /* PLSQL_RESERVED_INDEX:*/ + 'INDEXED' | /* INDEXED_KEY: */ + 'INDEXES' | /* PLSQL_RESERVED_INDEXES:*/ + 'INDICATOR' | /* INDICATOR_KEY: */ + 'INDICES' | /* INDICES_KEY: */ + 'INFINITE' | /* INFINITE_KEY: */ + 'INLINE' | /* INLINE_KEY: */ + 'INNER' | /* INNER_KEY: */ + 'INOUT' | /* INOUT_KEY: */ + //'INSERT' | /* SQL92_RESERVED_INSERT:*/ + 'INSTANTIABLE' | /* INSTANTIABLE_KEY: */ + 'INSTEAD' | /* INSTEAD_KEY: */ + 'INT' | /* INT_KEY: */ + 'INTEGER' | /* INTEGER_KEY: */ + 'INTERSECT' | /* SQL92_RESERVED_INTERSECT:*/ + 'INTERVAL' | /* INTERVAL_KEY: */ + 'INTO' | /* SQL92_RESERVED_INTO:*/ + 'INVALIDATE' | /* INVALIDATE_KEY: */ + i='IS' { $i->setBlockContext(BlkCtx::DECLARE); } | /* SQL92_RESERVED_IS:*/ + 'ISOPEN' | /* PERCENT_ISOPEN_KEY: */ + 'ISOLATION' | /* ISOLATION_KEY: */ + 'ITERATE' | /* ITERATE_KEY: */ + 'JAVA' | /* JAVA_KEY: */ + 'JOIN' | /* JOIN_KEY: */ + 'KEEP' | /* KEEP_KEY: */ + 'LANGUAGE' | /* LANGUAGE_KEY: */ + 'LEADING' | /* LEADING_KEY: */ + 'LEFT' | /* LEFT_KEY: */ + 'LEVEL' | /* LEVEL_KEY: */ + 'LIBRARY' | /* LIBRARY_KEY: */ + 'LIKE' | /* SQL92_RESERVED_LIKE:*/ + 'LIKE2' | /* LIKE2_KEY: */ + 'LIKE4' | /* LIKE4_KEY: */ + 'LIKEC' | /* LIKEC_KEY: */ + 'LIMIT' | /* LIMIT_KEY: */ + 'LINK' | /* LINK_KEY: */ + 'LOCAL' | /* LOCAL_KEY: */ + //'LOCK' | /* PLSQL_RESERVED_LOCK:*/ + 'LOCKED' | /* LOCKED_KEY: */ + 'LOGOFF' | /* LOGOFF_KEY: */ + 'LOGON' | /* LOGON_KEY: */ + 'LONG' | /* LONG_KEY: */ + //'LOOP' | /* LOOP_KEY: */ + 'MAIN' | /* MAIN_KEY: */ + 'MAP' | /* MAP_KEY: */ + 'MATCH' | /* MATCH_KEY: */ + 'MATCHED' | /* MATCHED_KEY: */ + 'MAXVALUE' | /* MAXVALUE_KEY: */ + 'MEASURES' | /* MEASURES_KEY: */ + 'MEMBER' | /* MEMBER_KEY: */ + //'MERGE' | /* MERGE_KEY: */ + 'MINUS' | /* PLSQL_RESERVED_MINUS:*/ + 'MINUTE' | /* MINUTE_KEY: */ + 'MINVALUE' | /* MINVALUE_KEY: */ + 'MLSLABEL' | /* MLSLABEL_KEY: */ + 'MODE' | /* PLSQL_RESERVED_MODE:*/ + 'MODEL' | /* SQL_NON_RESERVED_MODEL:*/ + 'MODIFY' | /* MODIFY_KEY: */ + 'MODULE' | /* MODULE_KEY: */ + 'MONTH' | /* MONTH_KEY: */ + 'MULTISET' | /* MULTISET_KEY: */ + 'NAME' | /* NAME_KEY: */ + 'NAN' | /* NAN_KEY: */ + 'NATIONAL' | /* NATIONAL_KEY: */ + 'NATURAL' | /* NATURAL_KEY: */ + 'NATURALN' | /* NATURALN_KEY: */ + 'NAV' | /* NAV_KEY: */ + 'NCHAR' | /* NCHAR_KEY: */ + 'NCHAR_CS' | /* NCHAR_C... [truncated message content] |
From: <ibr...@us...> - 2013-07-06 13:58:51
|
Revision: 4673 http://sourceforge.net/p/tora/code/4673 Author: ibre5041 Date: 2013-07-06 13:58:47 +0000 (Sat, 06 Jul 2013) Log Message: ----------- Lexer fixes Modified Paths: -------------- branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3lexer.hpp branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3lexer.inl branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g branches/tora3/extlibs/parsing.cpp/UserGuiTraits.hpp branches/tora3/extlibs/parsing.cpp/t0.cpp branches/tora3/src/editor/tocustomlexer.cpp branches/tora3/src/parsing/PLSQLGuiLexer.cc branches/tora3/src/parsing/PLSQLGuiLexer.hpp branches/tora3/src/parsing/UserGuiTraits.hpp branches/tora3/src/parsing/tsqllexer.h branches/tora3/src/parsing/tsqllexer.inl branches/tora3/src/parsing/tsqllexeroracle2.cc branches/tora3/src/tests/test4.cpp branches/tora3/src/tests/test4window.cpp branches/tora3/src/tests/test4window.h Modified: branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3lexer.hpp =================================================================== --- branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3lexer.hpp 2013-07-05 20:25:26 UTC (rev 4672) +++ branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3lexer.hpp 2013-07-06 13:58:47 UTC (rev 4673) @@ -180,7 +180,7 @@ /** Pointer to a function that emits the supplied token as the next token in * the stream. */ - void emitNew(const CommonTokenType& token); + void emitNew(const CommonTokenType* token); /** Pointer to a function that constructs a new token from the lexer stored information */ Modified: branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3lexer.inl =================================================================== --- branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3lexer.inl 2013-07-05 20:25:26 UTC (rev 4672) +++ branches/tora3/extlibs/libantlr3cpp-3.5.1/include/antlr3lexer.inl 2013-07-06 13:58:47 UTC (rev 4673) @@ -178,10 +178,9 @@ } template<class ImplTraits> -void Lexer<ImplTraits>::emitNew(const CommonTokenType& token) +void Lexer<ImplTraits>::emitNew(const CommonTokenType* token) { - CommonTokenType* tok = this->get_rec()->get_state()->get_token(); /* Voila! */ - *tok = token; + this->get_rec()->get_state()->set_token(token); } template<class ImplTraits> Modified: branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g =================================================================== --- branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-07-05 20:25:26 UTC (rev 4672) +++ branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-07-06 13:58:47 UTC (rev 4673) @@ -92,14 +92,17 @@ 'DELETE'; PLSQL_COMMAND_INTRODUCER: + ( c='CALL' | // TODO hande call in the TRIGGER declaration - c='DECLARE' { $c->setBlockContext(BlkCtx::CREATE); } | - b='BEGIN' { $b->setBlockContext(BlkCtx::BEGIN); } | - p='PROCEDURE' { $p->setBlockContext(BlkCtx::PROCEDURE); } | - f='FUNCTION' { $f->setBlockContext(BlkCtx::PROCEDURE); } | - t='TRIGGER' { $t->setBlockContext(BlkCtx::PROCEDURE); } | - c='CREATE' { $c->setBlockContext(BlkCtx::CREATE); } | - p='PACKAGE' { $p->setBlockContext(BlkCtx::PACKAGE); } + d='DECLARE' { $d->setBlockContext(BlkCtx::CREATE); $d->set_type(PLSQL_COMMAND_INTRODUCER); get_tokSource()->enqueueToken($d); } | + b='BEGIN' { $b->setBlockContext(BlkCtx::BEGIN); $b->set_type(PLSQL_COMMAND_INTRODUCER); get_tokSource()->enqueueToken($b); } | + p='PROCEDURE' { $p->setBlockContext(BlkCtx::PROCEDURE); $p->set_type(PLSQL_COMMAND_INTRODUCER); get_tokSource()->enqueueToken($p); } | + f='FUNCTION' { $f->setBlockContext(BlkCtx::PROCEDURE); $f->set_type(PLSQL_COMMAND_INTRODUCER); get_tokSource()->enqueueToken($f); } | + t='TRIGGER' { $t->setBlockContext(BlkCtx::PROCEDURE); $t->set_type(PLSQL_COMMAND_INTRODUCER); get_tokSource()->enqueueToken($t); } | + c='CREATE' { $c->setBlockContext(BlkCtx::CREATE); $c->set_type(PLSQL_COMMAND_INTRODUCER); get_tokSource()->enqueueToken($c); } | + p='PACKAGE' { $p->setBlockContext(BlkCtx::PACKAGE); $p->set_type(PLSQL_COMMAND_INTRODUCER); get_tokSource()->enqueueToken($p); } + ) + { $channel = HIDDEN; } ; OTHER_COMMAND_INTRODUCER: @@ -233,11 +236,11 @@ ; // All these PLSQL constructs can also contain 'END'; -R_IF: r='IF' { $r->setBlockContext(BlkCtx::LOOP); }; +R_IF: r='IF' { $r->setBlockContext(BlkCtx::LOOP); $r->set_type(R_IF); get_tokSource()->enqueueToken($r); $type = HIDDEN; }; R_THEN: r='THEN'; -R_LOOP: r='LOOP' { $r->setBlockContext(BlkCtx::LOOP); }; -R_CASE: r='CASE' { $r->setBlockContext(BlkCtx::LOOP); }; -R_END: r='END' { $r->setBlockContext(BlkCtx::END); }; +R_LOOP: r='LOOP' { $r->setBlockContext(BlkCtx::LOOP); $r->set_type(R_LOOP); get_tokSource()->enqueueToken($r); $type = HIDDEN; }; +R_CASE: r='CASE' { $r->setBlockContext(BlkCtx::LOOP); $r->set_type(R_CASE); get_tokSource()->enqueueToken($r); $type = HIDDEN; }; +R_END: r='END' { $r->setBlockContext(BlkCtx::END); $r->set_type(R_END); get_tokSource()->enqueueToken($r); $type = HIDDEN; }; PLSQL_RESERVED: 'A' | /* A_KEY: */ @@ -252,7 +255,9 @@ 'AND' | /* SQL92_RESERVED_AND:*/ 'ANY' | /* SQL92_RESERVED_ANY:*/ 'ARRAY' | /* ARRAY_KEY: */ - a='AS' { $a->setBlockContext(BlkCtx::DECLARE); } | /* SQL92_RESERVED_AS:*/ + a='AS' + //{ $a->setBlockContext(BlkCtx::DECLARE); $a->set_type(PLSQL_RESERVED); get_tokSource()->enqueueToken($a); $type = HIDDEN; } + | /* SQL92_RESERVED_AS:*/ 'ASC' | /* SQL92_RESERVED_ASC:*/ //'ASSOCIATE' | /* ASSOCIATE_KEY: */ 'AT' | /* AT_KEY: */ @@ -444,7 +449,9 @@ 'INTERVAL' | /* INTERVAL_KEY: */ 'INTO' | /* SQL92_RESERVED_INTO:*/ 'INVALIDATE' | /* INVALIDATE_KEY: */ - i='IS' { $i->setBlockContext(BlkCtx::DECLARE); } | /* SQL92_RESERVED_IS:*/ + i='IS' + //{ $i->setBlockContext(BlkCtx::DECLARE); $i->set_type(PLSQL_RESERVED); get_tokSource()->enqueueToken($i); $type = HIDDEN; } + | /* SQL92_RESERVED_IS:*/ 'ISOPEN' | /* PERCENT_ISOPEN_KEY: */ 'ISOLATION' | /* ISOLATION_KEY: */ 'ITERATE' | /* ITERATE_KEY: */ Modified: branches/tora3/extlibs/parsing.cpp/UserGuiTraits.hpp =================================================================== --- branches/tora3/extlibs/parsing.cpp/UserGuiTraits.hpp 2013-07-05 20:25:26 UTC (rev 4672) +++ branches/tora3/extlibs/parsing.cpp/UserGuiTraits.hpp 2013-07-06 13:58:47 UTC (rev 4673) @@ -39,9 +39,9 @@ typedef typename antlr3::CommonToken<ImplTraits>::TOKEN_TYPE TOKEN_TYPE; public: ToraToken() : m_block_context(BlkCtx::NONE), super() {}; - ToraToken( ANTLR_UINT32 type) : m_block_context(BlkCtx::NONE), super(type) {}; - ToraToken( TOKEN_TYPE type) : m_block_context(BlkCtx::NONE), super(type) {}; - ToraToken( const ToraToken& ctoken ) : m_block_context(BlkCtx::NONE), super(ctoken) {}; + ToraToken( ANTLR_UINT32 type) : super(type), m_block_context(BlkCtx::NONE) {}; + ToraToken( TOKEN_TYPE type) : super(type), m_block_context(BlkCtx::NONE) {}; + ToraToken( const ToraToken& ctoken ) : super(ctoken), m_block_context(ctoken.m_block_context) {}; ToraToken& operator=( const ToraToken& other ) { super::operator=(other); m_block_context = other.m_block_context; return *this; }; @@ -68,6 +68,7 @@ return super::nextToken(); TokenType* retval = tokenBuffer.front(); tokenBuffer.pop(); + usedTokens.push(retval); return retval; } @@ -76,9 +77,24 @@ tokenBuffer.push(t); } + ANTLR_INLINE void enqueueToken(std::auto_ptr< TokenType> &t) + { + tokenBuffer.push(t.release()); + } + + ~TokenSourceType() + { + while(!usedTokens.empty()) + { + TokenType* token = usedTokens.front(); + delete token; + usedTokens.pop(); + } + } private: // buffer (queue) to hold the emit()'d tokens std::queue<TokenType*> tokenBuffer; + std::queue<TokenType*> usedTokens; }; }; Modified: branches/tora3/extlibs/parsing.cpp/t0.cpp =================================================================== --- branches/tora3/extlibs/parsing.cpp/t0.cpp 2013-07-05 20:25:26 UTC (rev 4672) +++ branches/tora3/extlibs/parsing.cpp/t0.cpp 2013-07-06 13:58:47 UTC (rev 4673) @@ -81,10 +81,11 @@ PLSQLGuiLexerTraits::CommonTokenType const* token = tstream->_LT(1); ANTLR_UINT8 const *name = lxr->getTokenName(T); - printf("%d %s\t\"%s\"\n", + printf("%d %s\t\"%s\" %d\n", T, name, - token->getText().c_str() + token->getText().c_str(), + token->getBlockContext() ); std::cerr << token->getText(); tstream->consume(); Modified: branches/tora3/src/editor/tocustomlexer.cpp =================================================================== --- branches/tora3/src/editor/tocustomlexer.cpp 2013-07-05 20:25:26 UTC (rev 4672) +++ branches/tora3/src/editor/tocustomlexer.cpp 2013-07-06 13:58:47 UTC (rev 4673) @@ -170,22 +170,22 @@ void toCustomLexer::styleText(int start, int end) { QString source; - int len = end - start; + int len = end - start; if (!editor()) return; - resetStyle (); + resetStyle(); - if( lineLength < (end - start + 1)) + if( lineLength < (end - start + 1)) // +1 for 0x00 { - lineLength = Utils::toNextPowerOfTwo(end - start + 1); + lineLength = Utils::toNextPowerOfTwo(end - start + 1); lineText = (char*) realloc(lineText, lineLength); } editor()->SendScintilla(QsciScintilla::SCI_GETTEXTRANGE, start, end, lineText); - source = QString::fromUtf8(lineText, end - start + 1); + source = QString::fromUtf8(lineText, len); lexer->setStatement(lineText, len); - + int line = editor()->SendScintilla(QsciScintilla::SCI_LINEFROMPOSITION, start); int state = -1; if ( line > 0) @@ -194,19 +194,21 @@ int pos = editor()->SendScintilla(QsciScintilla::SCI_GETLINEENDPOSITION, line -1); state = editor()->SendScintilla(QsciScintilla::SCI_GETSTYLEAT, pos); } - + //qDebug() << '[' << line << ',' << start << "," << end << ' ' << lexer->firstWord() << "] " << "source =" << source << '"'; startStyling(start, 0x1f); SQLLexer::Lexer::token_const_iterator i = lexer->begin(); + unsigned offset = 0; if( state == CommentMultiline) { for(; i != lexer->end(); ++i) { + //Q_ASSERT_X( , qPrintable(__QHERE__), "Pos1"); SQLLexer::Token const &node = *i; unsigned len2 = node.getLength(); - setStyling(len2, CommentMultiline); + setStyling(len2, CommentMultiline); offset += len2; if( node.getTokenType() == SQLLexer::Token::X_COMMENT_ML_END) { ++i; @@ -223,52 +225,59 @@ break; } unsigned len2 = node.getLength(); - setStyling(len2, OneLine); + setStyling(len2, OneLine); offset += len2; } } - for(; i != lexer->end(); ++i) - { - SQLLexer::Token const &node = *i; - unsigned len2 = node.getLength(); - //qDebug() << '\t' << len2 << ' ' << node.getTokenType() << ' ' << state; + for(; i != lexer->end(); ) + { + SQLLexer::Token const &node = *i; + unsigned len2 = node.getLength(); + //qDebug() << '\t' << len2 << ' ' << node.getTokenType() << ' ' << state; - switch( node.getTokenType()) - { - case SQLLexer::Token::X_WHITE: - setStyling(len2, Default); - break; - case SQLLexer::Token::X_UNASSIGNED: - case SQLLexer::Token::L_IDENTIFIER: - setStyling(len2, Default); - break; - case SQLLexer::Token::X_COMMENT: - setStyling(len2, Comment); - break; - case SQLLexer::Token::X_COMMENT_ML: - setStyling(len2, CommentMultiline); - break; - case SQLLexer::Token::L_DML_INTRODUCER: - case SQLLexer::Token::L_PL_INTRODUCER: - case SQLLexer::Token::L_OTHER_INTRODUCER: - case SQLLexer::Token::L_RESERVED: - setStyling(len2, Reserved); - break; - case SQLLexer::Token::L_BUILDIN: - setStyling(len2, Builtin); - break; - case SQLLexer::Token::L_STRING: - setStyling(len2, String); - break; - case SQLLexer::Token::X_FAILURE: - setStyling(len2, Failure); - break; - case SQLLexer::Token::X_EOF: - break; - default: - setStyling(len2, Default); - } - } + switch( node.getTokenType()) + { + case SQLLexer::Token::X_WHITE: + setStyling(len2, Default); + break; + case SQLLexer::Token::X_UNASSIGNED: + case SQLLexer::Token::L_IDENTIFIER: + setStyling(len2, Default); + break; + case SQLLexer::Token::X_COMMENT: + setStyling(len2, Comment); + break; + case SQLLexer::Token::X_COMMENT_ML: + setStyling(len2, CommentMultiline); + break; + case SQLLexer::Token::L_DML_INTRODUCER: + case SQLLexer::Token::L_PL_INTRODUCER: + case SQLLexer::Token::L_OTHER_INTRODUCER: + case SQLLexer::Token::L_RESERVED: + setStyling(len2, Reserved); + break; + case SQLLexer::Token::L_BUILDIN: + setStyling(len2, Builtin); + break; + case SQLLexer::Token::L_STRING: + setStyling(len2, String); + break; + case SQLLexer::Token::X_FAILURE: + setStyling(len2, Failure); + break; + case SQLLexer::Token::X_EOF: + break; + default: + setStyling(len2, Default); + } + offset += len2; + SQLLexer::Token pnode(*i); + i++; + SQLLexer::Token const &nnode = *i; + if(nnode.getTokenType() == SQLLexer::Token::X_EOF) + break; + Q_ASSERT_X( nnode.getPosition() > pnode.getPosition(), qPrintable(__QHERE__), "Token position"); + } // startStyling(start, 0x1f); // setStyling(len, getStyle()); Modified: branches/tora3/src/parsing/PLSQLGuiLexer.cc =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/PLSQLGuiLexer.hpp =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/UserGuiTraits.hpp =================================================================== --- branches/tora3/src/parsing/UserGuiTraits.hpp 2013-07-05 20:25:26 UTC (rev 4672) +++ branches/tora3/src/parsing/UserGuiTraits.hpp 2013-07-06 13:58:47 UTC (rev 4673) @@ -39,9 +39,9 @@ typedef typename antlr3::CommonToken<ImplTraits>::TOKEN_TYPE TOKEN_TYPE; public: ToraToken() : m_block_context(BlkCtx::NONE), super() {}; - ToraToken( ANTLR_UINT32 type) : m_block_context(BlkCtx::NONE), super(type) {}; - ToraToken( TOKEN_TYPE type) : m_block_context(BlkCtx::NONE), super(type) {}; - ToraToken( const ToraToken& ctoken ) : m_block_context(BlkCtx::NONE), super(ctoken) {}; + ToraToken( ANTLR_UINT32 type) : super(type), m_block_context(BlkCtx::NONE) {}; + ToraToken( TOKEN_TYPE type) : super(type), m_block_context(BlkCtx::NONE) {}; + ToraToken( const ToraToken& ctoken ) : super(ctoken), m_block_context(ctoken.m_block_context) {}; ToraToken& operator=( const ToraToken& other ) { super::operator=(other); m_block_context = other.m_block_context; return *this; }; @@ -68,6 +68,7 @@ return super::nextToken(); TokenType* retval = tokenBuffer.front(); tokenBuffer.pop(); + usedTokens.push(retval); return retval; } @@ -76,9 +77,24 @@ tokenBuffer.push(t); } + ANTLR_INLINE void enqueueToken(std::auto_ptr< TokenType> &t) + { + tokenBuffer.push(t.release()); + } + + ~TokenSourceType() + { + while(!usedTokens.empty()) + { + TokenType* token = usedTokens.front(); + delete token; + usedTokens.pop(); + } + } private: // buffer (queue) to hold the emit()'d tokens std::queue<TokenType*> tokenBuffer; + std::queue<TokenType*> usedTokens; }; }; Modified: branches/tora3/src/parsing/tsqllexer.h =================================================================== --- branches/tora3/src/parsing/tsqllexer.h 2013-07-05 20:25:26 UTC (rev 4672) +++ branches/tora3/src/parsing/tsqllexer.h 2013-07-06 13:58:47 UTC (rev 4673) @@ -35,6 +35,8 @@ inline bool operator< (const Position &other) const; inline bool operator> (const Position &other) const; + inline bool operator<= (const Position &other) const; + private: unsigned _mLine, _mLinePos; }; Modified: branches/tora3/src/parsing/tsqllexer.inl =================================================================== --- branches/tora3/src/parsing/tsqllexer.inl 2013-07-05 20:25:26 UTC (rev 4672) +++ branches/tora3/src/parsing/tsqllexer.inl 2013-07-06 13:58:47 UTC (rev 4673) @@ -40,9 +40,9 @@ } inline bool SQLLexer::Position::operator!= (const Position &other) const - { + { return !(*this == other); - }; + }; inline bool SQLLexer::Position::operator< (const Position &other) const { @@ -54,6 +54,11 @@ return (_mLine > other._mLine) || (_mLine == other._mLine && _mLinePos > other._mLinePos); }; + inline bool SQLLexer::Position::operator<= (const Position &other) const + { + return operator==(other) || operator<(other); + } + inline Token::Token() : _mPosition(SQLLexer::Position(0,0)) , _mLength(0) Modified: branches/tora3/src/parsing/tsqllexeroracle2.cc =================================================================== --- branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-07-05 20:25:26 UTC (rev 4672) +++ branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-07-06 13:58:47 UTC (rev 4673) @@ -325,7 +325,7 @@ { i++; QString txt = i->getText(); - context = start->getBlockContext(); + context = i->getBlockContext(); switch(i->getTokenType()) { Modified: branches/tora3/src/tests/test4.cpp =================================================================== --- branches/tora3/src/tests/test4.cpp 2013-07-05 20:25:26 UTC (rev 4672) +++ branches/tora3/src/tests/test4.cpp 2013-07-06 13:58:47 UTC (rev 4673) @@ -55,11 +55,25 @@ toConfiguration::setQSettingsEnv(); QApplication app(argc, argv); - + QStringList args = app.arguments(); + QLibrary parsing("parsing"); parsing.load(); - - new Test4Window(); + + QString sql; + if(args.count() >= 2 && QFile::exists(args[1])) + { + sql = Utils::toReadFile(args[1]); + } + else + { + QFile complexSql(":/complex05.sql"); + bool r = complexSql.open(QIODevice::ReadOnly | QIODevice::Text); + QByteArray bytes = complexSql.readAll(); + sql = QString(bytes); + } + + new Test4Window(sql); int ret = qApp->exec(); return ret; } Modified: branches/tora3/src/tests/test4window.cpp =================================================================== --- branches/tora3/src/tests/test4window.cpp 2013-07-05 20:25:26 UTC (rev 4672) +++ branches/tora3/src/tests/test4window.cpp 2013-07-06 13:58:47 UTC (rev 4673) @@ -47,7 +47,7 @@ #include <QScrollArea> #include <QSplitter> -Test4Window::Test4Window() +Test4Window::Test4Window(const QString &sql) : Ui::Test4Window() { Ui::Test4Window::setupUi(this); @@ -65,11 +65,6 @@ menuGrammar->addAction(mysql); toCustomLexer *customLexer = new toCustomLexer(this); - - QFile complexSql(":/complex05.sql"); - bool r = complexSql.open(QIODevice::ReadOnly | QIODevice::Text); - QByteArray bytes = complexSql.readAll(); - QString sql(bytes); editorLeft = new toHighlightedTextEditor(this); leftVerticalLayout->addWidget(editorLeft); @@ -79,8 +74,8 @@ editorRight->setLexer(customLexer); rightVerticalLayout->addWidget(editorRight); editorRight->setText(sql); - editorRight->setMarginType(2, QsciScintilla::TextMarginRightJustified); - editorRight->setMarginWidth(2, QString::fromAscii("009")); + editorRight->setMarginType(2, QsciScintilla::TextMarginRightJustified); + editorRight->setMarginWidth(2, QString::fromAscii("009")); connect(oracle, SIGNAL(triggered()), customLexer, SLOT(setOracle())); connect(mysql, SIGNAL(triggered()), customLexer, SLOT(setMySQL())); @@ -107,12 +102,12 @@ void Test4Window::load() { QString fn = Utils::toOpenFilename("*.sql", this); - if (!fn.isEmpty()) - { - QString data = Utils::toReadFile(fn); - editorLeft->setText(data); - editorRight->setText(data); - } + if (!fn.isEmpty()) + { + QString data = Utils::toReadFile(fn); + editorLeft->setText(data); + editorRight->setText(data); + } } void Test4Window::closeEvent(QCloseEvent *event) Modified: branches/tora3/src/tests/test4window.h =================================================================== --- branches/tora3/src/tests/test4window.h 2013-07-05 20:25:26 UTC (rev 4672) +++ branches/tora3/src/tests/test4window.h 2013-07-06 13:58:47 UTC (rev 4673) @@ -54,7 +54,7 @@ Q_OBJECT; public: - Test4Window(); + Test4Window(const QString &sql); virtual ~Test4Window() {}; public slots: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2013-07-06 17:31:28
|
Revision: 4674 http://sourceforge.net/p/tora/code/4674 Author: ibre5041 Date: 2013-07-06 17:31:24 +0000 (Sat, 06 Jul 2013) Log Message: ----------- Fuzzy parsing fixed Modified Paths: -------------- branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g branches/tora3/extlibs/parsing.cpp/t0.cpp branches/tora3/src/editor/tocustomlexer.cpp branches/tora3/src/parsing/PLSQLGuiLexer.cc branches/tora3/src/parsing/PLSQLGuiLexer.hpp branches/tora3/src/parsing/tsqllexeroracle2.cc Modified: branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g =================================================================== --- branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-07-06 13:58:47 UTC (rev 4673) +++ branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-07-06 17:31:24 UTC (rev 4674) @@ -236,12 +236,15 @@ ; // All these PLSQL constructs can also contain 'END'; -R_IF: r='IF' { $r->setBlockContext(BlkCtx::LOOP); $r->set_type(R_IF); get_tokSource()->enqueueToken($r); $type = HIDDEN; }; +R_IF: r='IF' { $r->setBlockContext(BlkCtx::LOOP); $r->set_type(R_IF); get_tokSource()->enqueueToken($r); $channel = HIDDEN; }; R_THEN: r='THEN'; -R_LOOP: r='LOOP' { $r->setBlockContext(BlkCtx::LOOP); $r->set_type(R_LOOP); get_tokSource()->enqueueToken($r); $type = HIDDEN; }; -R_CASE: r='CASE' { $r->setBlockContext(BlkCtx::LOOP); $r->set_type(R_CASE); get_tokSource()->enqueueToken($r); $type = HIDDEN; }; -R_END: r='END' { $r->setBlockContext(BlkCtx::END); $r->set_type(R_END); get_tokSource()->enqueueToken($r); $type = HIDDEN; }; +R_LOOP: r='LOOP' { $r->setBlockContext(BlkCtx::LOOP); $r->set_type(R_LOOP); get_tokSource()->enqueueToken($r); $channel = HIDDEN; }; +R_CASE: r='CASE' { $r->setBlockContext(BlkCtx::LOOP); $r->set_type(R_CASE); get_tokSource()->enqueueToken($r); $channel = HIDDEN; }; +R_END: r='END' { $r->setBlockContext(BlkCtx::END); $r->set_type(R_END); get_tokSource()->enqueueToken($r); $channel = HIDDEN; }; +R_AS: a='AS' { $a->setBlockContext(BlkCtx::DECLARE); $a->set_type(PLSQL_RESERVED); get_tokSource()->enqueueToken($a); $channel = HIDDEN; }; +R_IS: i='IS' { $i->setBlockContext(BlkCtx::DECLARE); $i->set_type(PLSQL_RESERVED); get_tokSource()->enqueueToken($i); $channel = HIDDEN; }; + PLSQL_RESERVED: 'A' | /* A_KEY: */ 'ADD' | /* ADD_KEY: */ @@ -255,9 +258,7 @@ 'AND' | /* SQL92_RESERVED_AND:*/ 'ANY' | /* SQL92_RESERVED_ANY:*/ 'ARRAY' | /* ARRAY_KEY: */ - a='AS' - //{ $a->setBlockContext(BlkCtx::DECLARE); $a->set_type(PLSQL_RESERVED); get_tokSource()->enqueueToken($a); $type = HIDDEN; } - | /* SQL92_RESERVED_AS:*/ + //'AS' | /* SQL92_RESERVED_AS:*/ 'ASC' | /* SQL92_RESERVED_ASC:*/ //'ASSOCIATE' | /* ASSOCIATE_KEY: */ 'AT' | /* AT_KEY: */ @@ -449,9 +450,7 @@ 'INTERVAL' | /* INTERVAL_KEY: */ 'INTO' | /* SQL92_RESERVED_INTO:*/ 'INVALIDATE' | /* INVALIDATE_KEY: */ - i='IS' - //{ $i->setBlockContext(BlkCtx::DECLARE); $i->set_type(PLSQL_RESERVED); get_tokSource()->enqueueToken($i); $type = HIDDEN; } - | /* SQL92_RESERVED_IS:*/ + //'IS' | /* SQL92_RESERVED_IS:*/ 'ISOPEN' | /* PERCENT_ISOPEN_KEY: */ 'ISOLATION' | /* ISOLATION_KEY: */ 'ITERATE' | /* ITERATE_KEY: */ Modified: branches/tora3/extlibs/parsing.cpp/t0.cpp =================================================================== --- branches/tora3/extlibs/parsing.cpp/t0.cpp 2013-07-06 13:58:47 UTC (rev 4673) +++ branches/tora3/extlibs/parsing.cpp/t0.cpp 2013-07-06 17:31:24 UTC (rev 4674) @@ -81,11 +81,12 @@ PLSQLGuiLexerTraits::CommonTokenType const* token = tstream->_LT(1); ANTLR_UINT8 const *name = lxr->getTokenName(T); - printf("%d %s\t\"%s\" %d\n", + printf("%d %s\t\"%s\" %d %d\n", T, name, token->getText().c_str(), - token->getBlockContext() + token->getBlockContext(), + token->get_channel() ); std::cerr << token->getText(); tstream->consume(); Modified: branches/tora3/src/editor/tocustomlexer.cpp =================================================================== --- branches/tora3/src/editor/tocustomlexer.cpp 2013-07-06 13:58:47 UTC (rev 4673) +++ branches/tora3/src/editor/tocustomlexer.cpp 2013-07-06 17:31:24 UTC (rev 4674) @@ -170,16 +170,16 @@ void toCustomLexer::styleText(int start, int end) { QString source; - int len = end - start; + int len = end - start; if (!editor()) return; resetStyle(); - if( lineLength < (end - start + 1)) // +1 for 0x00 + if( lineLength < (end - start + 1)) // +1 for 0x00 { - lineLength = Utils::toNextPowerOfTwo(end - start + 1); + lineLength = Utils::toNextPowerOfTwo(end - start + 1); lineText = (char*) realloc(lineText, lineLength); } editor()->SendScintilla(QsciScintilla::SCI_GETTEXTRANGE, start, end, lineText); Modified: branches/tora3/src/parsing/PLSQLGuiLexer.cc =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/PLSQLGuiLexer.hpp =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/tsqllexeroracle2.cc =================================================================== --- branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-07-06 13:58:47 UTC (rev 4673) +++ branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-07-06 17:31:24 UTC (rev 4674) @@ -313,20 +313,20 @@ { QVector<BlockContextEnum> stack; bool exitLoop = false; - //Context ctx = tokenContext(*start); - - BlockContextEnum context = start->getBlockContext();; - if( context == BlkCtx::NONE) + BlockContextEnum tokenContext = start->getBlockContext(); + + if( tokenContext == BlkCtx::NONE) throw Exception(); - stack << context; + stack << tokenContext; while(!exitLoop) { i++; QString txt = i->getText(); - context = i->getBlockContext(); - + tokenContext = i->getBlockContext(); + BlockContextEnum &stackContext = stack.back(); + switch(i->getTokenType()) { case Token::L_OTHER_INTRODUCER: @@ -335,9 +335,15 @@ case Token::X_FAILURE: exitLoop = true; continue; + case Token::L_DML_INTRODUCER: + if( stackContext == BlkCtx::PACKAGE || stackContext == BlkCtx::PROCEDURE) + { + exitLoop = true; + continue; + } } - if( context == BlkCtx::NONE) + if( tokenContext == BlkCtx::NONE) continue; // Commbine two enumerated values. The current Stack's top @@ -349,7 +355,7 @@ // CREATE -> PACKAGE -> DECLARE -> BEGIN -> END // - In other cases we push new value onto stack ( like BLOCK inside BLOCK ) // - All other combinations are considered ilegal - they stop parsing (like LOOP inside DECLARE ) - unsigned var = M<NONE,NONE>::combine(stack.back(), context); + unsigned var = M<NONE,NONE>::combine(stackContext, tokenContext); switch(var) { case M< CREATE, CREATE >::value : @@ -362,11 +368,11 @@ continue; case M< CREATE, PACKAGE >::value : - stack.back() = PACKAGE; // PACKAGE inside CREATE (adjust value on the stack's top) + stackContext = PACKAGE; // PACKAGE inside CREATE (adjust value on the stack's top) continue; case M<CREATE, PROCEDURE >::value : - stack.back() = PROCEDURE; // PROCEDURE inside CREATE (adjust value on the stack's top) + stackContext = PROCEDURE; // PROCEDURE inside CREATE (adjust value on the stack's top) continue; case M<PACKAGE, PROCEDURE >::value : stack << PROCEDURE; // PROCEDURE inside PACKAGE (push PROCEDURE) @@ -382,7 +388,7 @@ // DECLARE/IS/AS inside PACKAGE/PROCEDURE (adjust stack's top) if( i->getText().compare("IS", Qt::CaseInsensitive) == 0 || i->getText().compare("AS", Qt::CaseInsensitive) == 0 ) - stack.back() = DECLARE; + stackContext = DECLARE; else exitLoop = true; continue; @@ -403,7 +409,7 @@ case M<PACKAGE, BEGIN >::value : case M<DECLARE, BEGIN >::value : - stack.back() = BEGIN; // BEGIN inside PACKAGE (adjust stack's top) (PACKAGE init block) + stackContext = BEGIN; // BEGIN inside PACKAGE (adjust stack's top) (PACKAGE init block) continue; // BEGIN inside DECLARE (adjust stack's top) case M<BEGIN, BEGIN >::value : @@ -419,7 +425,7 @@ case M<BEGIN, END >::value : { // END inside BEGIN (pop stack) - BlockContextEnum ctx = stack.back(); stack.pop_back(); + BlockContextEnum ctx = stackContext; stack.pop_back(); if( stack.isEmpty() ) exitLoop = true; // TODO find SEMICOLON @@ -428,7 +434,7 @@ } case M<LOOP, END >::value : { // END inside LOOP/CASE/IF (pop stack) - BlockContextEnum ctx = stack.back(); stack.pop_back(); + BlockContextEnum ctx = stackContext; stack.pop_back(); if( stack.isEmpty() ) exitLoop = true; // TODO find LOOP/CASE/IF SEMICOLON This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2013-08-02 15:23:03
|
Revision: 4688 http://sourceforge.net/p/tora/code/4688 Author: ibre5041 Date: 2013-08-02 15:22:58 +0000 (Fri, 02 Aug 2013) Log Message: ----------- Modified Paths: -------------- branches/tora3/cmake/modules/PrecompiledHeader.cmake branches/tora3/src/core/tomain.cpp branches/tora3/src/core/topushbutton.cpp branches/tora3/src/core/toworkspace.h branches/tora3/src/editor/tohighlightedtext.cpp branches/tora3/src/editor/tohighlightedtext.h branches/tora3/src/parsing/tosyntaxanalyzer.cpp branches/tora3/src/parsing/tosyntaxanalyzer.h branches/tora3/src/tools/toworksheet.cpp branches/tora3/src/tools/toworksheet.h branches/tora3/src/tools/toworksheeteditor.cpp Modified: branches/tora3/cmake/modules/PrecompiledHeader.cmake =================================================================== --- branches/tora3/cmake/modules/PrecompiledHeader.cmake 2013-08-02 11:47:56 UTC (rev 4687) +++ branches/tora3/cmake/modules/PrecompiledHeader.cmake 2013-08-02 15:22:58 UTC (rev 4688) @@ -1,117 +1,117 @@ -# Macro for setting up precompiled headers. Usage: -# -# add_precompiled_header(target header.h [FORCEINCLUDE]) -# -# MSVC: A source file with the same name as the header must exist and -# be included in the target (E.g. header.cpp). -# -# MSVC: Add FORCEINCLUDE to automatically include the precompiled -# header file from every source file. -# -# GCC: The precompiled header is always automatically included from -# every header file. -# -# Copyright (C) 2009-2013 Lars Christensen <la...@be...> -# -# Permission is hereby granted, free of charge, to any person -# obtaining a copy of this software and associated documentation files -# (the ‘Software’), to deal in the Software without restriction, -# including without limitation the rights to use, copy, modify, merge, -# publish, distribute, sublicense, and/or sell copies of the Software, -# and to permit persons to whom the Software is furnished to do so, -# subject to the following conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -FUNCTION(ADD_PRECOMPILED_HEADER _targetName _input) - GET_FILENAME_COMPONENT(_inputWe ${_input} NAME_WE) - SET(pch_source ${_inputWe}.cpp) - # MESSAGE(STATUS "${_targetName} FI ${FORCEINCLUDE}") - FOREACH(arg ${ARGN}) - # MESSAGE(STATUS "${_targetName}: ARG: ${arg}") - IF(arg STREQUAL FORCEINCLUDE) - SET(FORCEINCLUDE ON) - ELSE(arg STREQUAL FORCEINCLUDE) - SET(FORCEINCLUDE OFF) - ENDIF(arg STREQUAL FORCEINCLUDE) - ENDFOREACH(arg) - - IF(MSVC) - GET_TARGET_PROPERTY(sources ${_targetName} SOURCES) - SET(_sourceFound FALSE) - FOREACH(_source ${sources}) - SET(PCH_COMPILE_FLAGS "") - # .cc suffix excluded from list by Ivan - # IF(_source MATCHES \\.\(cc|cxx|cpp\)$) - IF(_source MATCHES \\.\(cxx|cpp\)$) - GET_FILENAME_COMPONENT(_sourceWe ${_source} NAME_WE) - IF(_sourceWe STREQUAL ${_inputWe}) - SET(PCH_COMPILE_FLAGS "${PCH_COMPILE_FLAGS} /Yc${_input}") - SET(_sourceFound TRUE) - ELSE(_sourceWe STREQUAL ${_inputWe}) - SET(PCH_COMPILE_FLAGS "${PCH_COMPILE_FLAGS} /Yu${_input}") - IF(FORCEINCLUDE) - SET(PCH_COMPILE_FLAGS "${PCH_COMPILE_FLAGS} /FI${_input}") - ENDIF(FORCEINCLUDE) - ENDIF(_sourceWe STREQUAL ${_inputWe}) - SET_SOURCE_FILES_PROPERTIES(${_source} PROPERTIES COMPILE_FLAGS "${PCH_COMPILE_FLAGS}") - # MESSAGE(STATUS "${_targetName}: SET_SOURCE_FILES_PROPERTIES(${_source} PROPERTIES COMPILE_FLAGS ${PCH_COMPILE_FLAGS} )") - ENDIF() - ENDFOREACH() - IF(NOT _sourceFound) - MESSAGE(FATAL_ERROR "A source file for ${_input} was not found. Required for MSVC builds.") - ENDIF(NOT _sourceFound) - ENDIF(MSVC) - - IF(CMAKE_COMPILER_IS_GNUCXX) - GET_FILENAME_COMPONENT(_name ${_input} NAME) - SET(_source "${CMAKE_CURRENT_SOURCE_DIR}/${_input}") - SET(_outdir "${CMAKE_CURRENT_BINARY_DIR}/${_name}.gch") - MAKE_DIRECTORY(${_outdir}) - SET(_output "${_outdir}/.c++") - - STRING(TOUPPER "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" _flags_var_name) - SET(_compiler_FLAGS ${${_flags_var_name}}) - - GET_DIRECTORY_PROPERTY(_directory_flags INCLUDE_DIRECTORIES) - FOREACH(item ${_directory_flags}) - LIST(APPEND _compiler_FLAGS "-I${item}") - ENDFOREACH(item) - - GET_DIRECTORY_PROPERTY(_directory_flags DEFINITIONS) - LIST(APPEND _compiler_FLAGS ${_directory_flags}) - - SEPARATE_ARGUMENTS(_compiler_FLAGS) - MESSAGE("${CMAKE_CXX_COMPILER} -DPCHCOMPILE ${_compiler_FLAGS} -x c++-header -o {_output} ${_source}") - ADD_CUSTOM_COMMAND( - OUTPUT ${_output} - COMMAND ${CMAKE_CXX_COMPILER} ${_compiler_FLAGS} -x c++-header -o ${_output} ${_source} - DEPENDS ${_source} ) - ADD_CUSTOM_TARGET(${_targetName}_gch DEPENDS ${_output}) - ADD_DEPENDENCIES(${_targetName} ${_targetName}_gch) - - # SET_TARGET_PROPERTIES(${_targetName} PROPERTIES COMPILE_FLAGS "-include ${_name} -Winvalid-pch") - GET_TARGET_PROPERTY(sources ${_targetName} SOURCES) - FOREACH(_source ${sources}) - SET(PCH_COMPILE_FLAGS "") - IF(_source MATCHES \\.\(cxx|cpp\)$) - GET_FILENAME_COMPONENT(_sourceWe ${_source} NAME_WE) - SET(PCH_COMPILE_FLAGS "${PCH_COMPILE_FLAGS} -include ${_name} -Winvalid-pch") - SET_SOURCE_FILES_PROPERTIES(${_source} PROPERTIES COMPILE_FLAGS "${PCH_COMPILE_FLAGS}") - MESSAGE(STATUS "SET_SOURCE_FILES_PROPERTIES(${_source} PROPERTIES COMPILE_FLAGS ${PCH_COMPILE_FLAGS})") - ENDIF() - ENDFOREACH() - - ENDIF(CMAKE_COMPILER_IS_GNUCXX) -ENDFUNCTION() - +# Macro for setting up precompiled headers. Usage: +# +# add_precompiled_header(target header.h [FORCEINCLUDE]) +# +# MSVC: A source file with the same name as the header must exist and +# be included in the target (E.g. header.cpp). +# +# MSVC: Add FORCEINCLUDE to automatically include the precompiled +# header file from every source file. +# +# GCC: The precompiled header is always automatically included from +# every header file. +# +# Copyright (C) 2009-2013 Lars Christensen <la...@be...> +# +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation files +# (the ‘Software’), to deal in the Software without restriction, +# including without limitation the rights to use, copy, modify, merge, +# publish, distribute, sublicense, and/or sell copies of the Software, +# and to permit persons to whom the Software is furnished to do so, +# subject to the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +FUNCTION(ADD_PRECOMPILED_HEADER _targetName _input) + GET_FILENAME_COMPONENT(_inputWe ${_input} NAME_WE) + SET(pch_source ${_inputWe}.cpp) + # MESSAGE(STATUS "${_targetName} FI ${FORCEINCLUDE}") + FOREACH(arg ${ARGN}) + # MESSAGE(STATUS "${_targetName}: ARG: ${arg}") + IF(arg STREQUAL FORCEINCLUDE) + SET(FORCEINCLUDE ON) + ELSE(arg STREQUAL FORCEINCLUDE) + SET(FORCEINCLUDE OFF) + ENDIF(arg STREQUAL FORCEINCLUDE) + ENDFOREACH(arg) + + IF(MSVC) + GET_TARGET_PROPERTY(sources ${_targetName} SOURCES) + SET(_sourceFound FALSE) + FOREACH(_source ${sources}) + SET(PCH_COMPILE_FLAGS "") + # .cc suffix excluded from list by Ivan + # IF(_source MATCHES \\.\(cc|cxx|cpp\)$) + IF(_source MATCHES \\.\(cxx|cpp\)$) + GET_FILENAME_COMPONENT(_sourceWe ${_source} NAME_WE) + IF(_sourceWe STREQUAL ${_inputWe}) + SET(PCH_COMPILE_FLAGS "${PCH_COMPILE_FLAGS} /Yc${_input}") + SET(_sourceFound TRUE) + ELSE(_sourceWe STREQUAL ${_inputWe}) + SET(PCH_COMPILE_FLAGS "${PCH_COMPILE_FLAGS} /Yu${_input}") + IF(FORCEINCLUDE) + SET(PCH_COMPILE_FLAGS "${PCH_COMPILE_FLAGS} /FI${_input}") + ENDIF(FORCEINCLUDE) + ENDIF(_sourceWe STREQUAL ${_inputWe}) + SET_SOURCE_FILES_PROPERTIES(${_source} PROPERTIES COMPILE_FLAGS "${PCH_COMPILE_FLAGS}") + MESSAGE(STATUS "${_targetName}: SET_SOURCE_FILES_PROPERTIES(${_source} PROPERTIES COMPILE_FLAGS ${PCH_COMPILE_FLAGS} )") + ENDIF() + ENDFOREACH() + IF(NOT _sourceFound) + MESSAGE(FATAL_ERROR "A source file for ${_input} was not found. Required for MSVC builds.") + ENDIF(NOT _sourceFound) + ENDIF(MSVC) + + IF(CMAKE_COMPILER_IS_GNUCXX) + GET_FILENAME_COMPONENT(_name ${_input} NAME) + SET(_source "${CMAKE_CURRENT_SOURCE_DIR}/${_input}") + SET(_outdir "${CMAKE_CURRENT_BINARY_DIR}/${_name}.gch") + MAKE_DIRECTORY(${_outdir}) + SET(_output "${_outdir}/.c++") + + STRING(TOUPPER "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" _flags_var_name) + SET(_compiler_FLAGS ${${_flags_var_name}}) + + GET_DIRECTORY_PROPERTY(_directory_flags INCLUDE_DIRECTORIES) + FOREACH(item ${_directory_flags}) + LIST(APPEND _compiler_FLAGS "-I${item}") + ENDFOREACH(item) + + GET_DIRECTORY_PROPERTY(_directory_flags DEFINITIONS) + LIST(APPEND _compiler_FLAGS ${_directory_flags}) + + SEPARATE_ARGUMENTS(_compiler_FLAGS) + MESSAGE("${CMAKE_CXX_COMPILER} -DPCHCOMPILE ${_compiler_FLAGS} -x c++-header -o {_output} ${_source}") + ADD_CUSTOM_COMMAND( + OUTPUT ${_output} + COMMAND ${CMAKE_CXX_COMPILER} ${_compiler_FLAGS} -x c++-header -o ${_output} ${_source} + DEPENDS ${_source} ) + ADD_CUSTOM_TARGET(${_targetName}_gch DEPENDS ${_output}) + ADD_DEPENDENCIES(${_targetName} ${_targetName}_gch) + + # SET_TARGET_PROPERTIES(${_targetName} PROPERTIES COMPILE_FLAGS "-include ${_name} -Winvalid-pch") + GET_TARGET_PROPERTY(sources ${_targetName} SOURCES) + FOREACH(_source ${sources}) + SET(PCH_COMPILE_FLAGS "") + IF(_source MATCHES \\.\(cxx|cpp\)$) + GET_FILENAME_COMPONENT(_sourceWe ${_source} NAME_WE) + SET(PCH_COMPILE_FLAGS "${PCH_COMPILE_FLAGS} -include ${_name} -Winvalid-pch") + SET_SOURCE_FILES_PROPERTIES(${_source} PROPERTIES COMPILE_FLAGS "${PCH_COMPILE_FLAGS}") + MESSAGE(STATUS "SET_SOURCE_FILES_PROPERTIES(${_source} PROPERTIES COMPILE_FLAGS ${PCH_COMPILE_FLAGS})") + ENDIF() + ENDFOREACH() + + ENDIF(CMAKE_COMPILER_IS_GNUCXX) +ENDFUNCTION() + Modified: branches/tora3/src/core/tomain.cpp =================================================================== --- branches/tora3/src/core/tomain.cpp 2013-08-02 11:47:56 UTC (rev 4687) +++ branches/tora3/src/core/tomain.cpp 2013-08-02 15:22:58 UTC (rev 4688) @@ -483,6 +483,8 @@ SelectionLabel->setText("Sel: Normal"); #endif + toHighlighterTypeButtonSingle::Instance().setFocusPolicy(Qt::NoFocus); + toHighlighterTypeButtonSingle::Instance().setDisabled(true); statusBar()->addPermanentWidget(&toHighlighterTypeButtonSingle::Instance()); RowLabel = new QLabel(statusBar()); Modified: branches/tora3/src/core/topushbutton.cpp =================================================================== --- branches/tora3/src/core/topushbutton.cpp 2013-08-02 11:47:56 UTC (rev 4687) +++ branches/tora3/src/core/topushbutton.cpp 2013-08-02 15:22:58 UTC (rev 4688) @@ -206,6 +206,30 @@ connect(this, SIGNAL(released()), this, SLOT(toggle())); } +void toToggleButton::setValue(int val) +{ + for(int idx = 0; idx < m_enum.keyCount(); idx++) + { + if(val == m_enum.value(idx)) + { + m_idx = idx; + setText(m_enum.key(m_idx)); + } + } +} + +void toToggleButton::setValue(QString const& val) +{ + for(int idx = 0; idx < m_enum.keyCount(); idx++) + { + if(val == m_enum.key(idx)) + { + m_idx = idx; + setText(m_enum.key(m_idx)); + } + } +} + void toToggleButton::toggle() { int idx = ++m_idx < m_enum.keyCount() ? m_idx : m_idx=0; Modified: branches/tora3/src/core/toworkspace.h =================================================================== --- branches/tora3/src/core/toworkspace.h 2013-08-02 11:47:56 UTC (rev 4687) +++ branches/tora3/src/core/toworkspace.h 2013-08-02 15:22:58 UTC (rev 4688) @@ -54,7 +54,9 @@ class QStackedWidget; class QSignalMapper; - +/** + * This widget is a replacement for buggy QMdiArea + */ class toWorkSpace : public QWidget { Q_OBJECT; Modified: branches/tora3/src/editor/tohighlightedtext.cpp =================================================================== --- branches/tora3/src/editor/tohighlightedtext.cpp 2013-08-02 11:47:56 UTC (rev 4687) +++ branches/tora3/src/editor/tohighlightedtext.cpp 2013-08-02 15:22:58 UTC (rev 4688) @@ -50,30 +50,14 @@ #include <Qsci/qsciabstractapis.h> #include <Qsci/qscilexersql.h> -// SQL lexer provided by QScintilla (used by HighlighterTypeEnum::QtSql) -// this definition (via function) fixes the font screwing -// in the GUI. It's strongly suggested to handle Qt stuff -// *after* QApplication initialization. -static QsciLexerSQL * sqlLexer() -{ - static QsciLexerSQL * _sqlLexer = NULL; - if (!_sqlLexer) - { - _sqlLexer = new QsciLexerSQL(); - _sqlLexer->setFoldComments(true); - _sqlLexer->setFoldCompact(false); - } - return _sqlLexer; -} +//static toCustomLexer * customLexer() +//{ +// static toCustomLexer * _customLexer = NULL; +// if (!_customLexer) +// _customLexer = new toCustomLexer(); +// return _customLexer; +//} -static toCustomLexer * customLexer() -{ - static toCustomLexer * _customLexer = NULL; - if (!_customLexer) - _customLexer = new toCustomLexer(); - return _customLexer; -} - toComplPopup::toComplPopup(toHighlightedText* edit) : QWidget(edit, Qt::Popup) { @@ -126,7 +110,8 @@ toHighlightedText::toHighlightedText(QWidget *parent, const char *name) : toMarkedText(parent) - , lexer(sqlLexer()) + , lexer(NULL) + , highlighterType(QtSql) //TODO, syntaxColoring(toConfigurationSingle::Instance().highlightType()) , m_errorMarginHandle(QsciScintilla::markerDefine(QsciScintilla::Circle)) , m_errorHandle(QsciScintilla::markerDefine(QsciScintilla::Background)) @@ -140,7 +125,7 @@ , m_staticHandle(QsciScintilla::markerDefine(QsciScintilla::Background)) , defaultCompletion() { - lexer->setDefaultFont(Utils::toStringToFont(toConfigurationSingle::Instance().codeFont())); + //lexer->setDefaultFont(Utils::toStringToFont(toConfigurationSingle::Instance().codeFont())); // set default keywords for code completion QFile api(":/templates/completion.api"); @@ -199,7 +184,7 @@ // Connect signals&slots connect(this, SIGNAL(cursorPositionChanged(int, int)), this, SLOT(setStatusMessage(void ))); - complAPI = new QsciAPIs(lexer); + //complAPI = new QsciAPIs(lexer); connect (this, SIGNAL(cursorPositionChanged(int, int)), this, SLOT(positionChanged(int, int))); complTimer = new QTimer(this); connect( complTimer, SIGNAL(timeout()), this, SLOT(autoCompleteFromAPIs()) ); @@ -213,6 +198,10 @@ SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(completeFromAPI(QListWidgetItem*))); + connect(&toHighlighterTypeButtonSingle::Instance(), + SIGNAL(toggled(int)), + this, + SLOT(setHighlighter(int))); } void toHighlightedText::keyPressEvent(QKeyEvent * e) @@ -251,7 +240,7 @@ toHighlightedText::~toHighlightedText() { if (complAPI) - delete complAPI; + //delete complAPI; if (popup) delete popup; } @@ -461,18 +450,32 @@ * @param lexer to use, * 0 if no syntax colouring */ -void toHighlightedText::setLexer(QsciLexer *lexer) +//void toHighlightedText::setLexer(QsciLexer *lexer) +//{ +// if (lexer != 0) +// { +// this->lexer = lexer; +// } +// //lexer->setColor(DefaultAnalyzer.getColor(toSyntaxAnalyzer::Default), -1); +// // refresh scintilla lexer +// //setSyntaxColoring(syntaxColoring); +// QsciScintilla::setLexer(lexer); +//} + +void toHighlightedText::setHighlighter(HighlighterTypeEnum h) { - if (lexer != 0) - { - this->lexer = lexer; - } - //lexer->setColor(DefaultAnalyzer.getColor(toSyntaxAnalyzer::Default), -1); - // refresh scintilla lexer - //setSyntaxColoring(syntaxColoring); - QsciScintilla::setLexer(lexer); + highlighterType = h; } +void toHighlightedText::setHighlighter(int h) +{ + QWidget *focus = qApp->focusWidget(); + + if(focus == this) + highlighterType = (HighlighterTypeEnum)h; + qDebug() << ">>> toHighlightedText::setHighlighter for" << focus->metaObject()->className(); +} + void toHighlightedText::setFont (const QFont & font) { // Only sets fint lexer - one for all styles @@ -902,6 +905,21 @@ popup->hide(); } +void toHighlightedText::focusInEvent(QFocusEvent *e) +{ + toHighlighterTypeButtonSingle::Instance().setEnabled(true); + toHighlighterTypeButtonSingle::Instance().setValue(highlighterType); + qDebug() << ">>> toHighlightedText::focusInEvent" << this << " " << highlighterType; + super::focusInEvent(e); +} + +void toHighlightedText::focusOutEvent(QFocusEvent *e) +{ + toHighlighterTypeButtonSingle::Instance().setDisabled(true); + toHighlighterTypeButtonSingle::Instance().setValue(None); + super::focusOutEvent(e); +} + toHighlighterTypeButton::toHighlighterTypeButton(QWidget *parent, const char *name) : toToggleButton(toHighlightedText::staticMetaObject.enumerator(toHighlightedText::staticMetaObject.indexOfEnumerator("HighlighterTypeEnum")) , parent Modified: branches/tora3/src/editor/tohighlightedtext.h =================================================================== --- branches/tora3/src/editor/tohighlightedtext.h 2013-08-02 11:47:56 UTC (rev 4687) +++ branches/tora3/src/editor/tohighlightedtext.h 2013-08-02 15:22:58 UTC (rev 4688) @@ -95,12 +95,13 @@ Q_ENUMS(HighlighterTypeEnum); public: friend class toComplPopup; + typedef toMarkedText super; enum HighlighterTypeEnum { - None, - Oracle, - Mysql, - QtSql + None = 10, + Oracle = 20, + Mysql = 30, + QtSql = 40 }; /** Create a new editor. @@ -119,11 +120,9 @@ */ virtual void openFilename(const QString &file); - void setHighlighter(HighlighterTypeEnum lexer); + void setHighlighter(toHighlightedText::HighlighterTypeEnum); HighlighterTypeEnum getHighlighter(void); - void setLexer(QsciLexer *lexer); - /** * Overriden to set font for lexer as well. * @param font the font to set @@ -192,11 +191,13 @@ private slots: void setStatusMessage(void); - + void setHighlighter(int); private: // Associated lexer (may be not used) - QsciLexer *lexer; // NOTE: this should be used in instead of toSyntaxAnalyzer - bool syntaxColoring; + QsciLexer *lexer; // NOTE: this should created by toSyntaxAnalyzer::createLexer + + HighlighterTypeEnum highlighterType; + /** Map of rows with errors and their error message. */ QMap<int, QString> Errors; @@ -248,6 +249,9 @@ QStringList getCompletionList(QString &partial); void completeWithText(QString itemText); + + virtual void focusInEvent(QFocusEvent *e); + virtual void focusOutEvent(QFocusEvent *e); }; Q_DECLARE_METATYPE(toHighlightedText::HighlighterTypeEnum) Modified: branches/tora3/src/parsing/tosyntaxanalyzer.cpp =================================================================== --- branches/tora3/src/parsing/tosyntaxanalyzer.cpp 2013-08-02 11:47:56 UTC (rev 4687) +++ branches/tora3/src/parsing/tosyntaxanalyzer.cpp 2013-08-02 15:22:58 UTC (rev 4688) @@ -134,6 +134,14 @@ return retval; } +QsciLexer * toSyntaxAnalyzerNL::createLexer() +{ + QsciLexerSQL *retval = new QsciLexerSQL(); + retval->setFoldComments(true); + retval->setFoldCompact(false); + return retval; +} + toSyntaxAnalyzer::statementList toSyntaxAnalyzerOracle::getStatements() { toHighlightedText *editor = qobject_cast<toHighlightedText *>(parent()); @@ -153,4 +161,3 @@ toSyntaxAnalyzer::statement retval; return retval; } - Modified: branches/tora3/src/parsing/tosyntaxanalyzer.h =================================================================== --- branches/tora3/src/parsing/tosyntaxanalyzer.h 2013-08-02 11:47:56 UTC (rev 4687) +++ branches/tora3/src/parsing/tosyntaxanalyzer.h 2013-08-02 15:22:58 UTC (rev 4688) @@ -45,7 +45,12 @@ #include <QtCore/QObject> class toHighlightedText; +class QsciLexer; +/** provides two "independent" functionalities: + * - lexer (used for syntax highlighting) + * - pseudo-parser (used to get begging and the and of the SQL statement) + */ class toSyntaxAnalyzer : public QObject { Q_OBJECT; @@ -83,6 +88,7 @@ virtual statementList getStatements() = 0; virtual statement getStatementAt(unsigned line, unsigned linePos) = 0; + virtual QsciLexer* createLexer() = 0; }; /* This "analyzer" used an empty line as statement delimiter */ @@ -94,6 +100,7 @@ virtual statementList getStatements(); virtual statement getStatementAt(unsigned line, unsigned linePos); + virtual QsciLexer* createLexer(); }; class toSyntaxAnalyzerOracle : public toSyntaxAnalyzer @@ -104,6 +111,7 @@ virtual statementList getStatements(); virtual statement getStatementAt(unsigned line, unsigned linePos); + virtual QsciLexer* createLexer(); }; #endif Modified: branches/tora3/src/tools/toworksheet.cpp =================================================================== --- branches/tora3/src/tools/toworksheet.cpp 2013-08-02 11:47:56 UTC (rev 4687) +++ branches/tora3/src/tools/toworksheet.cpp 2013-08-02 15:22:58 UTC (rev 4688) @@ -67,7 +67,7 @@ #ifdef TORA3_STAT #include "tools/toworksheetstatistic.h" #endif -#include "tools/toworksheettext.h" +#include "tools/toworksheeteditor.h" #include "core/todescribe.h" #include "core/toeditmenu.h" @@ -518,7 +518,6 @@ { if (toConfigurationSingle::Instance().wsStatistics()) { - show(); statisticAct->setChecked(true); } } @@ -619,7 +618,7 @@ ToolMenu->addAction(nextAct); ToolMenu->addAction(eraseAct); - toGlobalEventSingle::Instance().addCustomMenu(ToolMenu); + toGlobalEventSingle::Instance().addCustomMenu(ToolMenu); } // disabled. can cause infinite loop on some window systems @@ -762,7 +761,16 @@ event->ignore(); } +void toWorksheet::focusInEvent(QFocusEvent *e) +{ + qDebug() << ">>> toWorksheet::focusInEvent" << this; +} +void toWorksheet::focusOutEvent(QFocusEvent *e) +{ + qDebug() << ">>> toWorksheet::focusOutEvent" << this; +} + toWorksheet::~toWorksheet() { } Modified: branches/tora3/src/tools/toworksheet.h =================================================================== --- branches/tora3/src/tools/toworksheet.h 2013-08-02 11:47:56 UTC (rev 4687) +++ branches/tora3/src/tools/toworksheet.h 2013-08-02 15:22:58 UTC (rev 4688) @@ -80,8 +80,6 @@ { Q_OBJECT; - friend class toWorksheetWidget; - toHighlightedEditor *Editor; toTabWidget *ResultTab; toResultTableView *Result; @@ -173,6 +171,9 @@ protected: void closeEvent(QCloseEvent *event); + virtual void focusInEvent(QFocusEvent *e); + virtual void focusOutEvent(QFocusEvent *e); + public: toWorksheet(QWidget *parent, toConnection &connection, bool autoLoad = true); virtual ~toWorksheet(); Modified: branches/tora3/src/tools/toworksheeteditor.cpp =================================================================== --- branches/tora3/src/tools/toworksheeteditor.cpp 2013-08-02 11:47:56 UTC (rev 4687) +++ branches/tora3/src/tools/toworksheeteditor.cpp 2013-08-02 15:22:58 UTC (rev 4688) @@ -39,7 +39,7 @@ * * END_COMMON_COPYRIGHT_HEADER */ -#include "tools/toworksheettext.h" +#include "tools/toworksheeteditor.h" #include "tools/toworksheet.h" #include "core/utils.h" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2013-08-04 14:35:16
|
Revision: 4700 http://sourceforge.net/p/tora/code/4700 Author: ibre5041 Date: 2013-08-04 14:35:06 +0000 (Sun, 04 Aug 2013) Log Message: ----------- Header prefixes Modified Paths: -------------- branches/tora3/doc/devel/sample/tosimplequery.cpp branches/tora3/src/connection/tooraclefind.cpp branches/tora3/src/connection/tooracleprovider.cpp branches/tora3/src/connection/toteradatafind.cpp branches/tora3/src/connection/toteradataprovider.cpp branches/tora3/src/core/tobackgroundlabel.cpp branches/tora3/src/core/tobackgroundlabel.h branches/tora3/src/core/tobrowserbasewidget.cpp branches/tora3/src/core/tocache.h branches/tora3/src/core/tocodemodel.h branches/tora3/src/core/toconfiguration.cpp branches/tora3/src/core/toconfiguration.h branches/tora3/src/core/toconnection.h branches/tora3/src/core/toconnectionmodel.cpp branches/tora3/src/core/toconnectionmodel.h branches/tora3/src/core/toconnectionprovider.h branches/tora3/src/core/toconnectionsub.h branches/tora3/src/core/toconnectiontraits.h branches/tora3/src/core/todescribe.cpp branches/tora3/src/core/todockbar.cpp branches/tora3/src/core/todocklet.h branches/tora3/src/core/toeditablemenu.cpp branches/tora3/src/core/toeditablemenu.h branches/tora3/src/core/toeditmenu.cpp branches/tora3/src/core/toeditmenu.h branches/tora3/src/core/toeditwidget.h branches/tora3/src/core/toeventquery.h branches/tora3/src/core/toeventqueryworker.cpp branches/tora3/src/core/toeventqueryworker.h branches/tora3/src/core/toglobalevent.cpp branches/tora3/src/core/toglobalevent.h branches/tora3/src/core/toglobalsetting.cpp branches/tora3/src/core/tohelp.cpp branches/tora3/src/core/tohelp.h branches/tora3/src/core/tohelpsetup.h branches/tora3/src/core/tohtml.cpp branches/tora3/src/core/tohtml.h branches/tora3/src/core/tolinechart.h branches/tora3/src/core/tolistviewformatter.h branches/tora3/src/core/tolistviewformattercsv.cpp branches/tora3/src/core/tolistviewformatterhtml.cpp branches/tora3/src/core/tolistviewformattersql.h branches/tora3/src/core/tolistviewformattertext.cpp branches/tora3/src/core/tologger.h branches/tora3/src/core/tomain.h branches/tora3/src/core/tomainwindow.cpp branches/tora3/src/core/tomainwindow.h branches/tora3/src/core/tomemoeditor.cpp branches/tora3/src/core/tomemoeditor.h branches/tora3/src/core/tomessage.cpp branches/tora3/src/core/tomodeleditor.cpp branches/tora3/src/core/tomodeleditor.h branches/tora3/src/core/tonewconnection.cpp branches/tora3/src/core/tonewconnection.h branches/tora3/src/core/topiechart.h branches/tora3/src/core/toquery.cpp branches/tora3/src/core/toquery.h branches/tora3/src/core/toqvalue.cpp branches/tora3/src/core/toqvalue.h branches/tora3/src/core/toresult.cpp branches/tora3/src/core/toresult.h branches/tora3/src/core/toresultbar.cpp branches/tora3/src/core/toresultbar.h branches/tora3/src/core/toresultcolscomment.cpp branches/tora3/src/core/toresultcolscomment.h branches/tora3/src/core/toresultcombo.h branches/tora3/src/core/toresultdata.h branches/tora3/src/core/toresultdatasingle.h branches/tora3/src/core/toresultdrawing.cpp branches/tora3/src/core/toresultextent.cpp branches/tora3/src/core/toresultextent.h branches/tora3/src/core/toresultitem.cpp branches/tora3/src/core/toresultitem.h branches/tora3/src/core/toresultline.cpp branches/tora3/src/core/toresultlistformat.cpp branches/tora3/src/core/toresultlistformat.h branches/tora3/src/core/toresultmodel.cpp branches/tora3/src/core/toresultmodel.h branches/tora3/src/core/toresultparam.cpp branches/tora3/src/core/toresultparam.h branches/tora3/src/core/toresultschema.cpp branches/tora3/src/core/toresulttableview.h branches/tora3/src/core/toresulttableviewedit.cpp branches/tora3/src/core/toresulttableviewedit.h branches/tora3/src/core/toresultview.h branches/tora3/src/core/tosplash.cpp branches/tora3/src/core/tosplash.h branches/tora3/src/core/tosql.cpp branches/tora3/src/core/tosql.h branches/tora3/src/core/tosyntaxsetup.h branches/tora3/src/core/totableselect.cpp branches/tora3/src/core/totableselect.h branches/tora3/src/core/totabwidget.cpp branches/tora3/src/core/totabwidget.h branches/tora3/src/core/totextview.cpp branches/tora3/src/core/totimer.h branches/tora3/src/core/totool.cpp branches/tora3/src/core/totool.h branches/tora3/src/core/totreewidget.cpp branches/tora3/src/core/totreewidget.h branches/tora3/src/core/toworkingwidget.cpp branches/tora3/src/core/toworkingwidget.h branches/tora3/src/core/toworkspace.cpp branches/tora3/src/core/toworkspace.h branches/tora3/src/core/utils.cpp branches/tora3/src/core/utils.h branches/tora3/src/docklets/toastwalk.cpp branches/tora3/src/docklets/tocodeoutline.cpp branches/tora3/src/docklets/tocodeoutline.h branches/tora3/src/docklets/toquerymodel.cpp branches/tora3/src/docklets/toquerymodel.h branches/tora3/src/editor/tocustomlexer.h branches/tora3/src/editor/tohighlightedtext.h branches/tora3/src/editor/tomarkedtext.cpp branches/tora3/src/editor/tomarkedtext.h branches/tora3/src/editor/tosearchreplace.cpp branches/tora3/src/editor/tosearchreplace.h branches/tora3/src/migratetool/sqldeveloper.cpp branches/tora3/src/migratetool/sqldeveloper.h branches/tora3/src/migratetool/squirrelsql.cpp branches/tora3/src/migratetool/squirrelsql.h branches/tora3/src/migratetool/tora3.cpp branches/tora3/src/migratetool/tora3.h branches/tora3/src/obsolete/tobrowserconstraint.cpp branches/tora3/src/obsolete/tobrowserindex.cpp branches/tora3/src/obsolete/tobrowsertable.cpp branches/tora3/src/obsolete/tobrowsertable.h branches/tora3/src/obsolete/tochartmanager.cpp branches/tora3/src/obsolete/tochartmanager.h branches/tora3/src/obsolete/toconnection.cpp branches/tora3/src/obsolete/toconnection.h branches/tora3/src/obsolete/toconnectionpool.cpp branches/tora3/src/obsolete/toconnectionpool.h branches/tora3/src/obsolete/todatatype.cpp branches/tora3/src/obsolete/todatatype.h branches/tora3/src/obsolete/toextract.cpp branches/tora3/src/obsolete/toextract.h branches/tora3/src/obsolete/toextratranslations.cpp branches/tora3/src/obsolete/tofyracleconnection.cpp branches/tora3/src/obsolete/tolegendchart.cpp branches/tora3/src/obsolete/tolegendchart.h branches/tora3/src/obsolete/tooracleconnection.cpp branches/tora3/src/obsolete/tooracleconnection_trotl.cpp branches/tora3/src/obsolete/tooracleextract.cpp branches/tora3/src/obsolete/tooracleextract.h branches/tora3/src/obsolete/tooracletable.cpp branches/tora3/src/obsolete/toqsqlconnection.cpp branches/tora3/src/obsolete/toreport.cpp branches/tora3/src/obsolete/toresultlabel.cpp branches/tora3/src/obsolete/toresultpie.h branches/tora3/src/obsolete/torunnable.cpp branches/tora3/src/obsolete/torunnable.h branches/tora3/src/obsolete/tosmtp.cpp branches/tora3/src/obsolete/tosqlparse.cpp branches/tora3/src/obsolete/tosqlparse.h branches/tora3/src/obsolete/tosqlparsetest.cpp branches/tora3/src/obsolete/tosyntaxanalyzer.cpp branches/tora3/src/obsolete/tosyntaxanalyzer.h branches/tora3/src/obsolete/totaskrunner.h branches/tora3/src/obsolete/toteradataconnection.cpp branches/tora3/src/obsolete/tothread.cpp branches/tora3/src/obsolete/tothread.h branches/tora3/src/obsolete/tovisualize.cpp branches/tora3/src/obsolete/tovisualize.h branches/tora3/src/parsing/tsqllexer.h branches/tora3/src/parsing/tsqlparse.h branches/tora3/src/precompiled/precompiled_linux.h branches/tora3/src/precompiled/precompiled_msvc.h branches/tora3/src/result/tocomboview.h branches/tora3/src/result/totablemodel.cpp branches/tora3/src/result/totablemodel.h branches/tora3/src/result/totableview.h branches/tora3/src/result/totreemodel.h branches/tora3/src/result/totreeview.h branches/tora3/src/shortcuteditor/shortcuteditordialog.cpp branches/tora3/src/shortcuteditor/shortcutmodel.h branches/tora3/src/tests/test1.cpp branches/tora3/src/tests/test2.cpp branches/tora3/src/tests/test3.cpp branches/tora3/src/tests/test3window.cpp branches/tora3/src/tests/test3window.h branches/tora3/src/tests/test4.cpp branches/tora3/src/tests/test4window.h branches/tora3/src/tools/toawr.h branches/tora3/src/tools/tobrowserschemawidget.cpp branches/tora3/src/tools/toer.h branches/tora3/src/tools/toscript.cpp branches/tora3/src/tools/toscripttreeitem.cpp branches/tora3/src/tools/toscripttreeitem.h branches/tora3/src/tools/toscripttreemodel.h branches/tora3/src/tools/tosecuritytreeitem.cpp branches/tora3/src/tools/tosecuritytreeitem.h branches/tora3/src/tools/tosecuritytreemodel.h branches/tora3/src/tools/tosgastatement.h branches/tora3/src/tools/tosgatrace.h branches/tora3/src/tools/tosqledit.cpp branches/tora3/src/tools/tosqledit.h branches/tora3/src/tools/tostorage.h branches/tora3/src/ts_log/critical_section.h branches/tora3/src/ts_log/toostream.h Modified: branches/tora3/doc/devel/sample/tosimplequery.cpp =================================================================== --- branches/tora3/doc/devel/sample/tosimplequery.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/doc/devel/sample/tosimplequery.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -5,9 +5,9 @@ #include "core/toresultview.h" #include "core/tochangeconnection.h" -#include <QLayout> -#include <QToolBar> -#include <QLineEdit> +#include <QtGui/QLayout> +#include <QtGui/QToolBar> +#include <QtGui/QLineEdit> static const char * execute_xpm[] = { Modified: branches/tora3/src/connection/tooraclefind.cpp =================================================================== --- branches/tora3/src/connection/tooraclefind.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/connection/tooraclefind.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -45,12 +45,12 @@ #include "core/toconfiguration.h" #include "core/toconf.h" -#include <QDir> -#include <QFile> -#include <QList> -#include <QSet> -#include <QSettings> -#include <QTextStream> +#include <QtCore/QDir> +#include <QtCore/QFile> +#include <QtCore/QList> +#include <QtCore/QSet> +#include <QtCore/QSettings> +#include <QtCore/QTextStream> #include <oci.h> #if defined(Q_OS_LINUX) || defined (Q_OS_MAC) Modified: branches/tora3/src/connection/tooracleprovider.cpp =================================================================== --- branches/tora3/src/connection/tooracleprovider.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/connection/tooracleprovider.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -62,8 +62,8 @@ #include "trotl.h" #include "trotl_convertor.h" -#include <QSettings> -#include <QDir> +#include <QtCore/QSettings> +#include <QtCore/QDir> class toOracleConnectionImpl; class toOracleConnectionSub; Modified: branches/tora3/src/connection/toteradatafind.cpp =================================================================== --- branches/tora3/src/connection/toteradatafind.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/connection/toteradatafind.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -42,12 +42,12 @@ #include "core/tologger.h" #include "core/utils.h" -#include <QDir> -#include <QFile> -#include <QList> -#include <QSet> -#include <QSettings> -#include <QTextStream> +#include <QtCore/QDir> +#include <QtCore/QFile> +#include <QtCore/QList> +#include <QtCore/QSet> +#include <QtCore/QSettings> +#include <QtCore/QTextStream> #if defined(Q_OS_LINUX) # define PROVIDER_LIB "libpteradata.so" Modified: branches/tora3/src/connection/toteradataprovider.cpp =================================================================== --- branches/tora3/src/connection/toteradataprovider.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/connection/toteradataprovider.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -47,8 +47,8 @@ #include "core/tologger.h" #include "core/utils.h" -#include <QSettings> -#include <QDir> +#include <QtCore/QSettings> +#include <QtCore/QDir> extern "C" { #include <coptypes.h> /* Teradata include files */ Modified: branches/tora3/src/core/tobackgroundlabel.cpp =================================================================== --- branches/tora3/src/core/tobackgroundlabel.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tobackgroundlabel.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -43,8 +43,8 @@ #include "core/toconnectionregistry.h" #include "core/toconnection.h" -#include <QMovie> -#include <QMouseEvent> +#include <QtGui/QMovie> +#include <QtGui/QMouseEvent> QMovie* toBackgroundLabel::Animation = 0; Modified: branches/tora3/src/core/tobackgroundlabel.h =================================================================== --- branches/tora3/src/core/tobackgroundlabel.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tobackgroundlabel.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -6,7 +6,7 @@ #ifndef TOBACKGROUNDLABEL_H #define TOBACKGROUNDLABEL_H -#include <QLabel> +#include <QtGui/QLabel> class QWidget; class QMouseEvent; Modified: branches/tora3/src/core/tobrowserbasewidget.cpp =================================================================== --- branches/tora3/src/core/tobrowserbasewidget.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tobrowserbasewidget.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -43,7 +43,7 @@ #include "core/toresultdata.h" #include "core/toconnectionregistry.h" -#include <QApplication> +#include <QtGui/QApplication> toBrowserBaseWidget::toBrowserBaseWidget(QWidget * parent) : QTabWidget(parent) Modified: branches/tora3/src/core/tocache.h =================================================================== --- branches/tora3/src/core/tocache.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tocache.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -43,20 +43,20 @@ #include "core/tora_export.h" -#include <QMetaType> -#include <QDate> -#include <QList> -#include <QVariant> +#include <QtCore/QMetaType> +#include <QtCore/QDate> +#include <QtCore/QList> +#include <QtCore/QVariant> +#include <QtCore/QList> +#include <QtCore/QPair> +#include <QtCore/QSet> +#include <QtCore/QPointer> +#include <QtCore/QMap> +#include <QtCore/QVariant> +#include <QtCore/QString> +#include <QtCore/QReadWriteLock> +#include <QtCore/QMutex> //#include <map> -#include <QList> -#include <QPair> -#include <QSet> -#include <QPointer> -#include <QMap> -#include <QVariant> -#include <QString> -#include <QReadWriteLock> -#include <QMutex> /** Object cache for a connection. This class is accessed only through toConnection a could be a nested class of toConnection. Modified: branches/tora3/src/core/tocodemodel.h =================================================================== --- branches/tora3/src/core/tocodemodel.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tocodemodel.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -45,9 +45,9 @@ #include "core/toconnection.h" -#include <QAbstractItemModel> -#include <QModelIndex> -#include <QVariant> +#include <QtCore/QAbstractItemModel> +#include <QtCore/QModelIndex> +#include <QtCore/QVariant> class toEventQuery; Modified: branches/tora3/src/core/toconfiguration.cpp =================================================================== --- branches/tora3/src/core/toconfiguration.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toconfiguration.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -48,9 +48,9 @@ #include "toconf.h" -#include <QLocale> -#include <QSettings> -#include <QDir> +#include <QtCore/QLocale> +#include <QtCore/QSettings> +#include <QtCore/QDir> class toConfigurationPrivate { Modified: branches/tora3/src/core/toconfiguration.h =================================================================== --- branches/tora3/src/core/toconfiguration.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toconfiguration.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -4,9 +4,9 @@ #include "core/tora_export.h" #include <loki/Singleton.h> -#include <QStringList> -#include <QMap> -#include <QApplication> +#include <QtCore/QStringList> +#include <QtCore/QMap> +#include <QtGui/QApplication> typedef QMap<QString, bool> ToolsMap; typedef QMap<QString, QString> HelpsMap; Modified: branches/tora3/src/core/toconnection.h =================================================================== --- branches/tora3/src/core/toconnection.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toconnection.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -46,13 +46,13 @@ #include "core/toquery.h" #include "core/tologger.h" -#include <QObject> -#include <QPointer> -#include <QWidget> -#include <QSet> -#include <QMetaType> -#include <QDateTime> -#include <QAtomicInt> +#include <QtCore/QObject> +#include <QtCore/QPointer> +#include <QtGui/QWidget> +#include <QtCore/QSet> +#include <QtCore/QMetaType> +#include <QtCore/QDateTime> +#include <QtCore/QAtomicInt> class toConnectionSub; class toConnectionTraits; Modified: branches/tora3/src/core/toconnectionmodel.cpp =================================================================== --- branches/tora3/src/core/toconnectionmodel.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toconnectionmodel.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -44,7 +44,7 @@ #include "core/toconfiguration.h" #include "core/utils.h" -#include <QSettings> +#include <QtCore/QSettings> toConnectionModel::toConnectionModel() Modified: branches/tora3/src/core/toconnectionmodel.h =================================================================== --- branches/tora3/src/core/toconnectionmodel.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toconnectionmodel.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -44,7 +44,7 @@ #include "core/tonewconnection.h" -#include <QAbstractTableModel> +#include <QtCore/QAbstractTableModel> /*! \brief Display imported/available connections in the Import dialog's view. Modified: branches/tora3/src/core/toconnectionprovider.h =================================================================== --- branches/tora3/src/core/toconnectionprovider.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toconnectionprovider.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -43,10 +43,10 @@ #include "core/toconnection.h" -#include <QString> -#include <QMap> -#include <QVariant> -#include <QList> +#include <QtCore/QString> +#include <QtCore/QMap> +#include <QtCore/QVariant> +#include <QtCore/QList> #include "loki/Factory_alt.h" Modified: branches/tora3/src/core/toconnectionsub.h =================================================================== --- branches/tora3/src/core/toconnectionsub.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toconnectionsub.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -3,7 +3,7 @@ #include "core/tocache.h" -#include <QDateTime> +#include <QtCore/QDateTime> class queryImpl; class toQuery; Modified: branches/tora3/src/core/toconnectiontraits.h =================================================================== --- branches/tora3/src/core/toconnectiontraits.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toconnectiontraits.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -41,7 +41,7 @@ #ifndef TOCONNECTIONTRAITS_H #define TOCONNECTIONTRAITS_H -#include <QString> +#include <QtCore/QString> class toConnectionTraits { Modified: branches/tora3/src/core/todescribe.cpp =================================================================== --- branches/tora3/src/core/todescribe.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/todescribe.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -44,10 +44,10 @@ #include "core/toconnection.h" #include "core/tobrowserbasewidget.h" -#include <QSettings> +#include <QtCore/QSettings> #include <QtGui/QHideEvent> #include <QtGui/QMessageBox> -#include <QList> +#include <QtCore/QList> toDescribe::toDescribe(QWidget * parent) : QDialog(parent) Modified: branches/tora3/src/core/todockbar.cpp =================================================================== --- branches/tora3/src/core/todockbar.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/todockbar.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -42,10 +42,9 @@ #include "core/todockbar.h" #include "core/todocklet.h" -#include <QDataStream> -#include <QByteArray> +#include <QtCore/QDataStream> +#include <QtCore/QByteArray> - toDockbarButton::toDockbarButton(const QIcon &icon, const QString &text, QWidget *parent) Modified: branches/tora3/src/core/todocklet.h =================================================================== --- branches/tora3/src/core/todocklet.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/todocklet.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -44,11 +44,11 @@ -#include <QMap> -#include <QAction> -#include <QWidget> -#include <QDockWidget> -#include <QRect> +#include <QtCore/QMap> +#include <QtGui/QAction> +#include <QtGui/QWidget> +#include <QtGui/QDockWidget> +#include <QtCore/QRect> class toDocklet; Modified: branches/tora3/src/core/toeditablemenu.cpp =================================================================== --- branches/tora3/src/core/toeditablemenu.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toeditablemenu.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -40,8 +40,8 @@ * END_COMMON_COPYRIGHT_HEADER */ #include "core/toeditablemenu.h" -#include <QAction> -#include <QContextMenuEvent> +#include <QtGui/QAction> +#include <QtGui/QContextMenuEvent> #include "icons/trash.xpm" Modified: branches/tora3/src/core/toeditablemenu.h =================================================================== --- branches/tora3/src/core/toeditablemenu.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toeditablemenu.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -44,8 +44,8 @@ -#include <QMenu> -#include <QKeyEvent> +#include <QtGui/QMenu> +#include <QtGui/QKeyEvent> /** Modified: branches/tora3/src/core/toeditmenu.cpp =================================================================== --- branches/tora3/src/core/toeditmenu.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toeditmenu.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -49,9 +49,9 @@ #include "icons/paste.xpm" #include "icons/search.xpm" -#include <QApplication> -#include <QClipboard> -#include <QMimeData> +#include <QtGui/QApplication> +#include <QtGui/QClipboard> +#include <QtCore/QMimeData> toEditMenu::toEditMenu() : QMenu(tr("&Edit"), NULL) Modified: branches/tora3/src/core/toeditmenu.h =================================================================== --- branches/tora3/src/core/toeditmenu.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toeditmenu.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -45,7 +45,7 @@ #include "core/toeditwidget.h" #include "loki/Singleton.h" -#include <QMenu> +#include <QtGui/QMenu> /** This singleton represents Edit menu in the main window widget * as this must be accessed from various pieces it was moved into singleton Modified: branches/tora3/src/core/toeditwidget.h =================================================================== --- branches/tora3/src/core/toeditwidget.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toeditwidget.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -42,7 +42,7 @@ #ifndef TOEDITWIDGET_H #define TOEDITWIDGET_H -#include <QWidget> +#include <QtGui/QWidget> #include <list> Modified: branches/tora3/src/core/toeventquery.h =================================================================== --- branches/tora3/src/core/toeventquery.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toeventquery.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -49,10 +49,10 @@ //#include "core/toresultstats.h" #include "core/toqvalue.h" -#include <QObject> -#include <QPointer> -#include <QSharedPointer> -#include <QWaitCondition> +#include <QtCore/QObject> +#include <QtCore/QPointer> +#include <QtCore/QSharedPointer> +#include <QtCore/QWaitCondition> class toResultStats; class toEventQueryWorker; Modified: branches/tora3/src/core/toeventqueryworker.cpp =================================================================== --- branches/tora3/src/core/toeventqueryworker.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toeventqueryworker.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -50,9 +50,9 @@ #include "core/toquery.h" #include "core/toqvalue.h" -#include <QApplication> -#include <QMutexLocker> -#include <QTimer> +#include <QtGui/QApplication> +#include <QtCore/QMutexLocker> +#include <QtCore/QTimer> /* It is not allowed to throw an exception from event slot. * So let's catch all the possible errors in slot handlers Modified: branches/tora3/src/core/toeventqueryworker.h =================================================================== --- branches/tora3/src/core/toeventqueryworker.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toeventqueryworker.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -50,15 +50,14 @@ #include "core/toeventquery.h" #include "core/utils.h" -#include <QObject> -#include <QThread> -#include <QPointer> -#include <QMetaType> -#include <QEvent> -#include <QMutex> -#include <QList> +#include <QtCore/QObject> +#include <QtCore/QThread> +#include <QtCore/QPointer> +#include <QtCore/QMetaType> +#include <QtCore/QEvent> +#include <QtCore/QMutex> +#include <QtCore/QList> - class toResultStats; class toEventQuery; class toEventQueryWorker; Modified: branches/tora3/src/core/toglobalevent.cpp =================================================================== --- branches/tora3/src/core/toglobalevent.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toglobalevent.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -41,8 +41,8 @@ #include "core/toglobalevent.h" #include "core/toeditwidget.h" -#include <QObject> -#include <QString> +#include <QtCore/QObject> +#include <QtCore/QString> toGlobalEvent::toGlobalEvent() : QObject() { Modified: branches/tora3/src/core/toglobalevent.h =================================================================== --- branches/tora3/src/core/toglobalevent.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toglobalevent.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -45,7 +45,7 @@ #include "loki/Singleton.h" #include "core/tora_export.h" -#include <QObject> +#include <QtCore/QObject> class QString; class QMenu; Modified: branches/tora3/src/core/toglobalsetting.cpp =================================================================== --- branches/tora3/src/core/toglobalsetting.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toglobalsetting.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -46,9 +46,9 @@ #include "core/tocache.h" #include "core/toqvalue.h" -#include <QColorDialog> -#include <QString> -#include <QFileDialog> +#include <QtGui/QColorDialog> +#include <QtCore/QString> +#include <QtGui/QFileDialog> ConnectionColorsDialog::ConnectionColorsDialog(QWidget * parent) : QDialog(parent) Modified: branches/tora3/src/core/tohelp.cpp =================================================================== --- branches/tora3/src/core/tohelp.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tohelp.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -48,8 +48,8 @@ #include "core/tohelpsetup.h" #include "core/toconfiguration.h" -#include <QMessageBox> -#include <QSettings> +#include <QtGui/QMessageBox> +#include <QtCore/QSettings> toHelp *toHelp::Window; Modified: branches/tora3/src/core/tohelp.h =================================================================== --- branches/tora3/src/core/tohelp.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tohelp.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -47,9 +47,9 @@ #include "ui_tohelpui.h" -#include <QProgressBar> -#include <QWidget> -#include <QTreeWidget> +#include <QtGui/QProgressBar> +#include <QtGui/QWidget> +#include <QtGui/QTreeWidget> class toHelpPrefs; Modified: branches/tora3/src/core/tohelpsetup.h =================================================================== --- branches/tora3/src/core/tohelpsetup.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tohelpsetup.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -48,7 +48,7 @@ #include "ui_tohelpaddfileui.h" #include "ui_tohelpsetupui.h" -#include <QDialog> +#include <QtGui/QDialog> class toHelpAddFile : public QDialog, public Ui::toHelpAddFileUI Modified: branches/tora3/src/core/tohtml.cpp =================================================================== --- branches/tora3/src/core/tohtml.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tohtml.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -43,9 +43,9 @@ #include "core/toconf.h" #include "core/tomainwindow.h" -#include <QApplication> -#include <QString> -#include <QChar> +#include <QtGui/QApplication> +#include <QtCore/QString> +#include <QtCore/QChar> toHtml::toHtml(const QString &data) : Length(data.length()) Modified: branches/tora3/src/core/tohtml.h =================================================================== --- branches/tora3/src/core/tohtml.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tohtml.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -44,7 +44,7 @@ -#include <QString> +#include <QtCore/QString> #include <map> Modified: branches/tora3/src/core/tolinechart.h =================================================================== --- branches/tora3/src/core/tolinechart.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tolinechart.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -42,12 +42,12 @@ #ifndef TOLINECHART_H #define TOLINECHART_H -#include <QWidget> -#include <QString> -#include <QPaintEvent> -#include <QMouseEvent> -#include <QRect> -#include <QPoint> +#include <QtGui/QWidget> +#include <QtCore/QString> +#include <QtGui/QPaintEvent> +#include <QtGui/QMouseEvent> +#include <QtCore/QRect> +#include <QtCore/QPoint> #include <list> #include <map> Modified: branches/tora3/src/core/tolistviewformatter.h =================================================================== --- branches/tora3/src/core/tolistviewformatter.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tolistviewformatter.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -42,9 +42,9 @@ #ifndef TOLISTVIEWFORMATTER #define TOLISTVIEWFORMATTER -#include <QString> -#include <QModelIndexList> -#include <QVector> +#include <QtCore/QString> +#include <QtCore/QModelIndexList> +#include <QtCore/QVector> class toListView; class toResultModel; Modified: branches/tora3/src/core/tolistviewformattercsv.cpp =================================================================== --- branches/tora3/src/core/tolistviewformattercsv.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tolistviewformattercsv.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -45,7 +45,7 @@ #include "core/toresultview.h" #include "core/toresultmodel.h" -#include <QRegExp> +#include <QtCore/QRegExp> #include <iostream> #include <vector> Modified: branches/tora3/src/core/tolistviewformatterhtml.cpp =================================================================== --- branches/tora3/src/core/tolistviewformatterhtml.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tolistviewformatterhtml.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -45,7 +45,7 @@ #include "core/toresultview.h" #include "core/toresultmodel.h" -#include <QTextDocument> +#include <QtGui/QTextDocument> #include <iostream> Modified: branches/tora3/src/core/tolistviewformattersql.h =================================================================== --- branches/tora3/src/core/tolistviewformattersql.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tolistviewformattersql.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -44,7 +44,7 @@ #include "core/tolistviewformatter.h" -#include <QString> +#include <QtCore/QString> #include <map> #include <list> Modified: branches/tora3/src/core/tolistviewformattertext.cpp =================================================================== --- branches/tora3/src/core/tolistviewformattertext.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tolistviewformattertext.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -45,7 +45,7 @@ #include "core/toresultview.h" #include "core/toresultmodel.h" -#include <QVector> +#include <QtCore/QVector> #include <iostream> Modified: branches/tora3/src/core/tologger.h =================================================================== --- branches/tora3/src/core/tologger.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tologger.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -18,7 +18,7 @@ #include "ts_log/toostream.h" #include <iostream> -#include <QString> +#include <QtCore/QString> #include <boost/iostreams/device/null.hpp> #include <boost/iostreams/stream.hpp> #include <boost/iostreams/stream_buffer.hpp> @@ -172,7 +172,7 @@ #include "ts_log/ts_log_utils.h" #include "ts_log/decorator.h" -#include <QString> +#include <QtCore/QString> #define TLOG(lognumber, decorator, where) get_null_log() Modified: branches/tora3/src/core/tomain.h =================================================================== --- branches/tora3/src/core/tomain.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tomain.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -47,9 +47,9 @@ #include "core/toeditwidget.h" #include "core/tobackground.h" -#include <QLabel> -#include <QPointer> -#include <QMap> +#include <QtGui/QLabel> +#include <QtCore/QPointer> +#include <QtCore/QMap> class QComboBox; class QLabel; Modified: branches/tora3/src/core/tomainwindow.cpp =================================================================== --- branches/tora3/src/core/tomainwindow.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tomainwindow.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -41,8 +41,8 @@ #include "core/tomainwindow.h" -#include <QApplication> -#include <QAction> +#include <QtGui/QApplication> +#include <QtGui/QAction> toMainWindow* toMainWindow::lookup() { Modified: branches/tora3/src/core/tomainwindow.h =================================================================== --- branches/tora3/src/core/tomainwindow.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tomainwindow.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -45,7 +45,7 @@ #include "core/tora_export.h" #include "loki/Singleton.h" -#include <QMainWindow> +#include <QtGui/QMainWindow> class toDockbar; class toDocklet; Modified: branches/tora3/src/core/tomemoeditor.cpp =================================================================== --- branches/tora3/src/core/tomemoeditor.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tomemoeditor.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -45,11 +45,11 @@ #include "core/toresultview.h" #include "core/tomainwindow.h" -#include <QKeyEvent> -#include <QVBoxLayout> -#include <QDialogButtonBox> -#include <QSettings> -#include <QCheckBox> +#include <QtGui/QKeyEvent> +#include <QtGui/QVBoxLayout> +#include <QtGui/QDialogButtonBox> +#include <QtCore/QSettings> +#include <QtGui/QCheckBox> #include "icons/commit.xpm" #include "icons/copy.xpm" Modified: branches/tora3/src/core/tomemoeditor.h =================================================================== --- branches/tora3/src/core/tomemoeditor.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tomemoeditor.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -45,9 +45,9 @@ #include "editor/tomarkededitor.h" #include "editor/tohighlightededitor.h" -#include <QDialog> -#include <QLabel> -#include <QToolBar> +#include <QtGui/QDialog> +#include <QtGui/QLabel> +#include <QtGui/QToolBar> class QCheckBox; class QLabel; Modified: branches/tora3/src/core/tomessage.cpp =================================================================== --- branches/tora3/src/core/tomessage.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tomessage.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -41,9 +41,9 @@ #include "core/tomessage.h" -#include <QPushButton> -#include <QDateTime> -#include <QSettings> +#include <QtGui/QPushButton> +#include <QtCore/QDateTime> +#include <QtCore/QSettings> toMessage::toMessage(QWidget * parent, Qt::WindowFlags f) : QDialog(parent, f) Modified: branches/tora3/src/core/tomodeleditor.cpp =================================================================== --- branches/tora3/src/core/tomodeleditor.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tomodeleditor.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -44,12 +44,12 @@ #include "core/tomainwindow.h" #include "core/toqvalue.h" -#include <QKeyEvent> -#include <QVBoxLayout> -#include <QDialogButtonBox> -#include <QSettings> -#include <QAbstractItemModel> -#include <QCheckBox> +#include <QtGui/QKeyEvent> +#include <QtGui/QVBoxLayout> +#include <QtGui/QDialogButtonBox> +#include <QtCore/QSettings> +#include <QtCore/QAbstractItemModel> +#include <QtGui/QCheckBox> #include "icons/commit.xpm" #include "icons/copy.xpm" Modified: branches/tora3/src/core/tomodeleditor.h =================================================================== --- branches/tora3/src/core/tomodeleditor.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tomodeleditor.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -46,10 +46,10 @@ #include "editor/tohighlightededitor.h" #include "core/utils.h" -#include <QDialog> -#include <QLabel> -#include <QToolBar> -#include <QModelIndex> +#include <QtGui/QDialog> +#include <QtGui/QLabel> +#include <QtGui/QToolBar> +#include <QtCore/QModelIndex> class QCheckBox; class QToolBar; Modified: branches/tora3/src/core/tonewconnection.cpp =================================================================== --- branches/tora3/src/core/tonewconnection.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tonewconnection.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -53,12 +53,12 @@ #include "icons/trash.xpm" -#include <QMessageBox> -#include <QHeaderView> -#include <QStringList> -#include <QMenu> -#include <QIcon> -#include <QSortFilterProxyModel> +#include <QtGui/QMessageBox> +#include <QtGui/QHeaderView> +#include <QtCore/QStringList> +#include <QtGui/QMenu> +#include <QtGui/QIcon> +#include <QtGui/QSortFilterProxyModel> static toConnectionModel *m_connectionModel = 0; static QSortFilterProxyModel *m_proxyModel = 0; Modified: branches/tora3/src/core/tonewconnection.h =================================================================== --- branches/tora3/src/core/tonewconnection.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tonewconnection.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -46,9 +46,9 @@ #include "core/totool.h" #include "ui_tonewconnectionui.h" -#include <QMap> -#include <QVector> -#include <QSettings> +#include <QtCore/QMap> +#include <QtCore/QVector> +#include <QtCore/QSettings> class toConnection; class toConnectionModel; Modified: branches/tora3/src/core/topiechart.h =================================================================== --- branches/tora3/src/core/topiechart.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/topiechart.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -43,9 +43,9 @@ #define TOPIECHART_H -#include <QWidget> -#include <QObject> -#include <QRect> +#include <QtGui/QWidget> +#include <QtCore/QObject> +#include <QtCore/QRect> #include <list> class QMenu; Modified: branches/tora3/src/core/toquery.cpp =================================================================== --- branches/tora3/src/core/toquery.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toquery.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -45,7 +45,7 @@ #include "core/toconnectionsub.h" #include "core/tosql.h" -#include <QApplication> +#include <QtGui/QApplication> toQuery::toQuery(toConnectionSubLoan &conn, const toSQL &sql, toQueryParams const& params) : m_ConnectionSub(conn) Modified: branches/tora3/src/core/toquery.h =================================================================== --- branches/tora3/src/core/toquery.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toquery.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -54,7 +54,7 @@ class toSQL; class queryImpl; -#include <QPointer> +#include <QtCore/QPointer> /** This class is used to perform a query on a database connection. */ Modified: branches/tora3/src/core/toqvalue.cpp =================================================================== --- branches/tora3/src/core/toqvalue.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toqvalue.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -44,8 +44,8 @@ #include "core/toconf.h" #include "core/toconfiguration.h" -#include <QVariant> -#include <QApplication> +#include <QtCore/QVariant> +#include <QtGui/QApplication> //#include <cstdio> Modified: branches/tora3/src/core/toqvalue.h =================================================================== --- branches/tora3/src/core/toqvalue.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toqvalue.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -45,9 +45,9 @@ #include "core/tora_export.h" -#include <QString> -#include <QVariant> -#include <QList> +#include <QtCore/QString> +#include <QtCore/QVariant> +#include <QtCore/QList> #include <list> Modified: branches/tora3/src/core/toresult.cpp =================================================================== --- branches/tora3/src/core/toresult.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresult.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -45,7 +45,7 @@ #include "core/totool.h" #include "core/toconfiguration.h" -#include <QTimer> +#include <QtCore/QTimer> void toResultObject::slotConnectionChanged(void) { Modified: branches/tora3/src/core/toresult.h =================================================================== --- branches/tora3/src/core/toresult.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresult.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -49,7 +49,7 @@ #include <list> -#include <QObject> +#include <QtCore/QObject> class QTabWidget; class toConnection; Modified: branches/tora3/src/core/toresultbar.cpp =================================================================== --- branches/tora3/src/core/toresultbar.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultbar.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -44,8 +44,8 @@ #include "core/toeventquery.h" #include "core/totimer.h" -#include <QMenu> -#include <QObject> +#include <QtGui/QMenu> +#include <QtCore/QObject> toResultBar::toResultBar(QWidget *parent, const char *name) : toBarChart(parent, name) Modified: branches/tora3/src/core/toresultbar.h =================================================================== --- branches/tora3/src/core/toresultbar.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultbar.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -44,7 +44,7 @@ #include "core/tobarchart.h" #include "core/toresult.h" -#include <QMenu> +#include <QtGui/QMenu> #include <time.h> #include <list> Modified: branches/tora3/src/core/toresultcolscomment.cpp =================================================================== --- branches/tora3/src/core/toresultcolscomment.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultcolscomment.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -50,8 +50,8 @@ #include "core/tosql.h" #include "core/utils.h" -#include <QRegExp> -#include <QFocusEvent> +#include <QtCore/QRegExp> +#include <QtGui/QFocusEvent> static toSQL SQLChangeTableCommentMySQL( Modified: branches/tora3/src/core/toresultcolscomment.h =================================================================== --- branches/tora3/src/core/toresultcolscomment.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultcolscomment.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -44,9 +44,9 @@ -#include <QString> -#include <QLineEdit> -#include <QFocusEvent> +#include <QtCore/QString> +#include <QtGui/QLineEdit> +#include <QtGui/QFocusEvent> class QWidget; Modified: branches/tora3/src/core/toresultcombo.h =================================================================== --- branches/tora3/src/core/toresultcombo.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultcombo.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -45,9 +45,9 @@ #include "core/toresult.h" -#include <QComboBox> -#include <QStringList> -#include <QPointer> +#include <QtGui/QComboBox> +#include <QtCore/QStringList> +#include <QtCore/QPointer> class toEventQuery; class toSQL; Modified: branches/tora3/src/core/toresultdata.h =================================================================== --- branches/tora3/src/core/toresultdata.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultdata.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -49,9 +49,9 @@ #include "core/toconnection.h" #include "core/toresultmodel.h" -#include <QWidget> -#include <QList> -#include <QMap> +#include <QtGui/QWidget> +#include <QtCore/QList> +#include <QtCore/QMap> class QAction; class toResultDataSingle; Modified: branches/tora3/src/core/toresultdatasingle.h =================================================================== --- branches/tora3/src/core/toresultdatasingle.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultdatasingle.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -45,9 +45,9 @@ #include "core/toresultmodel.h" -#include <QWidget> -#include <QList> -#include <QPointer> +#include <QtGui/QWidget> +#include <QtCore/QList> +#include <QtCore/QPointer> class QScrollArea; class QCheckBox; Modified: branches/tora3/src/core/toresultdrawing.cpp =================================================================== --- branches/tora3/src/core/toresultdrawing.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultdrawing.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -49,10 +49,10 @@ #include "icons/refresh.xpm" -#include <QSlider> -#include <QVBoxLayout> -#include <QToolBar> -#include <QAction> +#include <QtGui/QSlider> +#include <QtGui/QVBoxLayout> +#include <QtGui/QToolBar> +#include <QtGui/QAction> // BIG FAT WARNING - this query causes: ORA-07445: exception encountered: core dump [lnxmin()+2384] [SIGSEGV] Modified: branches/tora3/src/core/toresultextent.cpp =================================================================== --- branches/tora3/src/core/toresultextent.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultextent.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -44,9 +44,9 @@ #include "core/toresulttableview.h" #include "core/utils.h" -#include <QProgressDialog> -#include <QCoreApplication> -#include <QPainter> +#include <QtGui/QProgressDialog> +#include <QtCore/QCoreApplication> +#include <QtGui/QPainter> static toSQL SQLListExtents("toResultStorage:ListExtents", "SELECT * \n" Modified: branches/tora3/src/core/toresultextent.h =================================================================== --- branches/tora3/src/core/toresultextent.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultextent.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -43,7 +43,7 @@ #include "core/toresult.h" -#include <QSplitter> +#include <QtGui/QSplitter> class toResultTableView; class toStorageExtent; Modified: branches/tora3/src/core/toresultitem.cpp =================================================================== --- branches/tora3/src/core/toresultitem.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultitem.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -48,11 +48,11 @@ #include "core/tosql.h" #include "core/totool.h" -#include <QLabel> -#include <QLayout> -#include <QToolTip> -#include <QApplication> -#include <QResizeEvent> +#include <QtGui/QLabel> +#include <QtGui/QLayout> +#include <QtGui/QToolTip> +#include <QtGui/QApplication> +#include <QtGui/QResizeEvent> static toSQL SQLResource( "toResultResources:Information", Modified: branches/tora3/src/core/toresultitem.h =================================================================== --- branches/tora3/src/core/toresultitem.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultitem.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -44,9 +44,9 @@ #include "core/toresult.h" -#include <QScrollArea> -#include <QFont> -#include <QGridLayout> +#include <QtGui/QScrollArea> +#include <QtGui/QFont> +#include <QtGui/QGridLayout> #include <vector> Modified: branches/tora3/src/core/toresultline.cpp =================================================================== --- branches/tora3/src/core/toresultline.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultline.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -46,7 +46,7 @@ #include "core/totimer.h" #include "core/toglobalevent.h" -#include <QMenu> +#include <QtGui/QMenu> toResultLine::toResultLine(QWidget *parent, const char *name) Modified: branches/tora3/src/core/toresultlistformat.cpp =================================================================== --- branches/tora3/src/core/toresultlistformat.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultlistformat.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -39,7 +39,7 @@ * * END_COMMON_COPYRIGHT_HEADER */ -#include <QSettings> +#include <QtCore/QSettings> #include "core/toresultlistformat.h" Modified: branches/tora3/src/core/toresultlistformat.h =================================================================== --- branches/tora3/src/core/toresultlistformat.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultlistformat.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -45,7 +45,7 @@ #include "ui_toresultlistformatui.h" -#include <QDialog> +#include <QtGui/QDialog> class toExportSettings; Modified: branches/tora3/src/core/toresultmodel.cpp =================================================================== --- branches/tora3/src/core/toresultmodel.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultmodel.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -39,8 +39,6 @@ * * END_COMMON_COPYRIGHT_HEADER */ -#include <QMimeData> - #include "core/toresultmodel.h" #include "core/utils.h" #include "core/tologger.h" @@ -50,7 +48,8 @@ #include "core/toeventquery.h" #include "core/toconnectiontraits.h" -#include <QDebug> +#include <QtCore/QDebug> +#include <QtCore/QMimeData> toResultModel::toResultModel(toEventQuery *query, std::list<QString> priKeys, Modified: branches/tora3/src/core/toresultmodel.h =================================================================== --- branches/tora3/src/core/toresultmodel.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultmodel.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -47,11 +47,11 @@ #include "core/toconnection.h" #include "core/toqvalue.h" -#include <QObject> -#include <QAbstractTableModel> -#include <QModelIndex> -#include <QList> -#include <QMap> +#include <QtCore/QObject> +#include <QtCore/QAbstractTableModel> +#include <QtCore/QModelIndex> +#include <QtCore/QList> +#include <QtCore/QMap> class toEventQuery; Modified: branches/tora3/src/core/toresultparam.cpp =================================================================== --- branches/tora3/src/core/toresultparam.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultparam.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -50,14 +50,14 @@ #include "core/toraversion.h" #include "core/toconnectionsub.h" -#include <QLabel> -#include <QLineEdit> -#include <QRegExp> -#include <QToolBar> -#include <QToolButton> -#include <QToolTip> -#include <QPixmap> -#include <QVBoxLayout> +#include <QtGui/QLabel> +#include <QtGui/QLineEdit> +#include <QtCore/QRegExp> +#include <QtGui/QToolBar> +#include <QtGui/QToolButton> +#include <QtGui/QToolTip> +#include <QtGui/QPixmap> +#include <QtGui/QVBoxLayout> #include "icons/database.xpm" #include "icons/filesave.xpm" Modified: branches/tora3/src/core/toresultparam.h =================================================================== --- branches/tora3/src/core/toresultparam.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultparam.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -46,7 +46,7 @@ #include <map> -#include <QWidget> +#include <QtGui/QWidget> class QLineEdit; class QToolButton; Modified: branches/tora3/src/core/toresultschema.cpp =================================================================== --- branches/tora3/src/core/toresultschema.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultschema.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -43,7 +43,7 @@ #include "core/utils.h" #include "core/toconnection.h" -#include <QSettings> +#include <QtCore/QSettings> toResultSchema::toResultSchema(QWidget *parent, Modified: branches/tora3/src/core/toresulttableview.h =================================================================== --- branches/tora3/src/core/toresulttableview.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresulttableview.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -50,16 +50,16 @@ #include "core/toresultmodel.h" #include "core/toeditwidget.h" -#include <QAbstractTableModel> -#include <QHeaderView> -#include <QItemDelegate> -#include <QLabel> -#include <QList> -#include <QMenu> -#include <QModelIndex> -#include <QObject> -#include <QPushButton> -#include <QTableView> +#include <QtCore/QAbstractTableModel> +#include <QtGui/QHeaderView> +#include <QtGui/QItemDelegate> +#include <QtGui/QLabel> +#include <QtCore/QList> +#include <QtGui/QMenu> +#include <QtCore/QModelIndex> +#include <QtCore/QObject> +#include <QtGui/QPushButton> +#include <QtGui/QTableView> class toResultStats; class toViewFilter; Modified: branches/tora3/src/core/toresulttableviewedit.cpp =================================================================== --- branches/tora3/src/core/toresulttableviewedit.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresulttableviewedit.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -47,14 +47,14 @@ #include "core/toconnectionsub.h" #include "core/toglobalevent.h" -#include <QApplication> -#include <QClipboard> -#include <QScrollBar> -#include <QItemDelegate> -#include <QSize> -#include <QFont> -#include <QFontMetrics> -#include <QProgressDialog> +#include <QtGui/QApplication> +#include <QtGui/QClipboard> +#include <QtGui/QScrollBar> +#include <QtGui/QItemDelegate> +#include <QtCore/QSize> +#include <QtGui/QFont> +#include <QtGui/QFontMetrics> +#include <QtGui/QProgressDialog> toResultTableViewEdit::toResultTableViewEdit(bool readable, bool numberColumn, Modified: branches/tora3/src/core/toresulttableviewedit.h =================================================================== --- branches/tora3/src/core/toresulttableviewedit.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresulttableviewedit.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -50,13 +50,13 @@ #include "core/toconnection.h" #include "core/toresultmodel.h" -#include <QObject> -#include <QAbstractTableModel> -#include <QTableView> -#include <QModelIndex> -#include <QList> -#include <QHeaderView> -#include <QMenu> +#include <QtCore/QObject> +#include <QtCore/QAbstractTableModel> +#include <QtGui/QTableView> +#include <QtCore/QModelIndex> +#include <QtCore/QList> +#include <QtGui/QHeaderView> +#include <QtGui/QMenu> /*! \brief Displays query result as a table and provides functionality to edit it. Used in Schema browser tool. Modified: branches/tora3/src/core/toresultview.h =================================================================== --- branches/tora3/src/core/toresultview.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/toresultview.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -48,11 +48,11 @@ #include "core/toresult.h" #include "core/totreewidget.h" -#include <QString> -#include <QFocusEvent> -#include <QMouseEvent> -#include <QKeyEvent> -#include <QMenu> +#include <QtCore/QString> +#include <QtGui/QFocusEvent> +#include <QtGui/QMouseEvent> +#include <QtGui/QKeyEvent> +#include <QtGui/QMenu> #include <map> #include <algorithm> Modified: branches/tora3/src/core/tosplash.cpp =================================================================== --- branches/tora3/src/core/tosplash.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tosplash.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -43,13 +43,13 @@ #include "icons/largelogo.xpm" -#include <QApplication> -#include <QPixmap> -#include <QLabel> -#include <QDesktopWidget> -#include <QProgressBar> -#include <QVBoxLayout> -#include <QPalette> +#include <QtGui/QApplication> +#include <QtGui/QPixmap> +#include <QtGui/QLabel> +#include <QtGui/QDesktopWidget> +#include <QtGui/QProgressBar> +#include <QtGui/QVBoxLayout> +#include <QtGui/QPalette> toSplash::toSplash(QWidget *parent) : QWidget(parent) Modified: branches/tora3/src/core/tosplash.h =================================================================== --- branches/tora3/src/core/tosplash.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tosplash.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -42,8 +42,8 @@ #ifndef TOSPLASH_H #define TOSPLASH_H -#include <QWidget> -#include <QLabel> +#include <QtGui/QWidget> +#include <QtGui/QLabel> class QLabel; class QProgressBar; Modified: branches/tora3/src/core/tosql.cpp =================================================================== --- branches/tora3/src/core/tosql.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tosql.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -43,8 +43,8 @@ #include "core/utils.h" #include "core/toconnection.h" -#include <QApplication> -#include <QString> +#include <QtGui/QApplication> +#include <QtCore/QString> // A little magic to get lrefresh to work and get a check on qApp Modified: branches/tora3/src/core/tosql.h =================================================================== --- branches/tora3/src/core/tosql.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tosql.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -48,7 +48,7 @@ #include <list> //Added by qt3to4: -#include <QString> +#include <QtCore/QString> class toConnection; Modified: branches/tora3/src/core/tosyntaxsetup.h =================================================================== --- branches/tora3/src/core/tosyntaxsetup.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/tosyntaxsetup.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -48,7 +48,7 @@ #include <map> -#include <QString> +#include <QtCore/QString> class QFont; class QListWidgetItem; Modified: branches/tora3/src/core/totableselect.cpp =================================================================== --- branches/tora3/src/core/totableselect.cpp 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/totableselect.cpp 2013-08-04 14:35:06 UTC (rev 4700) @@ -45,9 +45,9 @@ #include "core/toconnectiontraits.h" #include "core/toresultschema.h" -#include <QLabel> -#include <QTimer> -#include <QVBoxLayout> +#include <QtGui/QLabel> +#include <QtCore/QTimer> +#include <QtGui/QVBoxLayout> void toTableSelect::setup() { Modified: branches/tora3/src/core/totableselect.h =================================================================== --- branches/tora3/src/core/totableselect.h 2013-08-04 12:31:05 UTC (rev 4699) +++ branches/tora3/src/core/totableselect.h 2013-08-04 14:35:06 UTC (rev 4700) @@ -4,7 +4,7 @@ #include "totool.h" -#include <QGroupBox> +#include <QtGui/QGroupBox> class toConnection; class toRes... [truncated message content] |
From: <ibr...@us...> - 2013-08-07 13:58:41
|
Revision: 4714 http://sourceforge.net/p/tora/code/4714 Author: ibre5041 Date: 2013-08-07 13:58:38 +0000 (Wed, 07 Aug 2013) Log Message: ----------- "Performance" improvement - do not fetch the 1st chunk of data in the Main Thread - the query is "executed" in the main thread - data are fetched in the worker thread Modified Paths: -------------- branches/tora3/extlibs/trotl/src/trotl_stat.cpp branches/tora3/src/connection/tooraclequery.cpp Modified: branches/tora3/extlibs/trotl/src/trotl_stat.cpp =================================================================== --- branches/tora3/extlibs/trotl/src/trotl_stat.cpp 2013-08-06 23:35:28 UTC (rev 4713) +++ branches/tora3/extlibs/trotl/src/trotl_stat.cpp 2013-08-07 13:58:38 UTC (rev 4714) @@ -478,8 +478,6 @@ { define_all(); } - fetch(_fetch_rows); - _last_fetched_row = row_count(); } switch(res) @@ -492,7 +490,7 @@ throw_oci_exception(OciException(__TROTL_HERE__, *this)); default: if (rows > 0) - _state |= EXECUTED|FETCHED; + _state |= EXECUTED; else _state = (_state|EXECUTED) & ~FETCHED; if(res != OCI_SUCCESS_WITH_INFO) oci_check_error(__TROTL_HERE__, _errh, res); Modified: branches/tora3/src/connection/tooraclequery.cpp =================================================================== --- branches/tora3/src/connection/tooraclequery.cpp 2013-08-06 23:35:28 UTC (rev 4713) +++ branches/tora3/src/connection/tooraclequery.cpp 2013-08-07 13:58:38 UTC (rev 4714) @@ -213,6 +213,9 @@ if((_state & EXECUTED) == 0) execute_internal(::trotl::g_OCIPL_BULK_ROWS, OCI_DEFAULT); + if((_state & FETCHED) == 0) + fetch(_fetch_rows); + if(BP.is_null(_last_buff_row) && BP.dty != SQLT_NTY) { value = toQValue(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2013-08-09 14:10:19
|
Revision: 4730 http://sourceforge.net/p/tora/code/4730 Author: ibre5041 Date: 2013-08-09 14:10:15 +0000 (Fri, 09 Aug 2013) Log Message: ----------- Do not execute DML statements in foreground thread. Modified Paths: -------------- branches/tora3/extlibs/trotl/src/trotl_stat.cpp branches/tora3/extlibs/trotl/src/trotl_stat.h branches/tora3/src/connection/tooraclequery.cpp Modified: branches/tora3/extlibs/trotl/src/trotl_stat.cpp =================================================================== --- branches/tora3/extlibs/trotl/src/trotl_stat.cpp 2013-08-09 12:42:37 UTC (rev 4729) +++ branches/tora3/extlibs/trotl/src/trotl_stat.cpp 2013-08-09 14:10:15 UTC (rev 4730) @@ -73,7 +73,8 @@ _last_fetched_row(-1), _in_pos(0), _out_pos(0), _iters(0), _last_buff_row(0), _buff_size(g_OCIPL_BULK_ROWS), _fetch_rows(g_OCIPL_BULK_ROWS), - _all_binds(NULL), _in_binds(NULL), _out_binds(NULL), + _all_binds(NULL), _all_defines(NULL), + _in_binds(NULL), _out_binds(NULL), _bound(false) // _res(NULL), // _bulk_rows(bulk_rows), @@ -168,7 +169,8 @@ _last_fetched_row(-1), _in_pos(0), _out_pos(0), _iters(0), _last_buff_row(0), _buff_size(g_OCIPL_BULK_ROWS), - _all_binds(NULL), _in_binds(NULL), _out_binds(NULL), + _all_binds(NULL), _all_defines(NULL), + _in_binds(NULL), _out_binds(NULL), _bound(false) // _res(NULL), // _bulk_rows(bulk_rows), Modified: branches/tora3/extlibs/trotl/src/trotl_stat.h =================================================================== --- branches/tora3/extlibs/trotl/src/trotl_stat.h 2013-08-09 12:42:37 UTC (rev 4729) +++ branches/tora3/extlibs/trotl/src/trotl_stat.h 2013-08-09 14:10:15 UTC (rev 4730) @@ -103,8 +103,14 @@ }; ub4 get_column_count() const; //Return number of columns returned from SELECT stmt ub4 get_bindpar_count() const; - const std::vector<DescribeColumn*>& get_columns() const + const std::vector<DescribeColumn*>& get_columns() { + if((_state & DEFINED) == 0) + define_all(); + + if((_state & EXECUTED) == 0) + execute_internal(g_OCIPL_BULK_ROWS, OCI_DEFAULT); + return _columns; }; Modified: branches/tora3/src/connection/tooraclequery.cpp =================================================================== --- branches/tora3/src/connection/tooraclequery.cpp 2013-08-09 12:42:37 UTC (rev 4729) +++ branches/tora3/src/connection/tooraclequery.cpp 2013-08-09 14:10:15 UTC (rev 4730) @@ -59,17 +59,10 @@ QString sql = this->query()->sql(); sql.replace(stripnl, ""); - //Query = new oracleQuery::oracleSqlStatement(*conn->_conn, sql.toUtf8().constData()); Query = new oracleQuery::trotlQuery(*conn->_conn, ::std::string(sql.toUtf8().constData())); TLOG(0, toDecorator, __HERE__) << "SQL(conn=" << conn->_conn << ", this=" << Query << "): " << ::std::string(sql.toUtf8().constData()) << std::endl; // TODO autocommit ?? // Query->set_commit(0); - //if (toQValue::numberFormat() == 0) - // Query->set_all_column_types(otl_all_num2str | otl_all_date2str); - //else - // Query->set_all_column_types(otl_all_date2str); - - //Query->open(1, sql.toUtf8().constData(), *(conn->Connection)); } catch (const ::trotl::OciException &exc) { @@ -197,11 +190,11 @@ int bulk_rows) : ::trotl::SqlStatement(conn, stmt, lang, bulk_rows) { - // Be compatible with otl, execute some statements immediatelly - if( get_stmt_type() == STMT_ALTER || - get_stmt_type() == STMT_OTHER || // ANALYZE - _in_cnt == 0 ) - execute_internal(::trotl::g_OCIPL_BULK_ROWS, OCI_DEFAULT); + // Be compatible with otl, execute some statements immediately + if( get_stmt_type() == STMT_ALTER || get_stmt_type() == STMT_OTHER // ANALYZE + // _in_cnt == 0 + ) + execute_internal(::trotl::g_OCIPL_BULK_ROWS, OCI_DEFAULT); }; void oracleQuery::trotlQuery::readValue(toQValue &value) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2013-08-09 16:12:05
|
Revision: 4731 http://sourceforge.net/p/tora/code/4731 Author: ibre5041 Date: 2013-08-09 16:11:59 +0000 (Fri, 09 Aug 2013) Log Message: ----------- Try to fetch some rows in eof() call. - this handles situations when query returns 0 rows. Modified Paths: -------------- branches/tora3/extlibs/trotl/src/trotl_stat.cpp branches/tora3/extlibs/trotl/src/trotl_stat.h branches/tora3/src/parsing/tosyntaxanalyzernl.cpp Modified: branches/tora3/extlibs/trotl/src/trotl_stat.cpp =================================================================== --- branches/tora3/extlibs/trotl/src/trotl_stat.cpp 2013-08-09 14:10:15 UTC (rev 4730) +++ branches/tora3/extlibs/trotl/src/trotl_stat.cpp 2013-08-09 16:11:59 UTC (rev 4731) @@ -378,6 +378,9 @@ if((_state & EXECUTED) == 0) execute_internal(g_OCIPL_BULK_ROWS, OCI_DEFAULT); + if(get_stmt_type() == STMT_SELECT && (_state & FETCHED) == 0) + fetch(_fetch_rows); + return _state >= EOF_DATA && _last_buff_row >= fetched_rows(); } Modified: branches/tora3/extlibs/trotl/src/trotl_stat.h =================================================================== --- branches/tora3/extlibs/trotl/src/trotl_stat.h 2013-08-09 14:10:15 UTC (rev 4730) +++ branches/tora3/extlibs/trotl/src/trotl_stat.h 2013-08-09 16:11:59 UTC (rev 4731) @@ -105,9 +105,6 @@ ub4 get_bindpar_count() const; const std::vector<DescribeColumn*>& get_columns() { - if((_state & DEFINED) == 0) - define_all(); - if((_state & EXECUTED) == 0) execute_internal(g_OCIPL_BULK_ROWS, OCI_DEFAULT); Modified: branches/tora3/src/parsing/tosyntaxanalyzernl.cpp =================================================================== --- branches/tora3/src/parsing/tosyntaxanalyzernl.cpp 2013-08-09 14:10:15 UTC (rev 4730) +++ branches/tora3/src/parsing/tosyntaxanalyzernl.cpp 2013-08-09 16:11:59 UTC (rev 4731) @@ -46,7 +46,7 @@ #include <QtCore/QString> #include <QtCore/QRegExp> -#include <QtDebug> +#include <QtCore/QtDebug> #include <Qsci/qscilexer.h> #include <Qsci/qscilexersql.h> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2013-08-12 10:48:01
|
Revision: 4736 http://sourceforge.net/p/tora/code/4736 Author: ibre5041 Date: 2013-08-12 10:47:57 +0000 (Mon, 12 Aug 2013) Log Message: ----------- Fix for create table statement. (It can contain nested create index statement). Modified Paths: -------------- branches/tora3/extlibs/parsing.cpp/UserGuiTraits.hpp branches/tora3/src/parsing/tsqllexeroracle2.cc Modified: branches/tora3/extlibs/parsing.cpp/UserGuiTraits.hpp =================================================================== --- branches/tora3/extlibs/parsing.cpp/UserGuiTraits.hpp 2013-08-10 10:21:14 UTC (rev 4735) +++ branches/tora3/extlibs/parsing.cpp/UserGuiTraits.hpp 2013-08-12 10:47:57 UTC (rev 4736) @@ -1,7 +1,3 @@ -/** \file - * This is the include file for the ANTLR3 sample project "dynamic-scope" - * which shows how to use a C grammar and call it from C code. - */ #ifndef _T_GUI_TRAITS_H #define _T_GUI_TRAITS_H Modified: branches/tora3/src/parsing/tsqllexeroracle2.cc =================================================================== --- branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-08-10 10:21:14 UTC (rev 4735) +++ branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-08-12 10:47:57 UTC (rev 4736) @@ -371,10 +371,11 @@ throw Exception(); // Assertion error. 1st Token must have block context stack << tokenContext; // Push the 1st value onto stack + QString prevText, currText; while(!exitLoop) { i++; - QString txt = i->getText(); + tokenContext = i->getBlockContext(); // context for next Token BlockContextEnum &stackContext = stack.back(); // non-const reference the current stack's top @@ -396,12 +397,33 @@ exitLoop = true; continue; } + prevText = currText; + currText = i->getText(); + break; + case Token::L_RESERVED: // Reserved word + case Token::L_IDENTIFIER: + case Token::L_BUILDIN: // Buildin function name + case Token::L_STRING: // single/double quoted string + case Token::L_LPAREN: // '(' + case Token::L_RPAREN: // ')' + case Token::L_PL_INTRODUCER: // DECLARE, BEGIN, CREATE, PACKAGE, PROCEDURE + case Token::X_UNASSIGNED: + // prevText contains previous Token's text (except for WHITE SPACE and comments) + prevText = currText; + currText = i->getText(); + break; + case Token::X_EOL: + case Token::X_WHITE: // "white" char space, tab, newline + case Token::X_COMMENT: // single line comment, preferably without newline part + case Token::X_COMMENT_ML: // Multi-line comment (the correct one) + case Token::X_COMMENT_ML_END: // Partially edited multi-line comment, usually ends with EOF + break; } - + if( tokenContext == BlkCtx::NONE) continue; - // Commbine two enumerated values. The current Stack's top + // Combine two enumerated values. The current Stack's top // and the current Token's context. The resulting value will be used in switch/case. // BlkCtx has 7 possible values, theoretically we should cover up to 49 possible combinations. // @@ -409,11 +431,15 @@ // CREATE -> PACKAGE -> DECLARE -> BEGIN -> END // LOOP -> END // - In other cases we push new value onto stack ( like BLOCK inside BLOCK ) - // - All other combinations are considered ilegal - they stop parsing (like LOOP inside DECLARE ) + // - All other combinations are considered illegal - they stop parsing (like LOOP inside DECLARE ) unsigned var = M<NONE,NONE>::combine(stackContext, tokenContext); switch(var) { case M< CREATE, CREATE >::value : + if (prevText != "(") // CREATE inside CREATE (CREATE TABLE can constain (CREATE INDEX ...) statement) + exitLoop = true; // The nested one always follows L_PAREN "(" + continue; + case M< PACKAGE, CREATE >::value : case M< PROCEDURE, CREATE >::value : case M< DECLARE, CREATE >::value : This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2013-08-12 15:45:20
|
Revision: 4738 http://sourceforge.net/p/tora/code/4738 Author: ibre5041 Date: 2013-08-12 15:45:14 +0000 (Mon, 12 Aug 2013) Log Message: ----------- Fix for selected text execution Modified Paths: -------------- branches/tora3/extlibs/trotl/src/trotl_stat.h branches/tora3/src/parsing/tosyntaxanalyzernl.cpp branches/tora3/src/tools/toworksheet.cpp Modified: branches/tora3/extlibs/trotl/src/trotl_stat.h =================================================================== --- branches/tora3/extlibs/trotl/src/trotl_stat.h 2013-08-12 14:42:24 UTC (rev 4737) +++ branches/tora3/extlibs/trotl/src/trotl_stat.h 2013-08-12 15:45:14 UTC (rev 4738) @@ -83,6 +83,7 @@ STMT_ALTER = OCI_STMT_ALTER, STMT_BEGIN = OCI_STMT_BEGIN, STMT_DECLARE = OCI_STMT_DECLARE, + STMT_CALL = 10, // OCI_STMT_CALL on 11g OCI STMT_NONE }; Modified: branches/tora3/src/parsing/tosyntaxanalyzernl.cpp =================================================================== --- branches/tora3/src/parsing/tosyntaxanalyzernl.cpp 2013-08-12 14:42:24 UTC (rev 4737) +++ branches/tora3/src/parsing/tosyntaxanalyzernl.cpp 2013-08-12 15:45:14 UTC (rev 4738) @@ -249,8 +249,9 @@ else if( SQLPLUS_INTRODUCERS.contains(stat.firstWord.toUpper())) stat.statementType = SQLPLUS; - // omit the trailing semicolon (unless DDL(create..) or PLSQL(begin...) - if( (stat.statementType!=DDL && stat.statementType != PLSQL) && lastWord.endsWith(";")) // "select * from (select * from dual);" the last word is ");" + // omit the trailing semicolon (PLSQL block) + // TODO: this fails for CREATE TRIGGER or CREATE TYPE BODY (these statements end with: "END object_name? ;" + if ( stat.statementType != PLSQL && lastWord.endsWith(";")) // "select * from (select * from dual);" the last word is ");" stat.posTo = editor->SendScintilla(QsciScintilla::SCI_POSITIONBEFORE, lastPos); else if (lastWord == "/") stat.posTo = editor->SendScintilla(QsciScintilla::SCI_POSITIONBEFORE, lastPos); @@ -278,6 +279,7 @@ << "DROP" << "ANALYZE" << "ALTER" + << "COMMENT" << "CLUSTER" << "CONTEXT" << "DATABASE" Modified: branches/tora3/src/tools/toworksheet.cpp =================================================================== --- branches/tora3/src/tools/toworksheet.cpp 2013-08-12 14:42:24 UTC (rev 4737) +++ branches/tora3/src/tools/toworksheet.cpp 2013-08-12 15:45:14 UTC (rev 4738) @@ -955,9 +955,13 @@ { toSyntaxAnalyzer *analyzer = Editor->editor()->analyzer(); toSyntaxAnalyzer::statementList stats = analyzer->getStatements(text); + if(stats.isEmpty()) return; - query(stats.first(), execType); + + toSyntaxAnalyzer::statement stat(stats.first()); + analyzer->sanitizeStatement(stat); + query(stat, execType); } void toWorksheet::query(toSyntaxAnalyzer::statement const& statement, execTypeEnum execType) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2013-08-12 23:13:00
|
Revision: 4740 http://sourceforge.net/p/tora/code/4740 Author: ibre5041 Date: 2013-08-12 23:12:56 +0000 (Mon, 12 Aug 2013) Log Message: ----------- Oracle lexer Modified Paths: -------------- branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g branches/tora3/src/CMakeLists.txt branches/tora3/src/editor/tocustomlexer.cpp branches/tora3/src/parsing/PLSQLGuiLexer.cc branches/tora3/src/parsing/PLSQLGuiLexer.hpp branches/tora3/src/parsing/UserGuiTraits.hpp branches/tora3/src/parsing/tolexeroracle.cpp branches/tora3/src/parsing/tosyntaxanalyzeroracle.cpp branches/tora3/src/parsing/tsqllexer.h branches/tora3/src/parsing/tsqllexermysql.cc branches/tora3/src/parsing/tsqllexeroracle2.cc Modified: branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g =================================================================== --- branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-08-12 15:46:21 UTC (rev 4739) +++ branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-08-12 23:12:56 UTC (rev 4740) @@ -81,9 +81,11 @@ } } -SQL_COMMAND_INTRODUCER: +SELECT_COMMAND_INTRODUCER: 'SELECT' | - 'WITH' | + 'WITH'; + +DML_COMMAND_INTRODUCER: 'INSERT' | 'UPDATE' | 'MERGE' | @@ -224,7 +226,7 @@ | 'SHOW' | 'SHUTDOWN' | 'SPOOL' - | 'START' ('UP')? + | 'STARTUP' //| 'START' ('UP')? | 'STORE' | 'TIMING' | 'TTITLE' @@ -642,7 +644,7 @@ 'SQLDATA' | /* SQLDATA_KEY: */ 'SQLERROR' | /* SQLERROR_KEY: */ 'STANDALONE' | /* STANDALONE_KEY: */ - //'START' | /* PLSQL_RESERVED_START:*/ + 'START' | /* PLSQL_RESERVED_START:*/ //'STARTUP' | /* STARTUP_KEY: */ 'STATEMENT' | /* STATEMENT_KEY: */ 'STATEMENT_ID' | /* STATEMENT_ID_KEY: */ Modified: branches/tora3/src/CMakeLists.txt =================================================================== --- branches/tora3/src/CMakeLists.txt 2013-08-12 15:46:21 UTC (rev 4739) +++ branches/tora3/src/CMakeLists.txt 2013-08-12 23:12:56 UTC (rev 4740) @@ -844,6 +844,7 @@ editor/tohighlightedtext.cpp editor/tomarkedtext.cpp editor/tocomplpopup.cpp + parsing/tolexeroracle.cpp parsing/tosyntaxanalyzer.cpp parsing/tosyntaxanalyzernl.cpp parsing/tosyntaxanalyzermysql.cpp @@ -854,6 +855,7 @@ core/moc_tomainwindow.cxx core/moc_toglobalevent.cxx core/moc_topushbutton.cxx + parsing/moc_tolexeroracle.cxx parsing/moc_tsqllexer.cxx parsing/moc_tosyntaxanalyzer.cxx ts_log/moc_toostream.cxx Modified: branches/tora3/src/editor/tocustomlexer.cpp =================================================================== --- branches/tora3/src/editor/tocustomlexer.cpp 2013-08-12 15:46:21 UTC (rev 4739) +++ branches/tora3/src/editor/tocustomlexer.cpp 2013-08-12 23:12:56 UTC (rev 4740) @@ -251,6 +251,7 @@ case SQLLexer::Token::X_COMMENT_ML: setStyling(len2, CommentMultiline); break; + case SQLLexer::Token::L_SELECT_INTRODUCER: case SQLLexer::Token::L_DML_INTRODUCER: case SQLLexer::Token::L_PL_INTRODUCER: case SQLLexer::Token::L_OTHER_INTRODUCER: Modified: branches/tora3/src/parsing/PLSQLGuiLexer.cc =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/PLSQLGuiLexer.hpp =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/UserGuiTraits.hpp =================================================================== --- branches/tora3/src/parsing/UserGuiTraits.hpp 2013-08-12 15:46:21 UTC (rev 4739) +++ branches/tora3/src/parsing/UserGuiTraits.hpp 2013-08-12 23:12:56 UTC (rev 4740) @@ -1,7 +1,3 @@ -/** \file - * This is the include file for the ANTLR3 sample project "dynamic-scope" - * which shows how to use a C grammar and call it from C code. - */ #ifndef _T_GUI_TRAITS_H #define _T_GUI_TRAITS_H Modified: branches/tora3/src/parsing/tolexeroracle.cpp =================================================================== --- branches/tora3/src/parsing/tolexeroracle.cpp 2013-08-12 15:46:21 UTC (rev 4739) +++ branches/tora3/src/parsing/tolexeroracle.cpp 2013-08-12 23:12:56 UTC (rev 4740) @@ -213,6 +213,7 @@ case SQLLexer::Token::X_COMMENT_ML: setStyling(len2, CommentMultiline); break; + case SQLLexer::Token::L_SELECT_INTRODUCER: case SQLLexer::Token::L_DML_INTRODUCER: case SQLLexer::Token::L_PL_INTRODUCER: case SQLLexer::Token::L_OTHER_INTRODUCER: Modified: branches/tora3/src/parsing/tosyntaxanalyzeroracle.cpp =================================================================== --- branches/tora3/src/parsing/tosyntaxanalyzeroracle.cpp 2013-08-12 15:46:21 UTC (rev 4739) +++ branches/tora3/src/parsing/tosyntaxanalyzeroracle.cpp 2013-08-12 23:12:56 UTC (rev 4740) @@ -44,9 +44,13 @@ #include "parsing/tolexeroracle.h" #include "editor/tohighlightedtext.h" +#include <QtCore/QDebug> + #include <Qsci/qscilexer.h> #include <Qsci/qscilexersql.h> +#include <iostream> + toSyntaxAnalyzerOracle::toSyntaxAnalyzerOracle(toHighlightedText* parent) : toSyntaxAnalyzer(parent) { @@ -109,6 +113,9 @@ { case SQLLexer::Token::L_LPAREN: case SQLLexer::Token::L_DML_INTRODUCER: // INSERT/UPDATE/DELETE/MERGE + retval.statementType = DML; + break; + case SQLLexer::Token::L_SELECT_INTRODUCER: retval.statementType = SELECT; break; case SQLLexer::Token::L_PL_INTRODUCER: Modified: branches/tora3/src/parsing/tsqllexer.h =================================================================== --- branches/tora3/src/parsing/tsqllexer.h 2013-08-12 15:46:21 UTC (rev 4739) +++ branches/tora3/src/parsing/tsqllexer.h 2013-08-12 23:12:56 UTC (rev 4740) @@ -70,7 +70,8 @@ , L_STRING // single/double quoted string , L_LPAREN // '(' , L_RPAREN // ')' - , L_DML_INTRODUCER // SELECT, INSERT, UPDATE + , L_SELECT_INTRODUCER // SELECT, WITH + , L_DML_INTRODUCER // INSERT, UPDATE , L_PL_INTRODUCER // DECLARE, BEGIN, CREATE, PACKAGE, PROCEDURE , L_OTHER_INTRODUCER // ALTER, EXPLAIN, ... }; Modified: branches/tora3/src/parsing/tsqllexermysql.cc =================================================================== --- branches/tora3/src/parsing/tsqllexermysql.cc 2013-08-12 15:46:21 UTC (rev 4739) +++ branches/tora3/src/parsing/tsqllexermysql.cc 2013-08-12 23:12:56 UTC (rev 4740) @@ -255,6 +255,7 @@ Lexer::token_const_iterator mySQLGuiLexer::findStartToken( Lexer::token_const_iterator const &start) { QSet<SQLLexer::Token::TokenType> INTRODUCERS = QSet<SQLLexer::Token::TokenType>() + << SQLLexer::Token::L_SELECT_INTRODUCER << SQLLexer::Token::L_DML_INTRODUCER << SQLLexer::Token::L_PL_INTRODUCER << SQLLexer::Token::L_OTHER_INTRODUCER @@ -271,6 +272,7 @@ token_const_iterator i( start); switch( i->getTokenType()) { + case Token::L_SELECT_INTRODUCER: case Token::L_DML_INTRODUCER: case Token::L_PL_INTRODUCER: case Token::L_OTHER_INTRODUCER: Modified: branches/tora3/src/parsing/tsqllexeroracle2.cc =================================================================== --- branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-08-12 15:46:21 UTC (rev 4739) +++ branches/tora3/src/parsing/tsqllexeroracle2.cc 2013-08-12 23:12:56 UTC (rev 4740) @@ -208,7 +208,10 @@ case PLSQLGuiLexer::R_END: type = Token::L_RESERVED; break; - case PLSQLGuiLexer::SQL_COMMAND_INTRODUCER: + case PLSQLGuiLexer::SELECT_COMMAND_INTRODUCER: + type = Token::L_SELECT_INTRODUCER; + break; + case PLSQLGuiLexer::DML_COMMAND_INTRODUCER: type = Token::L_DML_INTRODUCER; break; case PLSQLGuiLexer::PLSQL_COMMAND_INTRODUCER: @@ -309,6 +312,7 @@ { // These Token types can start new statement static const QSet<SQLLexer::Token::TokenType> INTRODUCERS = QSet<SQLLexer::Token::TokenType>() + << SQLLexer::Token::L_SELECT_INTRODUCER << SQLLexer::Token::L_DML_INTRODUCER << SQLLexer::Token::L_PL_INTRODUCER << SQLLexer::Token::L_OTHER_INTRODUCER @@ -339,9 +343,11 @@ case SQLLexer::Token::X_EOL: case SQLLexer::Token::L_LPAREN: // SQL QUERY can start with multiple LPARENs '((( SELECT ...' continue; // nothing interesting was found, try the next Token + case SQLLexer::Token::L_SELECT_INTRODUCER: + if(j->getText().compare("SELECT", Qt::CaseInsensitive) == 0 ) + return i; // SELECT was found => return position of LPAREN + return j; // otherwise return position of the SELECT/WITH Token case SQLLexer::Token::L_DML_INTRODUCER: - if(j->getText().compare("SELECT", Qt::CaseInsensitive) == 0 ) - return i; // SELECT was found return position of LPAREN return j; // otherwise return position of the DML Token default: exitLoop = true; // SELECT was not found => exit the loop; @@ -388,7 +394,8 @@ case Token::X_FAILURE: // Char not understood be the Lexer exitLoop = true; continue; - case Token::L_DML_INTRODUCER: // SELECT, INSERT, UPDATE, DELETE + case Token::L_SELECT_INTRODUCER: // SELECT, WITH + case Token::L_DML_INTRODUCER: // INSERT, UPDATE, DELETE, ... // TODO TRIGGER abc BEFORE INSERT/UPDATE/DELETE is handled wrongly // // DML keyword can be only present within BEGIN or LOOP context @@ -541,6 +548,7 @@ * - SELECT statement can start with LPAREN ('(') i.e " (SELECT * FROM DUAL ) UNION ALL (SELECT * FROM DUAL) " * - statement can end with: SOLIDUS('/'), SEMICOLON(';') or other introducer(SELECT, UPDATE, ...) */ + case Token::L_SELECT_INTRODUCER: case Token::L_DML_INTRODUCER: case Token::L_LPAREN: { @@ -558,7 +566,8 @@ case PLSQLGuiLexer::RIGHT_PAREN: parenFound = true; break; - case PLSQLGuiLexer::SQL_COMMAND_INTRODUCER: + case PLSQLGuiLexer::SELECT_COMMAND_INTRODUCER: + case PLSQLGuiLexer::DML_COMMAND_INTRODUCER: if( forFound && i->getText().compare("UPDATE", Qt::CaseInsensitive) == 0) // FOR UPDATE continue parsing break; else if( !parenFound && !mergeFound) // No PARENS no MERGE but 'SELECT' was found This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2013-08-13 21:35:09
|
Revision: 4742 http://sourceforge.net/p/tora/code/4742 Author: ibre5041 Date: 2013-08-13 21:35:07 +0000 (Tue, 13 Aug 2013) Log Message: ----------- SQL statement SAVEPOINT Modified Paths: -------------- branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g branches/tora3/src/parsing/PLSQLGuiLexer.cc branches/tora3/src/parsing/PLSQLGuiLexer.hpp Modified: branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g =================================================================== --- branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-08-13 08:53:22 UTC (rev 4741) +++ branches/tora3/extlibs/parsing.cpp/PLSQLGuiLexer.g 2013-08-13 21:35:07 UTC (rev 4742) @@ -90,7 +90,8 @@ 'UPDATE' | 'MERGE' | 'COMMIT' | // COMMIT COMMENT 'Transfer From 7715 to 7720' WRITE IMMEDIATE NOWAIT; - 'ROLLBACK' | // ROLLBACK TO my_savepoint; + 'ROLLBACK' | // ROLLBACK TO my_savepoint; + 'SAVEPOINT' | 'DELETE'; PLSQL_COMMAND_INTRODUCER: @@ -123,7 +124,6 @@ 'NOAUDIT' | 'RENAME' | 'REVOKE' | - 'SAVEPOINT' | //'SET' | // either "SET ROLE/CONSTRAINT/TRANSACTION ..." or "SET LINE ..." or "UPDATE A SET A.C1=.." 'TRUNCATE'; Modified: branches/tora3/src/parsing/PLSQLGuiLexer.cc =================================================================== (Binary files differ) Modified: branches/tora3/src/parsing/PLSQLGuiLexer.hpp =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |