From: <ibr...@us...> - 2012-03-11 20:28:00
|
Revision: 4240 http://tora.svn.sourceforge.net/tora/?rev=4240&view=rev Author: ibre5041 Date: 2012-03-11 20:27:53 +0000 (Sun, 11 Mar 2012) Log Message: ----------- memory access fixes Modified Paths: -------------- branches/tora-trotl/sandbox.cpp/UserTraits.hpp branches/tora-trotl/sandbox.cpp/t1.cpp Modified: branches/tora-trotl/sandbox.cpp/UserTraits.hpp =================================================================== --- branches/tora-trotl/sandbox.cpp/UserTraits.hpp 2012-03-10 08:34:38 UTC (rev 4239) +++ branches/tora-trotl/sandbox.cpp/UserTraits.hpp 2012-03-11 20:27:53 UTC (rev 4240) @@ -65,7 +65,7 @@ // // || ((lt1.equals("full") || lt1.equals("left") || lt1.equals("right")) && (lt2.equals("outer") || lt2.equals("join")))) { // // return false; // // } - return false; + return true; } template<class StringType> Modified: branches/tora-trotl/sandbox.cpp/t1.cpp =================================================================== --- branches/tora-trotl/sandbox.cpp/t1.cpp 2012-03-10 08:34:38 UTC (rev 4239) +++ branches/tora-trotl/sandbox.cpp/t1.cpp 2012-03-11 20:27:53 UTC (rev 4240) @@ -137,13 +137,13 @@ // This is a local file, if it is a .java file, then // let's parse it. // - if ( (buf[buflen-4] == 'j' || buf[buflen-4] == 'J') - && (buf[buflen-3] == 'a' || buf[buflen-3] == 'A') - && (buf[buflen-2] == 'v' || buf[buflen-2] == 'V') - && (buf[buflen-1] == 'a' || buf[buflen-1] == 'A') - ) + // if ( (buf[buflen-4] == 'j' || buf[buflen-4] == 'J') + // && (buf[buflen-3] == 'a' || buf[buflen-3] == 'A') + // && (buf[buflen-2] == 'v' || buf[buflen-2] == 'V') + // && (buf[buflen-1] == 'a' || buf[buflen-1] == 'A') + // ) { - // // printf(" - %s\n", dirfil->d_name); + printf(" - %s\n", dirfil->d_name); //printf(" S"); fflush(stdout); parseFile((ANTLR_UINT8*) buf); // putc('E', stdout); fflush(stdout); @@ -282,9 +282,9 @@ putc('*', stdout); fflush(stdout); - delete psr; - delete tstream; - delete lxr; - delete input; + delete psr; psr = NULL; + delete tstream; tstream = NULL; + delete lxr; lxr = NULL; + delete input; input = NULL; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2012-03-13 22:35:31
|
Revision: 4241 http://tora.svn.sourceforge.net/tora/?rev=4241&view=rev Author: ibre5041 Date: 2012-03-13 22:35:24 +0000 (Tue, 13 Mar 2012) Log Message: ----------- Modified Paths: -------------- branches/tora-trotl/sandbox.cpp/PLSQLLexer.g branches/tora-trotl/sandbox.cpp/UserTraits.hpp branches/tora-trotl/sandbox.cpp/t1.cpp Modified: branches/tora-trotl/sandbox.cpp/PLSQLLexer.g =================================================================== --- branches/tora-trotl/sandbox.cpp/PLSQLLexer.g 2012-03-11 20:27:53 UTC (rev 4240) +++ branches/tora-trotl/sandbox.cpp/PLSQLLexer.g 2012-03-13 22:35:24 UTC (rev 4241) @@ -212,6 +212,9 @@ /* C Syntax */ // ( { LA(1) != $delimiter->getText()->chars[0] || LA(2) != '\'' }? => . )* // ( { LA(1) == $delimiter->getText()->chars[0] && LA(2) == '\'' }? => . ) QUOTE +/* C++ Syntax */ + ( { LA(1) != $delimiter->getText().at(0) || LA(2) != '\'' }? => . )* + ( { LA(1) == $delimiter->getText().at(0) && LA(2) == '\'' }? => . ) QUOTE // { INPUT->istream->_LA = oldLA; } ; Modified: branches/tora-trotl/sandbox.cpp/UserTraits.hpp =================================================================== --- branches/tora-trotl/sandbox.cpp/UserTraits.hpp 2012-03-11 20:27:53 UTC (rev 4240) +++ branches/tora-trotl/sandbox.cpp/UserTraits.hpp 2012-03-13 22:35:24 UTC (rev 4241) @@ -130,8 +130,8 @@ template<class StringType> inline bool equalsIgnoreCase(StringType const& s1, const char* s2) { - //return !strcasecmp(s1->getText()->chars, s2); - return false; + return !strcasecmp(s1.c_str(), s2); + //return false; } #endif Modified: branches/tora-trotl/sandbox.cpp/t1.cpp =================================================================== --- branches/tora-trotl/sandbox.cpp/t1.cpp 2012-03-11 20:27:53 UTC (rev 4240) +++ branches/tora-trotl/sandbox.cpp/t1.cpp 2012-03-13 22:35:24 UTC (rev 4241) @@ -277,14 +277,14 @@ tstream->_LT(1); // Don't do this mormally, just causes lexer to run for timings here //putc('P', stdout); fflush(stdout); - psr->compilation_unit(); + psr->select_statement(); //putc('F', stdout); fflush(stdout); putc('*', stdout); fflush(stdout); - delete psr; psr = NULL; - delete tstream; tstream = NULL; + delete psr; + delete tstream; delete lxr; lxr = NULL; - delete input; input = NULL; + delete input; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2012-03-15 22:31:39
|
Revision: 4242 http://tora.svn.sourceforge.net/tora/?rev=4242&view=rev Author: ibre5041 Date: 2012-03-15 22:31:33 +0000 (Thu, 15 Mar 2012) Log Message: ----------- Modified Paths: -------------- branches/tora-trotl/sandbox.cpp/Makefile branches/tora-trotl/sandbox.cpp/PLSQLLexer.g branches/tora-trotl/sandbox.cpp/PLSQL_DMLParser.g branches/tora-trotl/sandbox.cpp/UserTraits.hpp branches/tora-trotl/sandbox.cpp/t1.cpp Modified: branches/tora-trotl/sandbox.cpp/Makefile =================================================================== --- branches/tora-trotl/sandbox.cpp/Makefile 2012-03-13 22:35:24 UTC (rev 4241) +++ branches/tora-trotl/sandbox.cpp/Makefile 2012-03-15 22:31:33 UTC (rev 4242) @@ -5,10 +5,7 @@ SOURCES = $(wildcard *.cpp) GRAMMAROPTIONS=-report -Xconversiontimeout 1500000 -Xmultithreaded -Xwatchconversion -INCLUDES= -I. \ - -I/home/ivan/devel/antlr-cpp/include/ \ - -I/usr/include/qt4 \ - -I/usr/include/qt4/QtCore +INCLUDES= -I. -I/home/ivan/devel/antlr-cpp/include/ LIBS = Modified: branches/tora-trotl/sandbox.cpp/PLSQLLexer.g =================================================================== --- branches/tora-trotl/sandbox.cpp/PLSQLLexer.g 2012-03-13 22:35:24 UTC (rev 4241) +++ branches/tora-trotl/sandbox.cpp/PLSQLLexer.g 2012-03-15 22:31:33 UTC (rev 4242) @@ -20,8 +20,17 @@ options { language=Cpp; +// filter=true; } +tokens { // moved to the import vocabulary + UNSIGNED_INTEGER; // Imaginary token based on subtoken typecasting - see the rule <EXACT_NUM_LIT> + APPROXIMATE_NUM_LIT; // Imaginary token based on subtoken typecasting - see the rule <EXACT_NUM_LIT> + MINUS_SIGN; // Imaginary token based on subtoken typecasting - see the rule <SEPARATOR> + DOUBLE_PERIOD; + UNDERSCORE; // Imaginary token based on subtoken typecasting - see the rule <INTRODUCER> +} + @lexer::includes { #include "UserTraits.hpp" @@ -31,35 +40,27 @@ User } -// tokens { // moved to the import vocabulary -// UNSIGNED_INTEGER; // Imaginary token based on subtoken typecasting - see the rule <EXACT_NUM_LIT> -// APPROXIMATE_NUM_LIT; // Imaginary token based on subtoken typecasting - see the rule <EXACT_NUM_LIT> -// MINUS_SIGN; // Imaginary token based on subtoken typecasting - see the rule <SEPARATOR> -// DOUBLE_PERIOD; -// UNDERSCORE; // Imaginary token based on subtoken typecasting - see the rule <INTRODUCER> -// } +@header { +/* + * Oracle(c) PL/SQL 11g Parser + * + * Copyright (c) 2009-2011 Alexandre Porcelli <ale...@gm...> + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +} -// @header { -// /** -// * Oracle(c) PL/SQL 11g Parser -// * -// * Copyright (c) 2009-2011 Alexandre Porcelli <ale...@gm...> -// * -// * Licensed under the Apache License, Version 2.0 (the "License"); -// * you may not use this file except in compliance with the License. -// * You may obtain a copy of the License at -// * -// * http://www.apache.org/licenses/LICENSE-2.0 -// * -// * Unless required by applicable law or agreed to in writing, software -// * distributed under the License is distributed on an "AS IS" BASIS, -// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// * See the License for the specific language governing permissions and -// * limitations under the License. -// */ -// } - -// @members { +@members { // // buffer (queue) to hold the emit()'d tokens // // private LinkedList<Token> tokenBuffer = new LinkedList<Token>(); @@ -74,53 +75,53 @@ // // } -// /** -// * Return a token from this source; i.e., match a token on the char stream. -// */ -// // public Token nextToken() { -// // while (true) { -// // if (tokenBuffer.size() == 0) { -// // state.token = null; -// // state.channel = Token.DEFAULT_CHANNEL; -// // state.tokenStartCharIndex = input.index(); -// // state.tokenStartCharPositionInLine = input.getCharPositionInLine(); -// // state.tokenStartLine = input.getLine(); -// // state.text = null; -// // if (input.LA(1) == CharStream.EOF) { -// // return Token.EOF_TOKEN; -// // } -// // try { -// // int m = input.mark(); -// // state.backtracking = 1; -// // state.failed = false; -// // mTokens(); -// // state.backtracking = 0; + /** + * Return a token from this source; i.e., match a token on the char stream. + */ + // public Token nextToken() { + // while (true) { + // if (tokenBuffer.size() == 0) { + // state.token = null; + // state.channel = Token.DEFAULT_CHANNEL; + // state.tokenStartCharIndex = input.index(); + // state.tokenStartCharPositionInLine = input.getCharPositionInLine(); + // state.tokenStartLine = input.getLine(); + // state.text = null; + // if (input.LA(1) == CharStream.EOF) { + // return Token.EOF_TOKEN; + // } + // try { + // int m = input.mark(); + // state.backtracking = 1; + // state.failed = false; + // mTokens(); + // state.backtracking = 0; -// // if (state.failed) { -// // input.rewind(m); -// // input.consume(); -// // } else { -// // emit(); -// // } -// // } catch (RecognitionException re) { -// // // shouldn't happen in backtracking mode, but... -// // reportError(re); -// // recover(re); -// // } -// // } else { -// // Token result = tokenBuffer.poll(); -// // if (result == Token.SKIP_TOKEN || result.getType() == Token.INVALID_TOKEN_TYPE || result == null) -// // { -// // // discard -// // // SKIP & INVALID -// // // tokens -// // continue; -// // } -// // return result; -// // } -// // } -// // } -// } + // if (state.failed) { + // input.rewind(m); + // input.consume(); + // } else { + // emit(); + // } + // } catch (RecognitionException re) { + // // shouldn't happen in backtracking mode, but... + // reportError(re); + // recover(re); + // } + // } else { + // Token result = tokenBuffer.poll(); + // if (result == Token.SKIP_TOKEN || result.getType() == Token.INVALID_TOKEN_TYPE || result == null) + // { + // // discard + // // SKIP & INVALID + // // tokens + // continue; + // } + // return result; + // } + // } + // } +} FOR_NOTATION : UNSIGNED_INTEGER @@ -841,7 +842,7 @@ PLSQL_NON_RESERVED_MODEL : 'MODEL' - //{ + { // "MODEL" is a keyword if and only if it is followed by ("main"|"partition"|"dimension") // otherwise it is a identifier(REGULAR_ID). // This wodoo implements something like context sensitive lexer. @@ -895,7 +896,7 @@ // } // else if( t1 != null && t1.getType() == Token.EOF) // } // input.rewind(markModel); - //} + } ; PLSQL_NON_RESERVED_ELSIF Modified: branches/tora-trotl/sandbox.cpp/PLSQL_DMLParser.g =================================================================== --- branches/tora-trotl/sandbox.cpp/PLSQL_DMLParser.g 2012-03-13 22:35:24 UTC (rev 4241) +++ branches/tora-trotl/sandbox.cpp/PLSQL_DMLParser.g 2012-03-15 22:31:33 UTC (rev 4242) @@ -24,102 +24,13 @@ import PLSQLKeys, PLSQLCommons; -// @lexer::includes -// { -// #include "UserTraits.hpp" -// } @parser::includes { #include "UserTraits.hpp" #include "PLSQLLexer.hpp" } -//@lexer::namespace { User } @parser::namespace { User } -@members{ -// bool isTableAlias() { -// // String lt1 = input.LT(1).getText().toLowerCase(); -// // String lt2 = ""; -// // if (input.LT(2).getText() != null){ -// // lt2 = input.LT(2).getText().toLowerCase(); -// // } -// -// // if ((lt1.equals("partition") && lt2.equals("by")) || lt1.equals("cross") -// // || lt1.equals("natural") || lt1.equals("inner") -// // || lt1.equals("join") -// // || ((lt1.equals("full") || lt1.equals("left") || lt1.equals("right")) && (lt2.equals("outer") || lt2.equals("join")))) { -// // return false; -// // } -// return true; -// } -// -// template<class StringType> -// bool isStandardPredictionFunction(StringType const& originalFunctionName) { -// // String functionName = originalFunctionName.toLowerCase(); -// // if (functionName.equals("prediction") -// // || functionName.equals("prediction_bounds") -// // || functionName.equals("prediction_cost") -// // || functionName.equals("prediction_details") -// // || functionName.equals("prediction_probability") -// // || functionName.equals("prediction_set")) { -// // return true; -// // } -// return false; -// } -// -// template<class StringType> -// bool enablesWithinOrOverClause(StringType const& originalFunctionName) { -// // String functionName = originalFunctionName.toLowerCase(); -// // if (functionName.equals("cume_dist") -// // || functionName.equals("dense_rank") -// // || functionName.equals("listagg") -// // || functionName.equals("percent_rank") -// // || functionName.equals("percentile_cont") -// // || functionName.equals("percentile_disc") -// // || functionName.equals("rank")) { -// // return true; -// // } -// return false; -// } -// -// template<class StringType> -// bool enablesUsingClause(StringType const& originalFunctionName) { -// // String functionName = originalFunctionName.toLowerCase(); -// // if (functionName.startsWith("cluster_") -// // || functionName.startsWith("feature_")) { -// // return true; -// // } -// return false; -// } -// -// template<class StringType> -// bool enablesOverClause(StringType const& originalFunctionName) { -// // String functionName = originalFunctionName.toLowerCase(); -// // if (functionName.equals("avg") || functionName.equals("corr") -// // || functionName.equals("lag") || functionName.equals("lead") -// // || functionName.equals("max") || functionName.equals("median") -// // || functionName.equals("min") || functionName.equals("ntile") -// // || functionName.equals("ratio_to_report") -// // || functionName.equals("row_number") -// // || functionName.equals("sum") -// // || functionName.equals("variance") -// // || functionName.startsWith("regr_") -// // || functionName.startsWith("stddev") -// // || functionName.startsWith("var_") -// // || functionName.startsWith("covar_")) { -// // return true; -// // } -// return false; -// } -// -// template<class StringType> -// int equalsIgnoreCase(StringType const& s1, const char* s2) -// { -// //return !strcasecmp(s1->getText()->chars, s2); -// return true; -// } -} - //SHOULD BE OVERRIDEN! compilation_unit : seq_of_statements* EOF @@ -238,7 +149,7 @@ | dml_table_expression_clause (pivot_clause|unpivot_clause)? ) flashback_query_clause* - ({isTableAlias()}? table_alias)? + ({isTableAlias(LT(1), LT(2))}? table_alias)? ; join_clause Modified: branches/tora-trotl/sandbox.cpp/UserTraits.hpp =================================================================== --- branches/tora-trotl/sandbox.cpp/UserTraits.hpp 2012-03-13 22:35:24 UTC (rev 4241) +++ branches/tora-trotl/sandbox.cpp/UserTraits.hpp 2012-03-15 22:31:33 UTC (rev 4242) @@ -10,7 +10,8 @@ // The compiler must use -I (or set the project settings in VS2005) // to locate the antlr3 runtime files and -I. to find this file // -#include <antlr3.hpp> +#include <antlr3.hpp> +#include <algorithm> namespace User { @@ -48,90 +49,113 @@ typedef PLSQLTraits PLSQLLexerTraits; typedef PLSQLTraits PLSQL_DMLParser_PLSQLCommonsTraits; typedef PLSQLTraits PLSQL_DMLParser_PLSQLKeysTraits; - //typedef PLSQLTraits PLSQL_DMLParserParserTraits; typedef PLSQLTraits PLSQL_DMLParserTraits; -} + + template<class CommonTokenType> + inline bool isTableAlias(CommonTokenType *LT1, CommonTokenType *LT2) { + PLSQLTraits::StringType lt1 = LT1->getText(); + PLSQLTraits::StringType lt2 = ""; + std::transform(lt1.begin(), lt1.end(), lt1.begin(), ::toupper); + + if ( LT2 && LT2->getText() != ""){ + lt2 = LT2->getText(); + std::transform(lt2.begin(), lt2.end(), lt2.begin(), ::toupper); + } + + if ( (lt1 == "PARTITION" && lt2 == "BY") + || lt1 == "CROSS" + || lt1 == "NATURAL" + || lt1 == "INNER" + || lt1 == "JOIN" + || ( (lt1 == "FULL" || lt1 == "LEFT" || lt1 == "RIGHT") && (lt2 == "OUTER" || lt2 == "JOIN" ) ) + ) + { + return false; + } + return true; + } - inline bool isTableAlias() { -// // String lt1 = input.LT(1).getText().toLowerCase(); -// // String lt2 = ""; -// // if (input.LT(2).getText() != null){ -// // lt2 = input.LT(2).getText().toLowerCase(); -// // } + template<class StringType> + inline bool isStandardPredictionFunction(StringType const& originalFunctionName) { + StringType functionName = originalFunctionName; + std::transform(functionName.begin(), functionName.end(), functionName.begin(), ::toupper); + + if ( functionName == "PREDICTION" + || functionName == "PREDICTION_BOUNDS" + || functionName == "PREDICTION_COST" + || functionName == "PREDICTION_DETAILS" + || functionName == "PREDICTION_PROBABILITY" + || functionName == "PREDICTION_SET") + { + return true; + } + return false; + } -// // if ((lt1.equals("partition") && lt2.equals("by")) || lt1.equals("cross") -// // || lt1.equals("natural") || lt1.equals("inner") -// // || lt1.equals("join") -// // || ((lt1.equals("full") || lt1.equals("left") || lt1.equals("right")) && (lt2.equals("outer") || lt2.equals("join")))) { -// // return false; -// // } - return true; - } + template<class StringType> + inline bool enablesWithinOrOverClause(StringType const& originalFunctionName) { + StringType functionName = originalFunctionName; + std::transform(functionName.begin(), functionName.end(), functionName.begin(), ::toupper); + + if ( functionName == "CUME_DIST" + || functionName == "DENSE_RANK" + || functionName == "LISTAGG" + || functionName == "PERCENT_RANK" + || functionName == "PERCENTILE_CONT" + || functionName == "PERCENTILE_DISC" + || functionName == "RANK") + { + return true; + } + return false; + } - template<class StringType> - inline bool isStandardPredictionFunction(StringType const& originalFunctionName) { -// // String functionName = originalFunctionName.toLowerCase(); -// // if (functionName.equals("prediction") -// // || functionName.equals("prediction_bounds") -// // || functionName.equals("prediction_cost") -// // || functionName.equals("prediction_details") -// // || functionName.equals("prediction_probability") -// // || functionName.equals("prediction_set")) { -// // return true; -// // } - return false; - } + template<class StringType> + inline bool enablesUsingClause(StringType const& originalFunctionName) { + StringType functionName = originalFunctionName; + std::transform(functionName.begin(), functionName.end(), functionName.begin(), ::toupper); + // if (functionName.startsWith("cluster_") || functionName.startsWith("feature_")) + // { + // return true; + // } + return false; + } - template<class StringType> - inline bool enablesWithinOrOverClause(StringType const& originalFunctionName) { -// // String functionName = originalFunctionName.toLowerCase(); -// // if (functionName.equals("cume_dist") -// // || functionName.equals("dense_rank") -// // || functionName.equals("listagg") -// // || functionName.equals("percent_rank") -// // || functionName.equals("percentile_cont") -// // || functionName.equals("percentile_disc") -// // || functionName.equals("rank")) { -// // return true; -// // } - return false; - } + template<class StringType> + inline bool enablesOverClause(StringType const& originalFunctionName) { + StringType functionName = originalFunctionName; + std::transform(functionName.begin(), functionName.end(), functionName.begin(), ::toupper); + if ( functionName == "AVG" + || functionName == "CORR" + || functionName == "LAG" + || functionName == "LEAD" + || functionName == "MAX" + || functionName == "MEDIAN" + || functionName == "MIN" + || functionName == "NTILE" + || functionName == "RATIO_TO_REPORT" + || functionName == "ROW_NUMBER" + || functionName == "SUM" + || functionName == "VARIANCE" + // || functionName.startsWith("regr_") + // || functionName.startsWith("stddev") + // || functionName.startsWith("var_") + // || functionName.startsWith("covar_") + ) + { + return true; + } + return false; + } - template<class StringType> - inline bool enablesUsingClause(StringType const& originalFunctionName) { -// // String functionName = originalFunctionName.toLowerCase(); -// // if (functionName.startsWith("cluster_") -// // || functionName.startsWith("feature_")) { -// // return true; - // } - return false; - } + template<class StringType> + inline bool equalsIgnoreCase(StringType const& s1, const char* s2) + { + //return !strcasecmp(s1.c_str(), s2); + StringType s1U = s1; + std::transform(s1U.begin(), s1U.end(), s1U.begin(), ::toupper); + return s1U == s2; + } +} - template<class StringType> - inline bool enablesOverClause(StringType const& originalFunctionName) { -// // String functionName = originalFunctionName.toLowerCase(); -// // if (functionName.equals("avg") || functionName.equals("corr") -// // || functionName.equals("lag") || functionName.equals("lead") -// // || functionName.equals("max") || functionName.equals("median") -// // || functionName.equals("min") || functionName.equals("ntile") -// // || functionName.equals("ratio_to_report") -// // || functionName.equals("row_number") -// // || functionName.equals("sum") -// // || functionName.equals("variance") -// // || functionName.startsWith("regr_") -// // || functionName.startsWith("stddev") -// // || functionName.startsWith("var_") -// // || functionName.startsWith("covar_")) { -// // return true; -// // } - return false; - } - - template<class StringType> - inline bool equalsIgnoreCase(StringType const& s1, const char* s2) - { - return !strcasecmp(s1.c_str(), s2); - //return false; - } - #endif Modified: branches/tora-trotl/sandbox.cpp/t1.cpp =================================================================== --- branches/tora-trotl/sandbox.cpp/t1.cpp 2012-03-13 22:35:24 UTC (rev 4241) +++ branches/tora-trotl/sandbox.cpp/t1.cpp 2012-03-15 22:31:33 UTC (rev 4242) @@ -143,10 +143,10 @@ // && (buf[buflen-1] == 'a' || buf[buflen-1] == 'A') // ) { - printf(" - %s\n", dirfil->d_name); - //printf(" S"); fflush(stdout); - parseFile((ANTLR_UINT8*) buf); - // putc('E', stdout); fflush(stdout); + printf(" - %s\n", dirfil->d_name); + //printf(" S"); fflush(stdout); + parseFile((ANTLR_UINT8*) buf); + // putc('E', stdout); fflush(stdout); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2012-03-16 15:27:15
|
Revision: 4245 http://tora.svn.sourceforge.net/tora/?rev=4245&view=rev Author: ibre5041 Date: 2012-03-16 15:27:00 +0000 (Fri, 16 Mar 2012) Log Message: ----------- Modified Paths: -------------- branches/tora-trotl/sandbox.cpp/PLSQLLexer.g branches/tora-trotl/sandbox.cpp/t1.cpp Added Paths: ----------- branches/tora-trotl/sandbox.cpp/PLSQLLexer.cpp branches/tora-trotl/sandbox.cpp/PLSQLLexer.hpp Added: branches/tora-trotl/sandbox.cpp/PLSQLLexer.cpp =================================================================== --- branches/tora-trotl/sandbox.cpp/PLSQLLexer.cpp (rev 0) +++ branches/tora-trotl/sandbox.cpp/PLSQLLexer.cpp 2012-03-16 15:27:00 UTC (rev 4245) @@ -0,0 +1,13369 @@ +/** \file + * This C++ source file was generated by $ANTLR version 3.4 + * + * - From the grammar source file : PLSQLLexer.g + * - On : 2012-03-16 12:17:17 + * - for the lexer : PLSQLLexerLexer + * + * Editing it, at least manually, is not wise. + * + * C++ language generator and runtime by Gokulakannan Somasundaram ( heavy lifting from C Run-time by Jim Idle ) + * + * +*/ +// [The "BSD license"] +// Copyright (c) 2005-2009 Gokulakannan Somasundaram, ElectronDB +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +/* ============================================================================= + * This is what the grammar programmer asked us to put at the top of every file. + */ + +/* + * Oracle(c) PL/SQL 11g Parser + * + * Copyright (c) 2009-2011 Alexandre Porcelli <ale...@gm...> + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* End of Header action. + * ============================================================================= + */ + +/* ----------------------------------------- + * Include the ANTLR3 generated header file. + */ +#include "PLSQLLexer.hpp" +/* ----------------------------------------- */ + +/** + * Oracle(c) PL/SQL 11g Parser + * + * Copyright (c) 2009-2011 Alexandre Porcelli <ale...@gm...> + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + + namespace +User + { + + +/** String literals used by PLSQLLexer 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 + * we perform this little trick of defining the literals as arrays of UINT32 + * and passing in the address of these. + */ +static ANTLR_UCHAR lit_1[] = { 0x2E, 0x2E, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_2[] = { 0x2A, 0x2A, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_3[] = { 0x3A, 0x3D, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_4[] = { 0x3C, 0x3D, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_5[] = { 0x3E, 0x3D, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_6[] = { 0x21, 0x3D, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_7[] = { 0x3C, 0x3E, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_8[] = { 0x5E, 0x3D, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_9[] = { 0x7E, 0x3D, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_10[] = { 0x7C, 0x7C, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_11[] = { 0x2D, 0x2D, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_12[] = { 0x2F, 0x2A, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_13[] = { 0x2A, 0x2F, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_14[] = { 0x50, 0x52, 0x4F, 0x4D, 0x50, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_15[] = { 0x41, 0x4C, 0x4C, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_16[] = { 0x41, 0x4C, 0x54, 0x45, 0x52, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_17[] = { 0x41, 0x4E, 0x44, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_18[] = { 0x41, 0x4E, 0x59, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_19[] = { 0x41, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_20[] = { 0x41, 0x53, 0x43, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_21[] = { 0x42, 0x45, 0x47, 0x49, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_22[] = { 0x42, 0x45, 0x54, 0x57, 0x45, 0x45, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_23[] = { 0x42, 0x59, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_24[] = { 0x43, 0x41, 0x53, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_25[] = { 0x43, 0x48, 0x45, 0x43, 0x4B, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_26[] = { 0x43, 0x4C, 0x55, 0x53, 0x54, 0x45, 0x52, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_27[] = { 0x43, 0x4F, 0x4C, 0x41, 0x55, 0x54, 0x48, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_28[] = { 0x43, 0x4F, 0x4D, 0x50, 0x52, 0x45, 0x53, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_29[] = { 0x43, 0x4F, 0x4E, 0x4E, 0x45, 0x43, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_30[] = { 0x43, 0x4F, 0x4E, 0x4E, 0x45, 0x43, 0x54, 0x5F, 0x42, 0x59, 0x5F, 0x52, 0x4F, 0x4F, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_31[] = { 0x43, 0x52, 0x41, 0x53, 0x48, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_32[] = { 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_33[] = { 0x43, 0x55, 0x52, 0x52, 0x45, 0x4E, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_34[] = { 0x43, 0x55, 0x52, 0x53, 0x4F, 0x52, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_35[] = { 0x44, 0x41, 0x54, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_36[] = { 0x44, 0x45, 0x43, 0x4C, 0x41, 0x52, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_37[] = { 0x44, 0x45, 0x46, 0x41, 0x55, 0x4C, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_38[] = { 0x44, 0x45, 0x4C, 0x45, 0x54, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_39[] = { 0x44, 0x45, 0x53, 0x43, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_40[] = { 0x44, 0x49, 0x53, 0x54, 0x49, 0x4E, 0x43, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_41[] = { 0x44, 0x52, 0x4F, 0x50, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_42[] = { 0x45, 0x4C, 0x53, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_43[] = { 0x45, 0x4E, 0x44, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_44[] = { 0x45, 0x58, 0x43, 0x45, 0x50, 0x54, 0x49, 0x4F, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_45[] = { 0x45, 0x58, 0x43, 0x4C, 0x55, 0x53, 0x49, 0x56, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_46[] = { 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_47[] = { 0x46, 0x41, 0x4C, 0x53, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_48[] = { 0x46, 0x45, 0x54, 0x43, 0x48, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_49[] = { 0x46, 0x4F, 0x52, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_50[] = { 0x46, 0x52, 0x4F, 0x4D, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_51[] = { 0x47, 0x4F, 0x54, 0x4F, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_52[] = { 0x47, 0x52, 0x41, 0x4E, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_53[] = { 0x47, 0x52, 0x4F, 0x55, 0x50, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_54[] = { 0x48, 0x41, 0x56, 0x49, 0x4E, 0x47, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_55[] = { 0x49, 0x44, 0x45, 0x4E, 0x54, 0x49, 0x46, 0x49, 0x45, 0x44, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_56[] = { 0x49, 0x46, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_57[] = { 0x49, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_58[] = { 0x49, 0x4E, 0x44, 0x45, 0x58, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_59[] = { 0x49, 0x4E, 0x44, 0x45, 0x58, 0x45, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_60[] = { 0x49, 0x4E, 0x53, 0x45, 0x52, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_61[] = { 0x49, 0x4E, 0x54, 0x45, 0x52, 0x53, 0x45, 0x43, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_62[] = { 0x49, 0x4E, 0x54, 0x4F, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_63[] = { 0x49, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_64[] = { 0x4C, 0x49, 0x4B, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_65[] = { 0x4C, 0x4F, 0x43, 0x4B, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_66[] = { 0x4D, 0x49, 0x4E, 0x55, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_67[] = { 0x4D, 0x4F, 0x44, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_68[] = { 0x4E, 0x4F, 0x43, 0x4F, 0x4D, 0x50, 0x52, 0x45, 0x53, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_69[] = { 0x4E, 0x4F, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_70[] = { 0x4E, 0x4F, 0x57, 0x41, 0x49, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_71[] = { 0x4E, 0x55, 0x4C, 0x4C, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_72[] = { 0x4F, 0x46, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_73[] = { 0x4F, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_74[] = { 0x4F, 0x50, 0x54, 0x49, 0x4F, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_75[] = { 0x4F, 0x52, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_76[] = { 0x4F, 0x52, 0x44, 0x45, 0x52, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_77[] = { 0x4F, 0x56, 0x45, 0x52, 0x4C, 0x41, 0x50, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_78[] = { 0x50, 0x52, 0x49, 0x4F, 0x52, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_79[] = { 0x50, 0x52, 0x4F, 0x43, 0x45, 0x44, 0x55, 0x52, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_80[] = { 0x50, 0x55, 0x42, 0x4C, 0x49, 0x43, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_81[] = { 0x52, 0x45, 0x53, 0x4F, 0x55, 0x52, 0x43, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_82[] = { 0x52, 0x45, 0x56, 0x4F, 0x4B, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_83[] = { 0x53, 0x45, 0x4C, 0x45, 0x43, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_84[] = { 0x53, 0x48, 0x41, 0x52, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_85[] = { 0x53, 0x49, 0x5A, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_86[] = { 0x53, 0x54, 0x41, 0x52, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_87[] = { 0x54, 0x41, 0x42, 0x41, 0x55, 0x54, 0x48, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_88[] = { 0x54, 0x41, 0x42, 0x4C, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_89[] = { 0x54, 0x48, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_90[] = { 0x54, 0x48, 0x45, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_91[] = { 0x54, 0x4F, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_92[] = { 0x54, 0x52, 0x55, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_93[] = { 0x55, 0x4E, 0x49, 0x4F, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_94[] = { 0x55, 0x4E, 0x49, 0x51, 0x55, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_95[] = { 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_96[] = { 0x56, 0x41, 0x4C, 0x55, 0x45, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_97[] = { 0x56, 0x49, 0x45, 0x57, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_98[] = { 0x56, 0x49, 0x45, 0x57, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_99[] = { 0x57, 0x48, 0x45, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_100[] = { 0x57, 0x48, 0x45, 0x52, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_101[] = { 0x57, 0x49, 0x54, 0x48, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_102[] = { 0x55, 0x53, 0x49, 0x4E, 0x47, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_103[] = { 0x4D, 0x4F, 0x44, 0x45, 0x4C, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_104[] = { 0x45, 0x4C, 0x53, 0x49, 0x46, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_105[] = { 0x50, 0x49, 0x56, 0x4F, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_106[] = { 0x55, 0x4E, 0x50, 0x49, 0x56, 0x4F, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; +static ANTLR_UCHAR lit_107[] = { 0x40, 0x21, antlr3::ANTLR_STRING_TERMINATOR}; + + } + + + +/* ============================================================================= */ + +/* ============================================================================= + * Start of recognizer + */ + +using namespace antlr3; + + namespace +User + { + + +/* ========================================================================= + * Lexer matching rules end. + * ========================================================================= + */ + + + +// // buffer (queue) to hold the emit()'d tokens +// // private LinkedList<Token> tokenBuffer = new LinkedList<Token>(); + +// // public void emit(Token t) { +// // tokenBuffer.add(t); +// // } + +// // private void advanceInput(){ +// // state.tokenStartCharIndex = input.index(); +// // state.tokenStartCharPositionInLine = input.getCharPositionInLine(); +// // state.tokenStartLine = input.getLine(); +// // } + + + /** + * Return a token from this source; i.e., match a token on the char stream. + */ + // public Token nextToken() { + // while (true) { + // if (tokenBuffer.size() == 0) { + // state.token = null; + // state.channel = Token.DEFAULT_CHANNEL; + // state.tokenStartCharIndex = input.index(); + // state.tokenStartCharPositionInLine = input.getCharPositionInLine(); + // state.tokenStartLine = input.getLine(); + // state.text = null; + // if (input.LA(1) == CharStream.EOF) { + // return Token.EOF_TOKEN; + // } + // try { + // int m = input.mark(); + // state.backtracking = 1; + // state.failed = false; + // mTokens(); + // state.backtracking = 0; + + // if (state.failed) { + // input.rewind(m); + // input.consume(); + // } else { + // emit(); + // } + // } catch (RecognitionException re) { + // // shouldn't happen in backtracking mode, but... + // reportError(re); + // recover(re); + // } + // } else { + // Token result = tokenBuffer.poll(); + // if (result == Token.SKIP_TOKEN || result.getType() == Token.INVALID_TOKEN_TYPE || result == null) + // { + // // discard + // // SKIP & INVALID + // // tokens + // continue; + // } + // return result; + // } + // } + // } + + +PLSQLLexer::~PLSQLLexer() +{ +} + +void +PLSQLLexer::reset() +{ + this->get_rec()->reset(); +} + +/** \brief Name of the grammar file that generated this code + */ +static const char fileName[] = "PLSQLLexer.g"; + +/** \brief Return the name of the grammar file that generated this code. + */ +const char* PLSQLLexer::getGrammarFileName() +{ + return fileName; +} + +/** \brief Create a new lexer called PLSQLLexer + * + * \param[in] instream Pointer to an initialized input stream + * \return + * - Success pPLSQLLexer initialized for the lex start + * - Fail NULL + */ +PLSQLLexer::PLSQLLexer(StreamType* instream) +:PLSQLLexerImplTraits::BaseLexerType(ANTLR_SIZE_HINT, instream, NULL) +{ + // See if we can create a new lexer with the standard constructor + // + this->init(instream ); +} + +/** \brief Create a new lexer called PLSQLLexer + * + * \param[in] instream Pointer to an initialized input stream + * \param[state] state Previously created shared recognizer stat + * \return + * - Success pPLSQLLexer initialized for the lex start + * - Fail NULL + */ +PLSQLLexer::PLSQLLexer(StreamType* instream, RecognizerSharedStateType* state) +:PLSQLLexerImplTraits::BaseLexerType(ANTLR_SIZE_HINT, instream, state) +{ + this->init(instream ); +} + +void PLSQLLexer::init(StreamType* instream) +{ + /* ------------------------------------------------------------------- + * Memory for basic structure is allocated, now to fill in + * in base ANTLR3 structures. We initialize the function pointers + * for the standard ANTLR3 lexer function set, but upon return + * from here, the programmer may set the pointers to provide custom + * implementations of each function. + * + * We don't use the macros defined in PLSQLLexer.h here so you can get a sense + * of what goes where. + */ + +} + + +/* ========================================================================= + * DFA tables for the lexer + */ +/** Static dfa state tables for Cyclic dfa: + * 1:1: Tokens : ( FOR_NOTATION | NATIONAL_CHAR_STRING_LIT | BIT_STRING_LIT | HEX_STRING_LIT | PERIOD | EXACT_NUM_LIT | CHAR_STRING | CHAR_STRING_PERL | DELIMITED_ID | PERCENT | AMPERSAND | LEFT_PAREN | RIGHT_PAREN | DOUBLE_ASTERISK | ASTERISK | PLUS_SIGN | COMMA | SOLIDUS | AT_SIGN | ASSIGN_OP | BINDVAR | COLON | SEMICOLON | LESS_THAN_OR_EQUALS_OP | LESS_THAN_OP | GREATER_THAN_OR_EQUALS_OP | NOT_EQUAL_OP | CARRET_OPERATOR_PART | TILDE_OPERATOR_PART | EXCLAMATION_OPERATOR_PART | GREATER_THAN_OP | CONCATENATION_OP | VERTICAL_BAR | EQUALS_OP | LEFT_BRACKET | RIGHT_BRACKET | INTRODUCER | SEPARATOR | PROMPT | SQL92_RESERVED_ALL | SQL92_RESERVED_ALTER | SQL92_RESERVED_AND | SQL92_RESERVED_ANY | SQL92_RESERVED_AS | SQL92_RESERVED_ASC | SQL92_RESERVED_BEGIN | SQL92_RESERVED_BETWEEN | SQL92_RESERVED_BY | SQL92_RESERVED_CASE | SQL92_RESERVED_CHECK | PLSQL_RESERVED_CLUSTERS | PLSQL_RESERVED_COLAUTH | PLSQL_RESERVED_COMPRESS | SQL92_RESERVED_CONNECT | PLSQL_NON_RESERVED_CONNECT_BY_ROOT | PLSQL_RESERVED_CRASH | SQL92_RESERVED_CREATE | SQL92_RESERVED_CURRENT | SQL92_RESERVED_CURSOR | SQL92_RESERVED_DATE | SQL92_RESERVED_DECLARE | SQL92_RESERVED_DEFAULT | SQL92_RESERVED_DELETE | SQL92_RESERVED_DESC | SQL92_RESERVED_DISTINCT | SQL92_RESERVED_DROP | SQL92_RESERVED_ELSE | SQL92_RESERVED_END | SQL92_RESERVED_EXCEPTION | PLSQL_RESERVED_EXCLUSIVE | SQL92_RESERVED_EXISTS | SQL92_RESERVED_FALSE | SQL92_RESERVED_FETCH | SQL92_RESERVED_FOR | SQL92_RESERVED_FROM | SQL92_RESERVED_GOTO | SQL92_RESERVED_GRANT | SQL92_RESERVED_GROUP | SQL92_RESERVED_HAVING | PLSQL_RESERVED_IDENTIFIED | PLSQL_RESERVED_IF | SQL92_RESERVED_IN | PLSQL_RESERVED_INDEX | PLSQL_RESERVED_INDEXES | SQL92_RESERVED_INSERT | SQL92_RESERVED_INTERSECT | SQL92_RESERVED_INTO | SQL92_RESERVED_IS | SQL92_RESERVED_LIKE | PLSQL_RESERVED_LOCK | PLSQL_RESERVED_MINUS | PLSQL_RESERVED_MODE | PLSQL_RESERVED_NOCOMPRESS | SQL92_RESERVED_NOT | PLSQL_RESERVED_NOWAIT | SQL92_RESERVED_NULL | SQL92_RESERVED_OF | SQL92_RESERVED_ON | SQL92_RESERVED_OPTION | SQL92_RESERVED_OR | SQL92_RESERVED_ORDER | SQL92_RESERVED_OVERLAPS | SQL92_RESERVED_PRIOR | SQL92_RESERVED_PROCEDURE | SQL92_RESERVED_PUBLIC | PLSQL_RESERVED_RESOURCE | SQL92_RESERVED_REVOKE | SQL92_RESERVED_SELECT | PLSQL_RESERVED_SHARE | SQL92_RESERVED_SIZE | PLSQL_RESERVED_START | PLSQL_RESERVED_TABAUTH | SQL92_RESERVED_TABLE | SQL92_RESERVED_THE | SQL92_RESERVED_THEN | SQL92_RESERVED_TO | SQL92_RESERVED_TRUE | SQL92_RESERVED_UNION | SQL92_RESERVED_UNIQUE | SQL92_RESERVED_UPDATE | SQL92_RESERVED_VALUES | SQL92_RESERVED_VIEW | PLSQL_RESERVED_VIEWS | SQL92_RESERVED_WHEN | SQL92_RESERVED_WHERE | SQL92_RESERVED_WITH | PLSQL_NON_RESERVED_USING | PLSQL_NON_RESERVED_MODEL | PLSQL_NON_RESERVED_ELSIF | PLSQL_NON_RESERVED_PIVOT | PLSQL_NON_RESERVED_UNPIVOT | REGULAR_ID | ZV ); + */ +static const ANTLR_INT32 dfa39_eot[511] = + { + -1, 53, 52, 52, 52, 62, -1, 52, -1, -1, -1, -1, -1, 65, -1, -1, 66, 68, + 70, -1, -1, 73, 75, 76, 77, 78, 80, -1, -1, -1, -1, -1, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, -1, -1, + -1, -1, 52, 52, 52, 143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, 153, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 183, 187, 188, 52, 52, 52, 52, 193, 194, 52, 197, 52, 52, 52, 52, 52, 52, + 52, 52, 207, 52, 52, 52, 52, 52, 52, 52, 52, -1, 52, 218, 52, 52, 52, 52, + -1, 52, 52, 52, 52, 228, 52, 230, 231, 232, -1, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 252, 52, 52, 52, 52, 258, 52, + 52, 52, 52, 52, 52, -1, 52, 52, 52, -1, -1, 52, 52, 52, 52, -1, -1, 52, + 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 285, -1, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, -1, 52, 299, 52, 52, 52, 52, 52, 52, 52, -1, 52, -1, -1, + -1, 308, 52, 52, 52, 52, 52, 52, 52, 52, 52, 318, 52, 52, 52, 322, 52, + 324, 325, 52, -1, 52, 52, 52, 52, 52, -1, 332, 333, 52, 52, 52, 52, 52, + 52, 52, 341, 342, 343, 52, 346, 52, 52, 52, 52, 52, 52, 52, 354, 52, 52, + 52, 358, -1, 359, 52, 52, 52, 52, 52, 52, 367, 368, 52, 370, 52, 52, -1, + 373, 52, 52, 52, 377, 52, 379, 380, -1, 381, 52, 52, 52, 52, 386, 52, 52, + 52, -1, 52, 52, 52, -1, 52, -1, -1, 394, 52, 52, 52, 398, 399, -1, -1, + 400, 401, 52, 52, 405, 52, 52, -1, -1, -1, 408, 409, -1, 52, 411, 52, 52, + 52, 52, 416, -1, 417, 52, 419, -1, -1, 420, 52, 52, 52, 424, 52, 426, -1, + -1, 427, -1, 52, 429, -1, 52, 52, 52, -1, 433, -1, -1, -1, 52, 52, 52, + 52, -1, 438, 52, 440, 52, 52, 443, 52, -1, 52, 52, 447, -1, -1, -1, -1, + 448, 52, 52, -1, 451, 52, -1, -1, 453, -1, 52, 52, 456, 457, -1, -1, 52, + -1, -1, 459, 52, 461, -1, 462, -1, -1, 52, -1, 464, -1, 52, -1, 52, 467, + 52, 470, -1, 471, -1, 472, 473, -1, 52, 52, 52, -1, -1, 52, 478, -1, 52, + -1, 52, 52, -1, -1, 482, -1, 483, -1, -1, 52, -1, 52, 486, -1, 487, 52, + -1, -1, -1, -1, 489, 52, 52, 52, -1, 52, 494, 495, -1, -1, 52, 497, -1, + -1, 52, -1, 499, 500, 52, 502, -1, -1, 503, -1, 52, -1, -1, 505, -1, -1, + 52, -1, 52, 52, 52, 510, -1 + }; +static const ANTLR_INT32 dfa39_eof[511] = + { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1 + }; +static const ANTLR_INT32 dfa39_min[511] = + { + 9, 46, 39, 39, 39, 48, -1, 39, -1, -1, -1, -1, -1, 42, -1, -1, 42, 33, + 34, -1, -1, 61, 61, 61, 61, 61, 124, -1, -1, -1, -1, -1, 73, 76, 39, 65, + 65, 76, 65, 79, 65, 68, 73, 73, 39, 70, 69, 69, 65, 78, 65, 72, -1, -1, + 46, -1, 67, 76, 71, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 73, 66, 86, 76, 68, 35, 83, 69, 85, + 76, 65, 82, 84, 67, 83, 79, 83, 68, 67, 76, 84, 82, 79, 84, 65, 86, 69, + 35, 35, 35, 75, 67, 78, 68, 35, 35, 84, 35, 69, 83, 76, 65, 90, 65, 66, + 69, 35, 85, 73, 68, 73, 76, 69, 69, 84, -1, 79, 35, 65, 76, 73, 87, -1, + 67, 79, 76, 79, 35, 69, 35, 35, 35, -1, 69, 67, 83, 65, 80, 78, 83, 65, + 82, 69, 76, 65, 69, 67, 84, 80, 69, 35, 69, 83, 83, 67, 35, 77, 79, 78, + 85, 73, 78, -1, 69, 69, 69, -1, -1, 69, 75, 85, 69, -1, -1, 73, 69, -1, + 82, 79, 79, 69, 82, 69, 82, 65, 35, -1, 69, 79, 73, 65, 78, 85, 87, 78, + 72, 77, -1, 73, 35, 78, 69, 80, 69, 82, 73, 84, -1, 82, -1, -1, -1, 35, + 75, 84, 85, 82, 69, 72, 84, 69, 79, 35, 65, 85, 84, 35, 73, 35, 35, 70, + -1, 80, 85, 84, 69, 72, -1, 35, 35, 84, 80, 78, 84, 88, 82, 82, 35, 35, + 35, 83, 35, 79, 82, 76, 85, 75, 67, 69, 35, 84, 85, 69, 35, -1, 35, 78, + 85, 86, 84, 71, 69, 35, 35, 69, 35, 80, 84, -1, 35, 69, 84, 68, 35, 67, + 35, 35, -1, 35, 69, 84, 69, 67, 35, 69, 78, 82, -1, 82, 76, 69, -1, 78, + -1, -1, 35, 84, 83, 83, 35, 35, -1, -1, 35, 35, 71, 73, 35, 84, 83, -1, + -1, -1, 35, 35, -1, 78, 35, 65, 82, 69, 84, 35, -1, 35, 84, 35, -1, -1, + 35, 69, 79, 69, 35, 83, 35, -1, -1, 35, -1, 82, 35, -1, 78, 9, 85, -1, + 35, -1, -1, -1, 82, 72, 83, 84, -1, 35, 84, 35, 69, 84, 35, 67, -1, 73, + 73, 35, -1, -1, -1, -1, 35, 70, 83, -1, 35, 69, -1, -1, 35, -1, 80, 67, + 35, 35, -1, -1, 72, -1, -1, 35, 84, 35, -1, 35, -1, -1, 69, -1, 35, -1, + 82, -1, 83, 35, 83, 35, -1, 35, -1, 35, 35, -1, 84, 79, 86, -1, -1, 73, + 35, -1, 67, -1, 83, 69, -1, -1, 35, -1, 35, -1, -1, 83, -1, 69, 35, -1, + 35, 66, -1, -1, -1, -1, 35, 78, 69, 69, -1, 84, 35, 35, -1, -1, 83, 35, + -1, -1, 89, -1, 35, 35, 68, 35, -1, -1, 35, -1, 95, -1, -1, 35, -1, -1, + 82, -1, 79, 79, 84, 35, -1 + }; +static const ANTLR_INT32 dfa39_max[511] = + { + 126, 57, 85, 89, 39, 57, -1, 39, -1, -1, -1, -1, -1, 42, -1, -1, 42, 33, + 122, -1, -1, 62, 61, 61, 61, 61, 124, -1, -1, -1, -1, -1, 85, 83, 39, 85, + 82, 88, 82, 82, 65, 83, 79, 79, 39, 86, 69, 84, 82, 83, 73, 73, -1, -1, + 57, -1, 87, 76, 84, 122, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 79, 66, 86, 84, 89, 122, 83, 69, 85, + 78, 69, 82, 84, 83, 83, 79, 83, 68, 73, 76, 84, 82, 79, 84, 79, 86, 69, + 122, 122, 122, 75, 67, 78, 68, 122, 122, 84, 122, 69, 86, 76, 65, 90, 65, + 66, 69, 122, 85, 80, 68, 73, 76, 69, 69, 84, -1, 79, 122, 65, 76, 73, 87, + -1, 77, 79, 76, 79, 122, 69, 122, 122, 122, -1, 69, 67, 83, 65, 80, 78, + 83, 65, 83, 69, 76, 65, 69, 67, 84, 80, 73, 122, 76, 83, 83, 67, 122, 77, + 79, 78, 85, 73, 78, -1, 69, 69, 79, -1, -1, 69, 75, 85, 69, -1, -1, 73, + 69, -1, 82, 79, 79, 69, 82, 69, 82, 76, 122, -1, 69, 81, 73, 65, 78, 85, + 87, 82, 72, 77, -1, 73, 122, 78, 69, 80, 69, 82, 73, 84, -1, 82, -1, -1, + -1, 122, 75, 84, 85, 82, 69, 72, 84, 69, 79, 122, 65, 85, 84, 122, 73, + 122, 122, 70, -1, 80, 85, 84, 69, 72, -1, 122, 122, 84, 80, 78, 84, 88, + 82, 82, 122, 122, 122, 83, 122, 79, 82, 76, 85, 75, 67, 69, 122, 84, 85, + 69, 122, -1, 122, 78, 85, 86, 84, 71, 69, 122, 122, 69, 122, 80, 84, -1, + 122, 69, 84, 68, 122, 67, 122, 122, -1, 122, 69, 84, 69, 67, 122, 69, 78, + 82, -1, 82, 76, 69, -1, 78, -1, -1, 122, 84, 83, 83, 122, 122, -1, -1, + 122, 122, 71, 73, 122, 84, 83, -1, -1, -1, 122, 122, -1, 78, 122, 65, 82, + 69, 84, 122, -1, 122, 84, 122, -1, -1, 122, 69, 79, 69, 122, 83, 122, -1, + -1, 122, -1, 82, 122, -1, 78, 32, 85, -1, 122, -1, -1, -1, 82, 72, 83, + 84, -1, 122, 84, 122, 69, 84, 122, 67, -1, 73, 73, 122, -1, -1, -1, -1, + 122, 70, 83, -1, 122, 69, -1, -1, 122, -1, 80, 67, 122, 122, -1, -1, 72, + -1, -1, 122, 84, 122, -1, 122, -1, -1, 69, -1, 122, -1, 82, -1, 83, 122, + 83, 122, -1, 122, -1, 122, 122, -1, 84, 79, 86, -1, -1, 73, 122, -1, 67, + -1, 83, 69, -1, -1, 122, -1, 122, -1, -1, 83, -1, 69, 122, -1, 122, 66, + -1, -1, -1, -1, 122, 78, 69, 69, -1, 84, 122, 122, -1, -1, 83, 122, -1, + -1, 89, -1, 122, 122, 68, 122, -1, -1, 122, -1, 95, -1, -1, 122, -1, -1, + 82, -1, 79, 79, 84, 122, -1 + }; +static const ANTLR_INT32 dfa39_accept[511] = + { + -1, -1, -1, -1, -1, -1, 7, -1, 9, 10, 11, 12, 13, -1, 16, 17, -1, -1, -1, + 21, 23, -1, -1, -1, -1, -1, -1, 34, 35, 36, 37, 38, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 132, 6, -1, + 2, -1, -1, -1, -1, 3, 4, 5, 8, 14, 15, 18, 133, 19, 20, 22, 24, 27, 25, + 26, 31, 30, 28, 29, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, 48, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 81, -1, -1, -1, 82, 88, -1, -1, -1, -1, 97, 98, -1, -1, 100, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, 42, 43, 45, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, + -1, -1, -1, -1, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, + 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, 64, -1, 66, 67, + -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, -1, -1, -1, -1, 87, 89, 90, + -1, -1, 92, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, 115, 117, -1, + -1, -1, -1, -1, -1, -1, 122, 124, -1, 126, -1, -1, 46, -1, -1, -1, 103, + -1, 130, 41, 50, -1, -1, -1, -1, 56, -1, -1, -1, -1, -1, -1, -1, 129, -1, + -1, -1, 72, 73, 77, 78, -1, -1, -1, 83, -1, -1, 91, 128, -1, 101, -1, -1, + -1, -1, 109, 111, -1, 113, 118, -1, -1, -1, 127, -1, 123, 125, -1, 95, + -1, 39, -1, 105, -1, -1, -1, -1, 57, -1, 59, -1, -1, 63, -1, -1, -1, 71, + 79, -1, -1, 85, -1, 99, -1, -1, 107, 108, -1, 119, -1, 120, 121, -1, 47, + -1, -1, 52, -1, -1, 54, 58, 61, 62, -1, -1, -1, -1, 84, -1, -1, -1, 112, + 131, -1, -1, 51, 53, -1, 65, -1, -1, -1, -1, 102, 106, -1, 104, -1, 69, + 70, -1, 86, 93, -1, 80, -1, -1, -1, -1, 55 + }; +static const ANTLR_INT32 dfa39_special[511] = + { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1 + }; + +/** Used when there is no transition table entry for a particular state */ +static const ANTLR_INT32* dfa39_T_empty = NULL; + +static const ANTLR_INT32 dfa39_T0[] = + { + 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, -1, -1, -1, -1, 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 + }; + +static const ANTLR_INT32 dfa39_T1[] = + { + 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 196, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, -1, -1, -1, -1, 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 + }; + +static const ANTLR_INT32 dfa39_T2[] = + { + 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, -1, -1, -1, 69, -1, -1, -1, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, -1, -1, -1, -1, -1, -1, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19 + }; + +static const ANTLR_INT32 dfa39_T3[] = + { + 199, -1, -1, 200 + }; + +static const ANTLR_INT32 dfa39_T4[] = + { + 192 + }; + +static const ANTLR_INT32 dfa39_T5[] = + { + 137, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 138, + -1, -1, 139 + }; + +static const ANTLR_INT32 dfa39_T6[] = + { + 272 + }; + +static const ANTLR_INT32 dfa39_T7[] = + { + 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 345, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, -1, -1, -1, -1, 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 + }; + +static const ANTLR_INT32 dfa39_T8[] = + { + 141, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 142 + }; + +static const ANTLR_INT32 dfa39_T9[] = + { + 157, 158, 159 + }; + +static const ANTLR_INT32 dfa39_T10[] = + { + 205 + }; + +static const ANTLR_INT32 dfa39_T11[] = + { + 282, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 283 + }; + +static const ANTLR_INT32 dfa39_T12[] = + { + 206 + }; + +static const ANTLR_INT32 dfa39_T13[] = + { + 160, -1, -1, -1, 161 + }; + +static const ANTLR_INT32 dfa39_T14[] = + { + 437 + }; + +static const ANTLR_INT32 dfa39_T15[] = + { + 385 + }; + +static const ANTLR_INT32 dfa39_T16[] = + { + 313 + }; + +static const ANTLR_INT32 dfa39_T17[] = + { + 238 + }; + +static const ANTLR_INT32 dfa39_T18[] = + { + 287, -1, 288 + }; + +static const ANTLR_INT32 dfa39_T19[] = + { + 97, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99 + }; + +static const ANTLR_INT32 dfa39_T20[] = + { + 234 + }; + +static const ANTLR_INT32 dfa39_T21[] = + { + 326 + }; + +static const ANTLR_INT32 dfa39_T22[] = + { + 155 + }; + +static const ANTLR_INT32 dfa39_T23[] = + { + 233 + }; + +static const ANTLR_INT32 dfa39_T24[] = + { + 235 + }; + +static const ANTLR_INT32 dfa39_T25[] = + { + 306 + }; + +static const ANTLR_INT32 dfa39_T26[] = + { + 227 + }; + +static const ANTLR_INT32 dfa39_T27[] = + { + 156 + }; + +static const ANTLR_INT32 dfa39_T28[] = + { + 147 + }; + +static const ANTLR_INT32 dfa39_T29[] = + { + 309 + }; + +static const ANTLR_INT32 dfa39_T30[] = + { + 289 + }; + +static const ANTLR_INT32 dfa39_T31[] = + { + 362 + }; + +static const ANTLR_INT32 dfa39_T32[] = + { + 434 + }; + +static const ANTLR_INT32 dfa39_T33[] = + { + 466 + }; + +static const ANTLR_INT32 dfa39_T34[] = + { + 72 + }; + +static const ANTLR_INT32 dfa39_T35[] = + { + 310 + }; + +static const ANTLR_INT32 dfa39_T36[] = + { + 422 + }; + +static const ANTLR_INT32 dfa39_T37[] = + { + 460 + }; + +static const ANTLR_INT32 dfa39_T38[] = + { + 382 + }; + +static const ANTLR_INT32 dfa39_T39[] = + { + 383 + }; + +static const ANTLR_INT32 dfa39_T40[] = + { + 435 + }; + +static const ANTLR_INT32 dfa39_T41[] = + { + 236 + }; + +static const ANTLR_INT32 dfa39_T42[] = + { + 311 + }; + +static const ANTLR_INT32 dfa39_T43[] = + { + 31 + }; + +static const ANTLR_INT32 dfa39_T44[] = + { + 221 + }; + +static const ANTLR_INT32 dfa39_T45[] = + { + 300 + }; + +static const ANTLR_INT32 dfa39_T46[] = + { + 430 + }; + +static const ANTLR_INT32 dfa39_T47[] = + { + 222 + }; + +static const ANTLR_INT32 dfa39_T48[] = + { + 301 + }; + +static const ANTLR_INT32 dfa39_T49[] = + { + 374 + }; + +static const ANTLR_INT32 dfa39_T50[] = + { + 113, -1, -1, -1, -1, -1, 114 + }; + +static const ANTLR_INT32 dfa39_T51[] = + { + 154 + }; + +static const ANTLR_INT32 dfa39_T52[] = + { + 508 + }; + +static const ANTLR_INT32 dfa39_T53[] = + { + 507 + }; + +static const ANTLR_INT32 dfa39_T54[] = + { + 506 + }; + +static const ANTLR_INT32 dfa39_T55[] = + { + 504 + }; + +static const ANTLR_INT32 dfa39_T56[] = + { + 425 + }; + +static const ANTLR_INT32 dfa39_T57[] = + { + 365 + }; + +static const ANTLR_INT32 dfa39_T58[] = + { + 292 + }; + +static const ANTLR_INT32 dfa39_T59[] = + { + 213 + }; + +static const ANTLR_INT32 dfa39_T60[] = + { + 509 + }; + +static const ANTLR_INT32 dfa39_T61[] = + { + 239 + }; + +static const ANTLR_INT32 dfa39_T62[] = + { + 314 + }; + +static const ANTLR_INT32 dfa39_T63[] = + { + 240 + }; + +static const ANTLR_INT32 dfa39_T64[] = + { + 315 + }; + +static const ANTLR_INT32 dfa39_T65[] = + { + 387 + }; + +static const ANTLR_INT32 dfa39_T66[] = + { + 388 + }; + +static const ANTLR_INT32 dfa39_T67[] = + { + 439 + }; + +static const ANTLR_INT32 dfa39_T68[] = + { + 316 + }; + +static const ANTLR_INT32 dfa39_T69[] = + { + 31, 31, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 31, 23, 8, -1, -1, 9, 10, 6, 11, 12, 13, 14, 15, 31, + 5, 16, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 18, 20, 21, 27, 22, 19, 17, 33, 3, + 35, 36, 37, 38, 39, 40, 41, 52, 52, 42, 43, 2, 45, 32, 7, 46, 47, 48, 49, + 50, 51, 4, 52, 52, 28, -1, 29, 24, 30, -1, 52, 34, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 44, 52, 52, 7, 52, 52, 52, 52, 52, 52, 4, 52, 52, + -1, 26, -1, 25 + }; + +static const ANTLR_INT32 dfa39_T70[] = + { + 312 + }; + +static const ANTLR_INT32 dfa39_T71[] = + { + 237 + }; + +static const ANTLR_INT32 dfa39_T72[] = + { + 436 + }; + +static const ANTLR_INT32 dfa39_T73[] = + { + 369 + }; + +static const ANTLR_INT32 dfa39_T74[] = + { + 384 + }; + +static const ANTLR_INT32 dfa39_T75[] = + { + 468 + }; + +static const ANTLR_INT32 dfa39_T76[] = + { + 212 + }; + +static const ANTLR_INT32 dfa39_T77[] = + { + 296 + }; + +static const ANTLR_INT32 dfa39_T78[] = + { + 216 + }; + +static const ANTLR_INT32 dfa39_T79[] = + { + 431, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 431 + }; + +static const ANTLR_INT32 dfa39_T80[] = + { + 291 + }; + +static const ANTLR_INT32 dfa39_T81[] = + { + 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 284, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, -1, -1, -1, -1, 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 + }; + +static const ANTLR_INT32 dfa39_T82[] = + { + 364 + }; + +static const ANTLR_INT32 dfa39_T83[] = + { + 488 + }; + +static const ANTLR_INT32 dfa39_T84[] = + { + 498 + }; + +static const ANTLR_INT32 dfa39_T85[] = + { + 170 + }; + +static const ANTLR_INT32 dfa39_T86[] = + { + 148, -1, -1, -1, -1, -1, -1, -1, 149 + }; + +static const ANTLR_INT32 dfa39_T87[] = + { + 250, -1, -1, -1, 251 + }; + +static const ANTLR_INT32 dfa39_T88[] = + { + 375 + }; + +static const ANTLR_INT32 dfa39_T89[] = + { + 302 + }; + +static const ANTLR_INT32 dfa39_T90[] = + { + 209, -1, -1, -1, -1, -1, -1, 210 + }; + +static const ANTLR_INT32 dfa39_T91[] = + { + 79 + }; + +static const ANTLR_INT32 dfa39_T92[] = + { + 150, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 151 + }; + +static const ANTLR_INT32 dfa39_T93[] = + { + 229 + }; + +static const ANTLR_INT32 dfa39_T94[] = + { + 307 + }; + +static const ANTLR_INT32 dfa39_T95[] = + { + 87, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, 89, -1, -1, 90, -1, -1, 91, + -1, -1, 92 + }; + +static const ANTLR_INT32 dfa39_T96[] = + { + 115, -1, -1, -1, -1, -1, -1, -1, 116, -1, 117, -1, 118, -1, -1, -1, 119 + }; + +static const ANTLR_INT32 dfa39_T97[] = + { + 84, -1, 85, -1, -1, -1, -1, 86 + }; + +static const ANTLR_INT32 dfa39_T98[] = + { + 54, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + }; + +static const ANTLR_INT32 dfa39_T99[] = + { + 74 + }; + +static const ANTLR_INT32 dfa39_T100[] = + { + 145, -1, -1, -1, -1, -1, 144 + }; + +static const ANTLR_INT32 dfa39_T101[] = + { + 376 + }; + +static const ANTLR_INT32 dfa39_T102[] = + { + 432 + }; + +static const ANTLR_INT32 dfa39_T103[] = + { + 303 + }; + +static const ANTLR_INT32 dfa39_T104[] = + { + 146 + }; + +static const ANTLR_INT32 dfa39_T105[] = + { + 465 + }; + +static const ANTLR_INT32 dfa39_T106[] = + { + 485 + }; + +static const ANTLR_INT32 dfa39_T107[] = + { + 55 + }; + +static const ANTLR_INT32 dfa39_T108[] = + { + 480 + }; + +static const ANTLR_INT32 dfa39_T109[] = + { + 454 + }; + +static const ANTLR_INT32 dfa39_T110[] = + { + 412 + }; + +static const ANTLR_INT32 dfa39_T111[] = + { + 349 + }; + +static const ANTLR_INT32 dfa39_T112[] = + { + 275 + }; + +static const ANTLR_INT32 dfa39_T113[] = + { + 198 + }; + +static const ANTLR_INT32 dfa39_T114[] = + { + 136, -1, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53 + }; + +static const ANTLR_INT32 dfa39_T115[] = + { + 304 + }; + +static const ANTLR_INT32 dfa39_T116[] = + { + 225 + }; + +static const ANTLR_INT32 dfa39_T117[] = + { + 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 366, 52, 52, 52, 52, 52, + 52, 52, -1, -1, -1, -1, 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 + }; + +static const ANTLR_INT32 dfa39_T118[] = + { + 274 + }; + +static const ANTLR_INT32 dfa39_T119[] = + { + 348 + }; + +static const ANTLR_INT32 dfa39_T120[] = + { + 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 152, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, -1, -1, -1, -1, 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 + }; + +static const ANTLR_INT32 dfa39_T121[] = + { + 410 + }; + +static const ANTLR_INT32 dfa39_T122[] = + { + 347 + }; + +static const ANTLR_INT32 dfa39_T123[] = + { + 107, -1, 108, -1, -1, -1, -1, -1, -1, -1, 109, -1, -1, -1, -1, 110 + }; + +static const ANTLR_INT32 dfa39_T124[] = + { + 273 + }; + +static const ANTLR_INT32 dfa39_T125[] = + { + 195 + }; + +static const ANTLR_INT32 dfa39_T126[] = + { + 298 + }; + +static const ANTLR_INT32 dfa39_T127[] = + { + 372 + }; + +static const ANTLR_INT32 dfa39_T128[] = + { + 219 + }; + +static const ANTLR_INT32 dfa39_T129[] = + { + 220 + }; + +static const ANTLR_INT32 dfa39_T130[] = + { + 140 + }; + +static const ANTLR_INT32 dfa39_T131[] = + { + 111, -1, -1, -1, -1, -1, 112 + }; + +static const ANTLR_INT32 dfa39_T132[] = + { + 484 + }; + +static const ANTLR_INT32 dfa39_T133[] = + { + 463 + }; + +static const ANTLR_INT32 dfa39_T134[] = + { + 428 + }; + +static const ANTLR_INT32 dfa39_T135[] = + { + 371 + }; + +static const ANTLR_INT32 dfa39_T136[] = + { + 496 + }; + +static const ANTLR_INT32 dfa39_T137[] = + { + 104, -1, -1, 105 + }; + +static const ANTLR_INT32 dfa39_T138[] = + { + 344 + }; + +static const ANTLR_INT32 dfa39_T139[] = + { + 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 404, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, -1, -1, -1, -1, 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 + }; + +static const ANTLR_INT32 dfa39_T140[] = + { + 63 + }; + +static const ANTLR_INT32 dfa39_T141[] = + { + 217 + }; + +static const ANTLR_INT32 dfa39_T142[] = + { + 297 + }; + +static const ANTLR_INT32 dfa39_T143[] = + { + 269 + }; + +static const ANTLR_INT32 dfa39_T144[] = + { + 179, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180 + }; + +static const ANTLR_INT32 dfa39_T145[] = + { + 189 + }; + +static const ANTLR_INT32 dfa39_T146[] = + { + 64 + }; + +static const ANTLR_INT32 dfa39_T147[] = + { + 190 + }; + +static const ANTLR_INT32 dfa39_T148[] = + { + 270 + }; + +static const ANTLR_INT32 dfa39_T149[] = + { + 271 + }; + +static const ANTLR_INT32 dfa39_T150[] = + { + 191 + }; + +static const ANTLR_INT32 dfa39_T151[] = + { + 338 + }; + +static const ANTLR_INT32 dfa39_T152[] = + { + 423 + }; + +static const ANTLR_INT32 dfa39_T153[] = + { + 363 + }; + +static const ANTLR_INT32 dfa39_T154[] = + { + 290 + }; + +static const ANTLR_INT32 dfa39_T155[] = + { + 211 + }; + +static const ANTLR_INT32 dfa39_T156[] = + { + 421 + }; + +static const ANTLR_INT32 dfa39_T157[] = + { + 361 + }; + +static const ANTLR_INT32 dfa39_T158[] = + { + 360 + }; + +static const ANTLR_INT32 dfa39_T159[] = + { + 129, -1, 130, -1, -1, 131 + }; + +static const ANTLR_INT32 dfa39_T160[] = + { + 265 + }; + +static const ANTLR_INT32 dfa39_T161[] = + { + 208 + }; + +static const ANTLR_INT32 dfa39_T162[] = + { + 286 + }; + +static const ANTLR_INT32 dfa39_T163[] = + { + 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 56, -1, -1, -1, -1, -1, 57 + }; + +static const ANTLR_INT32 dfa39_T164[] = + { + 172, -1, -1, -1, -1, -1, 173 + }; + +static const ANTLR_INT32 dfa39_T165[] = + { + 357 + }; + +static const ANTLR_INT32 dfa39_T166[] = + { + 61 + }; + +static const ANTLR_INT32 dfa39_T167[] = + { + 458 + }; + +static const ANTLR_INT32 dfa39_T168[] = + { + 418 + }; + +static const ANTLR_INT32 dfa39_T169[] = + { + 356 + }; + +static const ANTLR_INT32 dfa39_T170[] = + { + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53 + }; + +static const ANTLR_INT32 dfa39_T171[] = + { + 355 + }; + +static const ANTLR_INT32 dfa39_T172[] = + { + 281 + }; + +static const ANTLR_INT32 dfa39_T173[] = + { + 204 + }; + +static const ANTLR_INT32 dfa39_T174[] = + { + 106 + }; + +static const ANTLR_INT32 dfa39_T175[] = + { + 280 + }; + +static const ANTLR_INT32 dfa39_T176[] = + { + 203 + }; + +static const ANTLR_INT32 dfa39_T177[] = + { + 279 + }; + +static const ANTLR_INT32 dfa39_T178[] = + { + 353 + }; + +static const ANTLR_INT32 dfa39_T179[] = + { + 267, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268 + }; + +static const ANTLR_INT32 dfa39_T180[] = + { + 202 + }; + +static const ANTLR_INT32 dfa39_T181[] = + { + 278 + }; + +static const ANTLR_INT32 dfa39_T182[] = + { + 201 + }; + +static const ANTLR_INT32 dfa39_T183[] = + { + 415 + }; + +static const ANTLR_INT32 dfa39_T184[] = + { + 352 + }; + +static const ANTLR_INT32 dfa39_T185[] = + { + 351 + }; + +static const ANTLR_INT32 dfa39_T186[] = + { + 125, -1, -1, -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, 127, -1, -1, + 128 + }; + +static const ANTLR_INT32 dfa39_T187[] = + { + 277 + }; + +static const ANTLR_INT32 dfa39_T188[] = + { + 414 + }; + +static const ANTLR_INT32 dfa39_T189[] = + { + 276 + }; + +static const ANTLR_INT32 dfa39_T190[] = + { + 350 + }; + +static const ANTLR_INT32 dfa39_T191[] = + { + 413 + }; + +static const ANTLR_INT32 dfa39_T192[] = + { + 455 + }; + +static const ANTLR_INT32 dfa39_T193[] = + { + 67 + }; + +static const ANTLR_INT32 dfa39_T194[] = + { + 481 + }; + +static const ANTLR_INT32 dfa39_T195[] = + { + 226 + }; + +static const ANTLR_INT32 dfa39_T196[] = + { + 305 + }; + +static const ANTLR_INT32 dfa39_T197[] = + { + 378 + }; + +static const ANTLR_INT32 dfa39_T198[] = + { + 164, -1, -1, 165, -1, -1, -1, -1, -1, 166, -1, -1, -1, -1, -1, -1, 167 + }; + +static const ANTLR_INT32 dfa39_T199[] = + { + 396 + }; + +static const ANTLR_INT32 dfa39_T200[] = + { + 328 + }; + +static const ANTLR_INT32 dfa39_T201[] = + { + 476 + }; + +static const ANTLR_INT32 dfa39_T202[] = + { + 446 + }; + +static const ANTLR_INT32 dfa39_T203[] = + { + 491 + }; + +static const ANTLR_INT32 dfa39_T204[] = + { + 255 + }; + +static const ANTLR_INT32 dfa39_T205[] = + { + 329 + }; + +static const ANTLR_INT32 dfa39_T206[] = + { + 397 + }; + +static const ANTLR_INT32 dfa39_T207[] = + { + 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, -1, -1, -1, -1, 469, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 + }; + +static const ANTLR_INT32 dfa39_T208[] = + { + 174 + }; + +static const ANTLR_INT32 dfa39_T209[] = + { + 256 + }; + +static const ANTLR_INT32 dfa39_T210[] = + { + 330 + }; + +static const ANTLR_INT32 dfa39_T211[] = + { + 162 + }; + +static const ANTLR_INT32 dfa39_T212[] = + { + 249 + }; + +static const ANTLR_INT32 dfa39_T213[] = + { + 100, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, -1, -1, + 103 + }; + +static const ANTLR_INT32 dfa39_T214[] = + { + 132, -1, -1, -1, -1, -1, -1, -1, 133 + }; + +static const ANTLR_INT32 dfa39_T215[] = + { + 169 + }; + +static const ANTLR_INT32 dfa39_T216[] = + { + 241, 242 + }; + +static const ANTLR_INT32 dfa39_T217[] = + { + 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 184, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 185, 186, 52, 52, 52, 52, + 52, 52, -1, -1, -1, -1, 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 + }; + +static const ANTLR_INT32 dfa39_T218[] = + { + 171 + }; + +static const ANTLR_INT32 dfa39_T219[] = + { + 490 + }; + +static const ANTLR_INT32 dfa39_T220[] = + { + 445 + }; + +static const ANTLR_INT32 dfa39_T221[] = + { + 475 + }; + +static const ANTLR_INT32 dfa39_T222[] = + { + 327 + }; + +static const ANTLR_INT32 dfa39_T223[] = + { + 395 + }; + +static const ANTLR_INT32 dfa39_T224[] = + { + 83, -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, -1, 82 + }; + +static const ANTLR_INT32 dfa39_T225[] = + { + 320 + }; + +static const ANTLR_INT32 dfa39_T226[] = + { + 245 + }; + +static const ANTLR_INT32 dfa39_T227[] = + { + 442 + }; + +static const ANTLR_INT32 dfa39_T228[] = + { + 391 + }; + +static const ANTLR_INT32 dfa39_T229[] = + { + 120 + }; + +static const ANTLR_INT32 dfa39_T230[] = + { + 321 + }; + +static const ANTLR_INT32 dfa39_T231[] = + { + 246 + }; + +static const ANTLR_INT32 dfa39_T232[] = + { + 392 + }; + +static const ANTLR_INT32 dfa39_T233[] = + { + 247 + }; + +static const ANTLR_INT32 dfa39_T234[] = + { + 168 + }; + +static const ANTLR_INT32 dfa39_T235[] = + { + 248 + }; + +static const ANTLR_INT32 dfa39_T236[] = + { + 323 + }; + +static const ANTLR_INT32 dfa39_T237[] = + { + 393 + }; + +static const ANTLR_INT32 dfa39_T238[] = + { + 444 + }; + +static const ANTLR_INT32 dfa39_T239[] = + { + 474 + }; + +static const ANTLR_INT32 dfa39_T240[] = + { + 134, 135 + }; + +static const ANTLR_INT32 dfa39_T241[] = + { + 317 + }; + +static const ANTLR_INT32 dfa39_T242[] = + { + 389 + }; + +static const ANTLR_INT32 dfa39_T243[] = + { + 243 + }; + +static const ANTLR_INT32 dfa39_T244[] = + { + 163 + }; + +static const ANTLR_INT32 dfa39_T245[] = + { + 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59 + }; + +static const ANTLR_INT32 dfa39_T246[] = + { + 244 + }; + +static const ANTLR_INT32 dfa39_T247[] = + { + 319 + }; + +static const ANTLR_INT32 dfa39_T248[] = + { + 390 + }; + +static const ANTLR_INT32 dfa39_T249[] = + { + 441 + }; + +static const ANTLR_INT32 dfa39_T250[] = + { + 60 + }; + +static const ANTLR_INT32 dfa39_T251[] = + { + 452 + }; + +static const ANTLR_INT32 dfa39_T252[] = + { + 479 + }; + +static const ANTLR_INT32 dfa39_T253[] = + { + 493 + }; + +static const ANTLR_INT32 dfa39_T254[] = + { + 340 + }; + +static const ANTLR_INT32 dfa39_T255[] = + { + 407 + }; + +static const ANTLR_INT32 dfa39_T256[] = + { + 266 + }; + +static const ANTLR_INT32 dfa39_T257[] = + { + 339 + }; + +static const ANTLR_INT32 dfa39_T258[] = + { + 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, 223 + }; + +static const ANTLR_INT32 dfa39_T259[] = + { + 406 + }; + +static const ANTLR_INT32 dfa39_T260[] = + { + 71, 72 + }; + +static const ANTLR_INT32 dfa39_T261[] = + { + 294, -1, -1, -1, 295 + }; + +static const ANTLR_INT32 dfa39_T262[] = + { + 215 + }; + +static const ANTLR_INT32 dfa39_T263[] = + { + 450 + }; + +static const ANTLR_INT32 dfa39_T264[] = + { + 181 + }; + +static const ANTLR_INT32 dfa39_T265[] = + { + 263 + }; + +static const ANTLR_INT32 dfa39_T266[] = + { + 336 + }; + +static const ANTLR_INT32 dfa39_T267[] = + { + 262 + }; + +static const ANTLR_INT32 dfa39_T268[] = + { + 335 + }; + +static const ANTLR_INT32 dfa39_T269[] = + { + 403 + }; + +static const ANTLR_INT32 dfa39_T270[] = + { + 337 + }; + +static const ANTLR_INT32 dfa39_T271[] = + { + 477 + }; + +static const ANTLR_INT32 dfa39_T272[] = + { + 449 + }; + +static const ANTLR_INT32 dfa39_T273[] = + { + 501 + }; + +static const ANTLR_INT32 dfa39_T274[] = + { + 492 + }; + +static const ANTLR_INT32 dfa39_T275[] = + { + 214 + }; + +static const ANTLR_INT32 dfa39_T276[] = + { + 293 + }; + +static const ANTLR_INT32 dfa39_T277[] = + { + 402 + }; + +static const ANTLR_INT32 dfa39_T278[] = + { + 264 + }; + +static const ANTLR_INT32 dfa39_T279[] = + { + 182 + }; + +static const ANTLR_INT32 dfa39_T280[] = + { + 176 + }; + +static const ANTLR_INT32 dfa39_T281[] = + { + 177 + }; + +static const ANTLR_INT32 dfa39_T282[] = + { + 257 + }; + +static const ANTLR_INT32 dfa39_T283[] = + { + 331 + }; + +static const ANTLR_INT32 dfa39_T284[] = + { + 175 + }; + +static const ANTLR_INT32 dfa39_T285[] = + { + 93, -1, -1, -1, 94, -1, -1, -1, 95, -1, -... [truncated message content] |
From: <ibr...@us...> - 2012-03-17 00:25:19
|
Revision: 4246 http://tora.svn.sourceforge.net/tora/?rev=4246&view=rev Author: ibre5041 Date: 2012-03-17 00:25:12 +0000 (Sat, 17 Mar 2012) Log Message: ----------- Modified Paths: -------------- branches/tora-trotl/sandbox.cpp/PLSQLLexer.g branches/tora-trotl/sandbox.cpp/UserTraits.hpp branches/tora-trotl/sandbox.cpp/t1.cpp Modified: branches/tora-trotl/sandbox.cpp/PLSQLLexer.g =================================================================== --- branches/tora-trotl/sandbox.cpp/PLSQLLexer.g 2012-03-16 15:27:00 UTC (rev 4245) +++ branches/tora-trotl/sandbox.cpp/PLSQLLexer.g 2012-03-17 00:25:12 UTC (rev 4246) @@ -213,10 +213,10 @@ /* C Syntax */ // ( { LA(1) != $delimiter->getText()->chars[0] || LA(2) != '\'' }? => . )* // ( { LA(1) == $delimiter->getText()->chars[0] && LA(2) == '\'' }? => . ) QUOTE +// { INPUT->istream->_LA = oldLA; } /* C++ Syntax */ ( { LA(1) != $delimiter->getText().at(0) || LA(2) != '\'' }? => . )* ( { LA(1) == $delimiter->getText().at(0) && LA(2) == '\'' }? => . ) QUOTE - // { INPUT->istream->_LA = oldLA; } ; Modified: branches/tora-trotl/sandbox.cpp/UserTraits.hpp =================================================================== --- branches/tora-trotl/sandbox.cpp/UserTraits.hpp 2012-03-16 15:27:00 UTC (rev 4245) +++ branches/tora-trotl/sandbox.cpp/UserTraits.hpp 2012-03-17 00:25:12 UTC (rev 4246) @@ -13,6 +13,8 @@ #include <antlr3.hpp> #include <algorithm> +#include <boost/algorithm/string/predicate.hpp> + namespace User { class PLSQLLexer; @@ -112,19 +114,29 @@ template<class StringType> inline bool enablesUsingClause(StringType const& originalFunctionName) { - StringType functionName = originalFunctionName; - std::transform(functionName.begin(), functionName.end(), functionName.begin(), ::toupper); - // if (functionName.startsWith("cluster_") || functionName.startsWith("feature_")) - // { - // return true; - // } + static const StringType cluster("CLUSTER_"); + static const StringType feature("FEATURE_"); + + // StringType functionName = originalFunctionName; + // std::transform(functionName.begin(), functionName.end(), functionName.begin(), ::toupper); + + if ( boost::algorithm::istarts_with(originalFunctionName, cluster) || boost::algorithm::istarts_with(originalFunctionName, feature)) + { + return true; + } return false; } template<class StringType> inline bool enablesOverClause(StringType const& originalFunctionName) { + static const StringType regr("REGR_"); + static const StringType stddev("STDDEV"); + static const StringType var("VAR_"); + static const StringType covar("COVAR_"); + StringType functionName = originalFunctionName; - std::transform(functionName.begin(), functionName.end(), functionName.begin(), ::toupper); + std::transform(functionName.begin(), functionName.end(), functionName.begin(), ::toupper); + if ( functionName == "AVG" || functionName == "CORR" || functionName == "LAG" @@ -137,10 +149,10 @@ || functionName == "ROW_NUMBER" || functionName == "SUM" || functionName == "VARIANCE" - // || functionName.startsWith("regr_") - // || functionName.startsWith("stddev") - // || functionName.startsWith("var_") - // || functionName.startsWith("covar_") + || boost::algorithm::istarts_with(originalFunctionName, regr) + || boost::algorithm::istarts_with(originalFunctionName, stddev) + || boost::algorithm::istarts_with(originalFunctionName, var) + || boost::algorithm::istarts_with(originalFunctionName, covar) ) { return true; @@ -151,10 +163,11 @@ template<class StringType> inline bool equalsIgnoreCase(StringType const& s1, const char* s2) { - //return !strcasecmp(s1.c_str(), s2); - StringType s1U = s1; + // return !strcasecmp(s1.c_str(), s2); + StringType s1U(s1); std::transform(s1U.begin(), s1U.end(), s1U.begin(), ::toupper); return s1U == s2; + // return iequals(s1, s2); } } Modified: branches/tora-trotl/sandbox.cpp/t1.cpp =================================================================== --- branches/tora-trotl/sandbox.cpp/t1.cpp 2012-03-16 15:27:00 UTC (rev 4245) +++ branches/tora-trotl/sandbox.cpp/t1.cpp 2012-03-17 00:25:12 UTC (rev 4246) @@ -41,8 +41,8 @@ #include <sys/types.h> #include "dirent.h" -#include <iostream> -#include <sstream> +#include <iostream> +#include <sstream> #include <fstream> #define DIRDELIM '/' @@ -217,8 +217,11 @@ // (Use antlr3AsciiFileStreamNew for UCS2/16bit input). // ///byIvan input = new PLSQLTraits::InputStreamType(fName, ANTLR_ENC_8BIT); - string data = slurp(string((const char*)fName)); - input = new PLSQLTraits::InputStreamType((const ANTLR_UINT8 *)data.c_str(), ANTLR_ENC_8BIT, data.length(), fName); + string data = slurp(string((const char*)fName)); + input = new PLSQLTraits::InputStreamType((const ANTLR_UINT8 *)data.c_str(), + ANTLR_ENC_8BIT, + strlen(data.c_str()), //data.length(), + fName); input->setUcaseLA(true); @@ -298,12 +301,12 @@ delete input; } -static string slurp(string const& fileName) { - ifstream ifs(fileName.c_str(), ios::in | ios::binary | ios::ate); - ifstream::pos_type fileSize = ifs.tellg(); - ifs.seekg(0, ios::beg); - - stringstream sstr; - sstr << ifs.rdbuf(); - return sstr.str(); -} +static string slurp(string const& fileName) { + ifstream ifs(fileName.c_str(), ios::in | ios::binary | ios::ate); + ifstream::pos_type fileSize = ifs.tellg(); + ifs.seekg(0, ios::beg); + + stringstream sstr; + sstr << ifs.rdbuf(); + return sstr.str(); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2012-03-20 21:26:45
|
Revision: 4247 http://tora.svn.sourceforge.net/tora/?rev=4247&view=rev Author: ibre5041 Date: 2012-03-20 21:26:28 +0000 (Tue, 20 Mar 2012) Log Message: ----------- various traits implemented, still 2x slower than Java Modified Paths: -------------- branches/tora-trotl/sandbox.cpp/Makefile branches/tora-trotl/sandbox.cpp/PLSQL_DMLParser.g branches/tora-trotl/sandbox.cpp/UserTraits.hpp branches/tora-trotl/sandbox.cpp/t1.cpp Added Paths: ----------- branches/tora-trotl/sandbox.cpp/PLSQLParser.g branches/tora-trotl/sandbox.cpp/SQLPLUSParser.g branches/tora-trotl/sandbox.cpp/UserTraitsBoost.hpp branches/tora-trotl/sandbox.cpp/UserTraitsSTL.hpp branches/tora-trotl/sandbox.cpp/UserTraitsTBB.hpp branches/tora-trotl/sandbox.cpp/t2.cpp branches/tora-trotl/sandbox.cpp/t3.cpp branches/tora-trotl/sandbox.cpp/t4.cpp branches/tora-trotl/sandbox.cpp/utils.cpp branches/tora-trotl/sandbox.cpp/utils.hpp Removed Paths: ------------- branches/tora-trotl/sandbox.cpp/PLSQLLexer.cpp branches/tora-trotl/sandbox.cpp/PLSQLLexer.hpp Modified: branches/tora-trotl/sandbox.cpp/Makefile =================================================================== --- branches/tora-trotl/sandbox.cpp/Makefile 2012-03-17 00:25:12 UTC (rev 4246) +++ branches/tora-trotl/sandbox.cpp/Makefile 2012-03-20 21:26:28 UTC (rev 4247) @@ -1,23 +1,43 @@ .PRECIOUS=.o -ANTLRGRAMMARS ?= $(wildcard *.g) +##ANTLRGRAMMARS ?= $(wildcard *.g) +ANTLRGRAMMARS = PLSQLLexer.g PLSQLParser.g HEADERS = $(wildcard *.hpp) $(wildcard *.inl) SOURCES = $(wildcard *.cpp) +PSOURCES = $(wildcard PLSQLParser*.cpp) PLSQLLexer.cpp GRAMMAROPTIONS=-report -Xconversiontimeout 1500000 -Xmultithreaded -Xwatchconversion -INCLUDES= -I. -I/home/ivan/devel/antlr-cpp/include/ +INCLUDES= -I. -I/home/ivan/devel/antlr-cpp/include/ -I/home/ivan/devel/tbb40_20120201oss/include/ LIBS = +TBBLOC=/home/ivan/devel/tbb40_20120201oss/lib/intel64/cc4.1.0_libc2.4_kernel2.6.16.21 -CFLAGS=-ggdb -O0 -fno-inline +##CFLAGS=-ggdb -O0 -fno-inline +CFLAGS=-ggdb3 -O3 -TOBJS= PLSQL_DMLParser.o PLSQL_DMLParser_PLSQLCommons.o PLSQL_DMLParser_PLSQLKeys.o PLSQLLexer.o +TOBJS= utils.o -all: t1 +# PLSQLLexer.o \ +# PLSQLParser.o \ +# PLSQLParser_PLSQLCommons.o \ +# PLSQLParser_PLSQL_DMLParser.o \ +# PLSQLParser_PLSQLKeys.o \ +# PLSQLParser_SQLPLUSParser.o -t1: t1.cpp PLSQLLexer.tokens PLSQL_DMLParser.tokens t1.cpp $(TOBJS) - g++ $(CFLAGS) $(INCLUDES) $(TOBJS) t1.cpp $(LIBS) -o $@ +all: t1 t2 t3 t4 +t1: t1.cpp PLSQLLexer.tokens PLSQLParser.tokens t1.cpp $(TOBJS) $(PSOURCES) Makefile UserTraits.hpp + g++ $(CFLAGS) -DUSESTL $(INCLUDES) $(TOBJS) t1.cpp $(PSOURCES) $(LIBS) -o $@ + +t2: t2.cpp PLSQLLexer.tokens PLSQLParser.tokens t2.cpp $(TOBJS) $(PSOURCES) Makefile UserTraits.hpp + g++ $(CFLAGS) -DUSEBOOST $(INCLUDES) $(TOBJS) t2.cpp $(PSOURCES) $(LIBS) -o $@ + +t3: t3.cpp PLSQLLexer.tokens PLSQLParser.tokens t3.cpp $(TOBJS) $(PSOURCES) Makefile UserTraits.hpp + g++ $(CFLAGS) -DUSETBB $(INCLUDES) $(TOBJS) t3.cpp $(PSOURCES) $(LIBS) -L$(TBBLOC) -Wl,-rpath=$(TBBLOC) -ltbbmalloc -o $@ + +t4: t4.cpp PLSQLLexer.tokens PLSQLParser.tokens t4.cpp $(TOBJS) $(PSOURCES) Makefile UserTraits.hpp + g++ $(CFLAGS) -DUSESTL $(INCLUDES) $(TOBJS) t4.cpp $(PSOURCES) $(LIBS) -o $@ + clean: rm -f *.o PLSQLLexer*.[ch]pp PLSQL*[ch]pp t1 t2 t3 t4 *.tokens @@ -41,5 +61,5 @@ endif endif -%.o: %.cpp $(HEADERS) PLSQLLexer.hpp PLSQL_DMLParser.hpp PLSQL_DMLParser_PLSQLCommons.hpp +%.o: %.cpp $(HEADERS) PLSQLLexer.hpp utils.hpp g++ $(CFLAGS) $(INCLUDES) -c $< -o $@ Deleted: branches/tora-trotl/sandbox.cpp/PLSQLLexer.cpp =================================================================== --- branches/tora-trotl/sandbox.cpp/PLSQLLexer.cpp 2012-03-17 00:25:12 UTC (rev 4246) +++ branches/tora-trotl/sandbox.cpp/PLSQLLexer.cpp 2012-03-20 21:26:28 UTC (rev 4247) @@ -1,13369 +0,0 @@ -/** \file - * This C++ source file was generated by $ANTLR version 3.4 - * - * - From the grammar source file : PLSQLLexer.g - * - On : 2012-03-16 12:17:17 - * - for the lexer : PLSQLLexerLexer - * - * Editing it, at least manually, is not wise. - * - * C++ language generator and runtime by Gokulakannan Somasundaram ( heavy lifting from C Run-time by Jim Idle ) - * - * -*/ -// [The "BSD license"] -// Copyright (c) 2005-2009 Gokulakannan Somasundaram, ElectronDB -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. The name of the author may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -/* ============================================================================= - * This is what the grammar programmer asked us to put at the top of every file. - */ - -/* - * Oracle(c) PL/SQL 11g Parser - * - * Copyright (c) 2009-2011 Alexandre Porcelli <ale...@gm...> - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* End of Header action. - * ============================================================================= - */ - -/* ----------------------------------------- - * Include the ANTLR3 generated header file. - */ -#include "PLSQLLexer.hpp" -/* ----------------------------------------- */ - -/** - * Oracle(c) PL/SQL 11g Parser - * - * Copyright (c) 2009-2011 Alexandre Porcelli <ale...@gm...> - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - namespace -User - { - - -/** String literals used by PLSQLLexer 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 - * we perform this little trick of defining the literals as arrays of UINT32 - * and passing in the address of these. - */ -static ANTLR_UCHAR lit_1[] = { 0x2E, 0x2E, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_2[] = { 0x2A, 0x2A, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_3[] = { 0x3A, 0x3D, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_4[] = { 0x3C, 0x3D, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_5[] = { 0x3E, 0x3D, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_6[] = { 0x21, 0x3D, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_7[] = { 0x3C, 0x3E, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_8[] = { 0x5E, 0x3D, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_9[] = { 0x7E, 0x3D, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_10[] = { 0x7C, 0x7C, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_11[] = { 0x2D, 0x2D, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_12[] = { 0x2F, 0x2A, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_13[] = { 0x2A, 0x2F, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_14[] = { 0x50, 0x52, 0x4F, 0x4D, 0x50, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_15[] = { 0x41, 0x4C, 0x4C, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_16[] = { 0x41, 0x4C, 0x54, 0x45, 0x52, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_17[] = { 0x41, 0x4E, 0x44, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_18[] = { 0x41, 0x4E, 0x59, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_19[] = { 0x41, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_20[] = { 0x41, 0x53, 0x43, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_21[] = { 0x42, 0x45, 0x47, 0x49, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_22[] = { 0x42, 0x45, 0x54, 0x57, 0x45, 0x45, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_23[] = { 0x42, 0x59, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_24[] = { 0x43, 0x41, 0x53, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_25[] = { 0x43, 0x48, 0x45, 0x43, 0x4B, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_26[] = { 0x43, 0x4C, 0x55, 0x53, 0x54, 0x45, 0x52, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_27[] = { 0x43, 0x4F, 0x4C, 0x41, 0x55, 0x54, 0x48, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_28[] = { 0x43, 0x4F, 0x4D, 0x50, 0x52, 0x45, 0x53, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_29[] = { 0x43, 0x4F, 0x4E, 0x4E, 0x45, 0x43, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_30[] = { 0x43, 0x4F, 0x4E, 0x4E, 0x45, 0x43, 0x54, 0x5F, 0x42, 0x59, 0x5F, 0x52, 0x4F, 0x4F, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_31[] = { 0x43, 0x52, 0x41, 0x53, 0x48, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_32[] = { 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_33[] = { 0x43, 0x55, 0x52, 0x52, 0x45, 0x4E, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_34[] = { 0x43, 0x55, 0x52, 0x53, 0x4F, 0x52, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_35[] = { 0x44, 0x41, 0x54, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_36[] = { 0x44, 0x45, 0x43, 0x4C, 0x41, 0x52, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_37[] = { 0x44, 0x45, 0x46, 0x41, 0x55, 0x4C, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_38[] = { 0x44, 0x45, 0x4C, 0x45, 0x54, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_39[] = { 0x44, 0x45, 0x53, 0x43, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_40[] = { 0x44, 0x49, 0x53, 0x54, 0x49, 0x4E, 0x43, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_41[] = { 0x44, 0x52, 0x4F, 0x50, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_42[] = { 0x45, 0x4C, 0x53, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_43[] = { 0x45, 0x4E, 0x44, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_44[] = { 0x45, 0x58, 0x43, 0x45, 0x50, 0x54, 0x49, 0x4F, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_45[] = { 0x45, 0x58, 0x43, 0x4C, 0x55, 0x53, 0x49, 0x56, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_46[] = { 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_47[] = { 0x46, 0x41, 0x4C, 0x53, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_48[] = { 0x46, 0x45, 0x54, 0x43, 0x48, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_49[] = { 0x46, 0x4F, 0x52, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_50[] = { 0x46, 0x52, 0x4F, 0x4D, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_51[] = { 0x47, 0x4F, 0x54, 0x4F, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_52[] = { 0x47, 0x52, 0x41, 0x4E, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_53[] = { 0x47, 0x52, 0x4F, 0x55, 0x50, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_54[] = { 0x48, 0x41, 0x56, 0x49, 0x4E, 0x47, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_55[] = { 0x49, 0x44, 0x45, 0x4E, 0x54, 0x49, 0x46, 0x49, 0x45, 0x44, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_56[] = { 0x49, 0x46, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_57[] = { 0x49, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_58[] = { 0x49, 0x4E, 0x44, 0x45, 0x58, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_59[] = { 0x49, 0x4E, 0x44, 0x45, 0x58, 0x45, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_60[] = { 0x49, 0x4E, 0x53, 0x45, 0x52, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_61[] = { 0x49, 0x4E, 0x54, 0x45, 0x52, 0x53, 0x45, 0x43, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_62[] = { 0x49, 0x4E, 0x54, 0x4F, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_63[] = { 0x49, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_64[] = { 0x4C, 0x49, 0x4B, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_65[] = { 0x4C, 0x4F, 0x43, 0x4B, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_66[] = { 0x4D, 0x49, 0x4E, 0x55, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_67[] = { 0x4D, 0x4F, 0x44, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_68[] = { 0x4E, 0x4F, 0x43, 0x4F, 0x4D, 0x50, 0x52, 0x45, 0x53, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_69[] = { 0x4E, 0x4F, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_70[] = { 0x4E, 0x4F, 0x57, 0x41, 0x49, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_71[] = { 0x4E, 0x55, 0x4C, 0x4C, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_72[] = { 0x4F, 0x46, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_73[] = { 0x4F, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_74[] = { 0x4F, 0x50, 0x54, 0x49, 0x4F, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_75[] = { 0x4F, 0x52, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_76[] = { 0x4F, 0x52, 0x44, 0x45, 0x52, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_77[] = { 0x4F, 0x56, 0x45, 0x52, 0x4C, 0x41, 0x50, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_78[] = { 0x50, 0x52, 0x49, 0x4F, 0x52, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_79[] = { 0x50, 0x52, 0x4F, 0x43, 0x45, 0x44, 0x55, 0x52, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_80[] = { 0x50, 0x55, 0x42, 0x4C, 0x49, 0x43, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_81[] = { 0x52, 0x45, 0x53, 0x4F, 0x55, 0x52, 0x43, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_82[] = { 0x52, 0x45, 0x56, 0x4F, 0x4B, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_83[] = { 0x53, 0x45, 0x4C, 0x45, 0x43, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_84[] = { 0x53, 0x48, 0x41, 0x52, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_85[] = { 0x53, 0x49, 0x5A, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_86[] = { 0x53, 0x54, 0x41, 0x52, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_87[] = { 0x54, 0x41, 0x42, 0x41, 0x55, 0x54, 0x48, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_88[] = { 0x54, 0x41, 0x42, 0x4C, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_89[] = { 0x54, 0x48, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_90[] = { 0x54, 0x48, 0x45, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_91[] = { 0x54, 0x4F, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_92[] = { 0x54, 0x52, 0x55, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_93[] = { 0x55, 0x4E, 0x49, 0x4F, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_94[] = { 0x55, 0x4E, 0x49, 0x51, 0x55, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_95[] = { 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_96[] = { 0x56, 0x41, 0x4C, 0x55, 0x45, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_97[] = { 0x56, 0x49, 0x45, 0x57, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_98[] = { 0x56, 0x49, 0x45, 0x57, 0x53, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_99[] = { 0x57, 0x48, 0x45, 0x4E, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_100[] = { 0x57, 0x48, 0x45, 0x52, 0x45, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_101[] = { 0x57, 0x49, 0x54, 0x48, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_102[] = { 0x55, 0x53, 0x49, 0x4E, 0x47, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_103[] = { 0x4D, 0x4F, 0x44, 0x45, 0x4C, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_104[] = { 0x45, 0x4C, 0x53, 0x49, 0x46, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_105[] = { 0x50, 0x49, 0x56, 0x4F, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_106[] = { 0x55, 0x4E, 0x50, 0x49, 0x56, 0x4F, 0x54, antlr3::ANTLR_STRING_TERMINATOR}; -static ANTLR_UCHAR lit_107[] = { 0x40, 0x21, antlr3::ANTLR_STRING_TERMINATOR}; - - } - - - -/* ============================================================================= */ - -/* ============================================================================= - * Start of recognizer - */ - -using namespace antlr3; - - namespace -User - { - - -/* ========================================================================= - * Lexer matching rules end. - * ========================================================================= - */ - - - -// // buffer (queue) to hold the emit()'d tokens -// // private LinkedList<Token> tokenBuffer = new LinkedList<Token>(); - -// // public void emit(Token t) { -// // tokenBuffer.add(t); -// // } - -// // private void advanceInput(){ -// // state.tokenStartCharIndex = input.index(); -// // state.tokenStartCharPositionInLine = input.getCharPositionInLine(); -// // state.tokenStartLine = input.getLine(); -// // } - - - /** - * Return a token from this source; i.e., match a token on the char stream. - */ - // public Token nextToken() { - // while (true) { - // if (tokenBuffer.size() == 0) { - // state.token = null; - // state.channel = Token.DEFAULT_CHANNEL; - // state.tokenStartCharIndex = input.index(); - // state.tokenStartCharPositionInLine = input.getCharPositionInLine(); - // state.tokenStartLine = input.getLine(); - // state.text = null; - // if (input.LA(1) == CharStream.EOF) { - // return Token.EOF_TOKEN; - // } - // try { - // int m = input.mark(); - // state.backtracking = 1; - // state.failed = false; - // mTokens(); - // state.backtracking = 0; - - // if (state.failed) { - // input.rewind(m); - // input.consume(); - // } else { - // emit(); - // } - // } catch (RecognitionException re) { - // // shouldn't happen in backtracking mode, but... - // reportError(re); - // recover(re); - // } - // } else { - // Token result = tokenBuffer.poll(); - // if (result == Token.SKIP_TOKEN || result.getType() == Token.INVALID_TOKEN_TYPE || result == null) - // { - // // discard - // // SKIP & INVALID - // // tokens - // continue; - // } - // return result; - // } - // } - // } - - -PLSQLLexer::~PLSQLLexer() -{ -} - -void -PLSQLLexer::reset() -{ - this->get_rec()->reset(); -} - -/** \brief Name of the grammar file that generated this code - */ -static const char fileName[] = "PLSQLLexer.g"; - -/** \brief Return the name of the grammar file that generated this code. - */ -const char* PLSQLLexer::getGrammarFileName() -{ - return fileName; -} - -/** \brief Create a new lexer called PLSQLLexer - * - * \param[in] instream Pointer to an initialized input stream - * \return - * - Success pPLSQLLexer initialized for the lex start - * - Fail NULL - */ -PLSQLLexer::PLSQLLexer(StreamType* instream) -:PLSQLLexerImplTraits::BaseLexerType(ANTLR_SIZE_HINT, instream, NULL) -{ - // See if we can create a new lexer with the standard constructor - // - this->init(instream ); -} - -/** \brief Create a new lexer called PLSQLLexer - * - * \param[in] instream Pointer to an initialized input stream - * \param[state] state Previously created shared recognizer stat - * \return - * - Success pPLSQLLexer initialized for the lex start - * - Fail NULL - */ -PLSQLLexer::PLSQLLexer(StreamType* instream, RecognizerSharedStateType* state) -:PLSQLLexerImplTraits::BaseLexerType(ANTLR_SIZE_HINT, instream, state) -{ - this->init(instream ); -} - -void PLSQLLexer::init(StreamType* instream) -{ - /* ------------------------------------------------------------------- - * Memory for basic structure is allocated, now to fill in - * in base ANTLR3 structures. We initialize the function pointers - * for the standard ANTLR3 lexer function set, but upon return - * from here, the programmer may set the pointers to provide custom - * implementations of each function. - * - * We don't use the macros defined in PLSQLLexer.h here so you can get a sense - * of what goes where. - */ - -} - - -/* ========================================================================= - * DFA tables for the lexer - */ -/** Static dfa state tables for Cyclic dfa: - * 1:1: Tokens : ( FOR_NOTATION | NATIONAL_CHAR_STRING_LIT | BIT_STRING_LIT | HEX_STRING_LIT | PERIOD | EXACT_NUM_LIT | CHAR_STRING | CHAR_STRING_PERL | DELIMITED_ID | PERCENT | AMPERSAND | LEFT_PAREN | RIGHT_PAREN | DOUBLE_ASTERISK | ASTERISK | PLUS_SIGN | COMMA | SOLIDUS | AT_SIGN | ASSIGN_OP | BINDVAR | COLON | SEMICOLON | LESS_THAN_OR_EQUALS_OP | LESS_THAN_OP | GREATER_THAN_OR_EQUALS_OP | NOT_EQUAL_OP | CARRET_OPERATOR_PART | TILDE_OPERATOR_PART | EXCLAMATION_OPERATOR_PART | GREATER_THAN_OP | CONCATENATION_OP | VERTICAL_BAR | EQUALS_OP | LEFT_BRACKET | RIGHT_BRACKET | INTRODUCER | SEPARATOR | PROMPT | SQL92_RESERVED_ALL | SQL92_RESERVED_ALTER | SQL92_RESERVED_AND | SQL92_RESERVED_ANY | SQL92_RESERVED_AS | SQL92_RESERVED_ASC | SQL92_RESERVED_BEGIN | SQL92_RESERVED_BETWEEN | SQL92_RESERVED_BY | SQL92_RESERVED_CASE | SQL92_RESERVED_CHECK | PLSQL_RESERVED_CLUSTERS | PLSQL_RESERVED_COLAUTH | PLSQL_RESERVED_COMPRESS | SQL92_RESERVED_CONNECT | PLSQL_NON_RESERVED_CONNECT_BY_ROOT | PLSQL_RESERVED_CRASH | SQL92_RESERVED_CREATE | SQL92_RESERVED_CURRENT | SQL92_RESERVED_CURSOR | SQL92_RESERVED_DATE | SQL92_RESERVED_DECLARE | SQL92_RESERVED_DEFAULT | SQL92_RESERVED_DELETE | SQL92_RESERVED_DESC | SQL92_RESERVED_DISTINCT | SQL92_RESERVED_DROP | SQL92_RESERVED_ELSE | SQL92_RESERVED_END | SQL92_RESERVED_EXCEPTION | PLSQL_RESERVED_EXCLUSIVE | SQL92_RESERVED_EXISTS | SQL92_RESERVED_FALSE | SQL92_RESERVED_FETCH | SQL92_RESERVED_FOR | SQL92_RESERVED_FROM | SQL92_RESERVED_GOTO | SQL92_RESERVED_GRANT | SQL92_RESERVED_GROUP | SQL92_RESERVED_HAVING | PLSQL_RESERVED_IDENTIFIED | PLSQL_RESERVED_IF | SQL92_RESERVED_IN | PLSQL_RESERVED_INDEX | PLSQL_RESERVED_INDEXES | SQL92_RESERVED_INSERT | SQL92_RESERVED_INTERSECT | SQL92_RESERVED_INTO | SQL92_RESERVED_IS | SQL92_RESERVED_LIKE | PLSQL_RESERVED_LOCK | PLSQL_RESERVED_MINUS | PLSQL_RESERVED_MODE | PLSQL_RESERVED_NOCOMPRESS | SQL92_RESERVED_NOT | PLSQL_RESERVED_NOWAIT | SQL92_RESERVED_NULL | SQL92_RESERVED_OF | SQL92_RESERVED_ON | SQL92_RESERVED_OPTION | SQL92_RESERVED_OR | SQL92_RESERVED_ORDER | SQL92_RESERVED_OVERLAPS | SQL92_RESERVED_PRIOR | SQL92_RESERVED_PROCEDURE | SQL92_RESERVED_PUBLIC | PLSQL_RESERVED_RESOURCE | SQL92_RESERVED_REVOKE | SQL92_RESERVED_SELECT | PLSQL_RESERVED_SHARE | SQL92_RESERVED_SIZE | PLSQL_RESERVED_START | PLSQL_RESERVED_TABAUTH | SQL92_RESERVED_TABLE | SQL92_RESERVED_THE | SQL92_RESERVED_THEN | SQL92_RESERVED_TO | SQL92_RESERVED_TRUE | SQL92_RESERVED_UNION | SQL92_RESERVED_UNIQUE | SQL92_RESERVED_UPDATE | SQL92_RESERVED_VALUES | SQL92_RESERVED_VIEW | PLSQL_RESERVED_VIEWS | SQL92_RESERVED_WHEN | SQL92_RESERVED_WHERE | SQL92_RESERVED_WITH | PLSQL_NON_RESERVED_USING | PLSQL_NON_RESERVED_MODEL | PLSQL_NON_RESERVED_ELSIF | PLSQL_NON_RESERVED_PIVOT | PLSQL_NON_RESERVED_UNPIVOT | REGULAR_ID | ZV ); - */ -static const ANTLR_INT32 dfa39_eot[511] = - { - -1, 53, 52, 52, 52, 62, -1, 52, -1, -1, -1, -1, -1, 65, -1, -1, 66, 68, - 70, -1, -1, 73, 75, 76, 77, 78, 80, -1, -1, -1, -1, -1, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, -1, -1, - -1, -1, 52, 52, 52, 143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, 153, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 183, 187, 188, 52, 52, 52, 52, 193, 194, 52, 197, 52, 52, 52, 52, 52, 52, - 52, 52, 207, 52, 52, 52, 52, 52, 52, 52, 52, -1, 52, 218, 52, 52, 52, 52, - -1, 52, 52, 52, 52, 228, 52, 230, 231, 232, -1, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 252, 52, 52, 52, 52, 258, 52, - 52, 52, 52, 52, 52, -1, 52, 52, 52, -1, -1, 52, 52, 52, 52, -1, -1, 52, - 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 285, -1, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, -1, 52, 299, 52, 52, 52, 52, 52, 52, 52, -1, 52, -1, -1, - -1, 308, 52, 52, 52, 52, 52, 52, 52, 52, 52, 318, 52, 52, 52, 322, 52, - 324, 325, 52, -1, 52, 52, 52, 52, 52, -1, 332, 333, 52, 52, 52, 52, 52, - 52, 52, 341, 342, 343, 52, 346, 52, 52, 52, 52, 52, 52, 52, 354, 52, 52, - 52, 358, -1, 359, 52, 52, 52, 52, 52, 52, 367, 368, 52, 370, 52, 52, -1, - 373, 52, 52, 52, 377, 52, 379, 380, -1, 381, 52, 52, 52, 52, 386, 52, 52, - 52, -1, 52, 52, 52, -1, 52, -1, -1, 394, 52, 52, 52, 398, 399, -1, -1, - 400, 401, 52, 52, 405, 52, 52, -1, -1, -1, 408, 409, -1, 52, 411, 52, 52, - 52, 52, 416, -1, 417, 52, 419, -1, -1, 420, 52, 52, 52, 424, 52, 426, -1, - -1, 427, -1, 52, 429, -1, 52, 52, 52, -1, 433, -1, -1, -1, 52, 52, 52, - 52, -1, 438, 52, 440, 52, 52, 443, 52, -1, 52, 52, 447, -1, -1, -1, -1, - 448, 52, 52, -1, 451, 52, -1, -1, 453, -1, 52, 52, 456, 457, -1, -1, 52, - -1, -1, 459, 52, 461, -1, 462, -1, -1, 52, -1, 464, -1, 52, -1, 52, 467, - 52, 470, -1, 471, -1, 472, 473, -1, 52, 52, 52, -1, -1, 52, 478, -1, 52, - -1, 52, 52, -1, -1, 482, -1, 483, -1, -1, 52, -1, 52, 486, -1, 487, 52, - -1, -1, -1, -1, 489, 52, 52, 52, -1, 52, 494, 495, -1, -1, 52, 497, -1, - -1, 52, -1, 499, 500, 52, 502, -1, -1, 503, -1, 52, -1, -1, 505, -1, -1, - 52, -1, 52, 52, 52, 510, -1 - }; -static const ANTLR_INT32 dfa39_eof[511] = - { - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1 - }; -static const ANTLR_INT32 dfa39_min[511] = - { - 9, 46, 39, 39, 39, 48, -1, 39, -1, -1, -1, -1, -1, 42, -1, -1, 42, 33, - 34, -1, -1, 61, 61, 61, 61, 61, 124, -1, -1, -1, -1, -1, 73, 76, 39, 65, - 65, 76, 65, 79, 65, 68, 73, 73, 39, 70, 69, 69, 65, 78, 65, 72, -1, -1, - 46, -1, 67, 76, 71, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 73, 66, 86, 76, 68, 35, 83, 69, 85, - 76, 65, 82, 84, 67, 83, 79, 83, 68, 67, 76, 84, 82, 79, 84, 65, 86, 69, - 35, 35, 35, 75, 67, 78, 68, 35, 35, 84, 35, 69, 83, 76, 65, 90, 65, 66, - 69, 35, 85, 73, 68, 73, 76, 69, 69, 84, -1, 79, 35, 65, 76, 73, 87, -1, - 67, 79, 76, 79, 35, 69, 35, 35, 35, -1, 69, 67, 83, 65, 80, 78, 83, 65, - 82, 69, 76, 65, 69, 67, 84, 80, 69, 35, 69, 83, 83, 67, 35, 77, 79, 78, - 85, 73, 78, -1, 69, 69, 69, -1, -1, 69, 75, 85, 69, -1, -1, 73, 69, -1, - 82, 79, 79, 69, 82, 69, 82, 65, 35, -1, 69, 79, 73, 65, 78, 85, 87, 78, - 72, 77, -1, 73, 35, 78, 69, 80, 69, 82, 73, 84, -1, 82, -1, -1, -1, 35, - 75, 84, 85, 82, 69, 72, 84, 69, 79, 35, 65, 85, 84, 35, 73, 35, 35, 70, - -1, 80, 85, 84, 69, 72, -1, 35, 35, 84, 80, 78, 84, 88, 82, 82, 35, 35, - 35, 83, 35, 79, 82, 76, 85, 75, 67, 69, 35, 84, 85, 69, 35, -1, 35, 78, - 85, 86, 84, 71, 69, 35, 35, 69, 35, 80, 84, -1, 35, 69, 84, 68, 35, 67, - 35, 35, -1, 35, 69, 84, 69, 67, 35, 69, 78, 82, -1, 82, 76, 69, -1, 78, - -1, -1, 35, 84, 83, 83, 35, 35, -1, -1, 35, 35, 71, 73, 35, 84, 83, -1, - -1, -1, 35, 35, -1, 78, 35, 65, 82, 69, 84, 35, -1, 35, 84, 35, -1, -1, - 35, 69, 79, 69, 35, 83, 35, -1, -1, 35, -1, 82, 35, -1, 78, 9, 85, -1, - 35, -1, -1, -1, 82, 72, 83, 84, -1, 35, 84, 35, 69, 84, 35, 67, -1, 73, - 73, 35, -1, -1, -1, -1, 35, 70, 83, -1, 35, 69, -1, -1, 35, -1, 80, 67, - 35, 35, -1, -1, 72, -1, -1, 35, 84, 35, -1, 35, -1, -1, 69, -1, 35, -1, - 82, -1, 83, 35, 83, 35, -1, 35, -1, 35, 35, -1, 84, 79, 86, -1, -1, 73, - 35, -1, 67, -1, 83, 69, -1, -1, 35, -1, 35, -1, -1, 83, -1, 69, 35, -1, - 35, 66, -1, -1, -1, -1, 35, 78, 69, 69, -1, 84, 35, 35, -1, -1, 83, 35, - -1, -1, 89, -1, 35, 35, 68, 35, -1, -1, 35, -1, 95, -1, -1, 35, -1, -1, - 82, -1, 79, 79, 84, 35, -1 - }; -static const ANTLR_INT32 dfa39_max[511] = - { - 126, 57, 85, 89, 39, 57, -1, 39, -1, -1, -1, -1, -1, 42, -1, -1, 42, 33, - 122, -1, -1, 62, 61, 61, 61, 61, 124, -1, -1, -1, -1, -1, 85, 83, 39, 85, - 82, 88, 82, 82, 65, 83, 79, 79, 39, 86, 69, 84, 82, 83, 73, 73, -1, -1, - 57, -1, 87, 76, 84, 122, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 79, 66, 86, 84, 89, 122, 83, 69, 85, - 78, 69, 82, 84, 83, 83, 79, 83, 68, 73, 76, 84, 82, 79, 84, 79, 86, 69, - 122, 122, 122, 75, 67, 78, 68, 122, 122, 84, 122, 69, 86, 76, 65, 90, 65, - 66, 69, 122, 85, 80, 68, 73, 76, 69, 69, 84, -1, 79, 122, 65, 76, 73, 87, - -1, 77, 79, 76, 79, 122, 69, 122, 122, 122, -1, 69, 67, 83, 65, 80, 78, - 83, 65, 83, 69, 76, 65, 69, 67, 84, 80, 73, 122, 76, 83, 83, 67, 122, 77, - 79, 78, 85, 73, 78, -1, 69, 69, 79, -1, -1, 69, 75, 85, 69, -1, -1, 73, - 69, -1, 82, 79, 79, 69, 82, 69, 82, 76, 122, -1, 69, 81, 73, 65, 78, 85, - 87, 82, 72, 77, -1, 73, 122, 78, 69, 80, 69, 82, 73, 84, -1, 82, -1, -1, - -1, 122, 75, 84, 85, 82, 69, 72, 84, 69, 79, 122, 65, 85, 84, 122, 73, - 122, 122, 70, -1, 80, 85, 84, 69, 72, -1, 122, 122, 84, 80, 78, 84, 88, - 82, 82, 122, 122, 122, 83, 122, 79, 82, 76, 85, 75, 67, 69, 122, 84, 85, - 69, 122, -1, 122, 78, 85, 86, 84, 71, 69, 122, 122, 69, 122, 80, 84, -1, - 122, 69, 84, 68, 122, 67, 122, 122, -1, 122, 69, 84, 69, 67, 122, 69, 78, - 82, -1, 82, 76, 69, -1, 78, -1, -1, 122, 84, 83, 83, 122, 122, -1, -1, - 122, 122, 71, 73, 122, 84, 83, -1, -1, -1, 122, 122, -1, 78, 122, 65, 82, - 69, 84, 122, -1, 122, 84, 122, -1, -1, 122, 69, 79, 69, 122, 83, 122, -1, - -1, 122, -1, 82, 122, -1, 78, 32, 85, -1, 122, -1, -1, -1, 82, 72, 83, - 84, -1, 122, 84, 122, 69, 84, 122, 67, -1, 73, 73, 122, -1, -1, -1, -1, - 122, 70, 83, -1, 122, 69, -1, -1, 122, -1, 80, 67, 122, 122, -1, -1, 72, - -1, -1, 122, 84, 122, -1, 122, -1, -1, 69, -1, 122, -1, 82, -1, 83, 122, - 83, 122, -1, 122, -1, 122, 122, -1, 84, 79, 86, -1, -1, 73, 122, -1, 67, - -1, 83, 69, -1, -1, 122, -1, 122, -1, -1, 83, -1, 69, 122, -1, 122, 66, - -1, -1, -1, -1, 122, 78, 69, 69, -1, 84, 122, 122, -1, -1, 83, 122, -1, - -1, 89, -1, 122, 122, 68, 122, -1, -1, 122, -1, 95, -1, -1, 122, -1, -1, - 82, -1, 79, 79, 84, 122, -1 - }; -static const ANTLR_INT32 dfa39_accept[511] = - { - -1, -1, -1, -1, -1, -1, 7, -1, 9, 10, 11, 12, 13, -1, 16, 17, -1, -1, -1, - 21, 23, -1, -1, -1, -1, -1, -1, 34, 35, 36, 37, 38, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 132, 6, -1, - 2, -1, -1, -1, -1, 3, 4, 5, 8, 14, 15, 18, 133, 19, 20, 22, 24, 27, 25, - 26, 31, 30, 28, 29, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, 48, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 81, -1, -1, -1, 82, 88, -1, -1, -1, -1, 97, 98, -1, -1, 100, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, 42, 43, 45, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, - -1, -1, -1, -1, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, - 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, 64, -1, 66, 67, - -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, -1, -1, -1, -1, 87, 89, 90, - -1, -1, 92, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, 115, 117, -1, - -1, -1, -1, -1, -1, -1, 122, 124, -1, 126, -1, -1, 46, -1, -1, -1, 103, - -1, 130, 41, 50, -1, -1, -1, -1, 56, -1, -1, -1, -1, -1, -1, -1, 129, -1, - -1, -1, 72, 73, 77, 78, -1, -1, -1, 83, -1, -1, 91, 128, -1, 101, -1, -1, - -1, -1, 109, 111, -1, 113, 118, -1, -1, -1, 127, -1, 123, 125, -1, 95, - -1, 39, -1, 105, -1, -1, -1, -1, 57, -1, 59, -1, -1, 63, -1, -1, -1, 71, - 79, -1, -1, 85, -1, 99, -1, -1, 107, 108, -1, 119, -1, 120, 121, -1, 47, - -1, -1, 52, -1, -1, 54, 58, 61, 62, -1, -1, -1, -1, 84, -1, -1, -1, 112, - 131, -1, -1, 51, 53, -1, 65, -1, -1, -1, -1, 102, 106, -1, 104, -1, 69, - 70, -1, 86, 93, -1, 80, -1, -1, -1, -1, 55 - }; -static const ANTLR_INT32 dfa39_special[511] = - { - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1 - }; - -/** Used when there is no transition table entry for a particular state */ -static const ANTLR_INT32* dfa39_T_empty = NULL; - -static const ANTLR_INT32 dfa39_T0[] = - { - 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, -1, -1, -1, -1, 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 - }; - -static const ANTLR_INT32 dfa39_T1[] = - { - 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 196, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, -1, -1, -1, -1, 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 - }; - -static const ANTLR_INT32 dfa39_T2[] = - { - 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, -1, -1, -1, 69, -1, -1, -1, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, -1, -1, -1, -1, -1, -1, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19 - }; - -static const ANTLR_INT32 dfa39_T3[] = - { - 199, -1, -1, 200 - }; - -static const ANTLR_INT32 dfa39_T4[] = - { - 192 - }; - -static const ANTLR_INT32 dfa39_T5[] = - { - 137, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 138, - -1, -1, 139 - }; - -static const ANTLR_INT32 dfa39_T6[] = - { - 272 - }; - -static const ANTLR_INT32 dfa39_T7[] = - { - 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 345, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, -1, -1, -1, -1, 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 - }; - -static const ANTLR_INT32 dfa39_T8[] = - { - 141, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 142 - }; - -static const ANTLR_INT32 dfa39_T9[] = - { - 157, 158, 159 - }; - -static const ANTLR_INT32 dfa39_T10[] = - { - 205 - }; - -static const ANTLR_INT32 dfa39_T11[] = - { - 282, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 283 - }; - -static const ANTLR_INT32 dfa39_T12[] = - { - 206 - }; - -static const ANTLR_INT32 dfa39_T13[] = - { - 160, -1, -1, -1, 161 - }; - -static const ANTLR_INT32 dfa39_T14[] = - { - 437 - }; - -static const ANTLR_INT32 dfa39_T15[] = - { - 385 - }; - -static const ANTLR_INT32 dfa39_T16[] = - { - 313 - }; - -static const ANTLR_INT32 dfa39_T17[] = - { - 238 - }; - -static const ANTLR_INT32 dfa39_T18[] = - { - 287, -1, 288 - }; - -static const ANTLR_INT32 dfa39_T19[] = - { - 97, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99 - }; - -static const ANTLR_INT32 dfa39_T20[] = - { - 234 - }; - -static const ANTLR_INT32 dfa39_T21[] = - { - 326 - }; - -static const ANTLR_INT32 dfa39_T22[] = - { - 155 - }; - -static const ANTLR_INT32 dfa39_T23[] = - { - 233 - }; - -static const ANTLR_INT32 dfa39_T24[] = - { - 235 - }; - -static const ANTLR_INT32 dfa39_T25[] = - { - 306 - }; - -static const ANTLR_INT32 dfa39_T26[] = - { - 227 - }; - -static const ANTLR_INT32 dfa39_T27[] = - { - 156 - }; - -static const ANTLR_INT32 dfa39_T28[] = - { - 147 - }; - -static const ANTLR_INT32 dfa39_T29[] = - { - 309 - }; - -static const ANTLR_INT32 dfa39_T30[] = - { - 289 - }; - -static const ANTLR_INT32 dfa39_T31[] = - { - 362 - }; - -static const ANTLR_INT32 dfa39_T32[] = - { - 434 - }; - -static const ANTLR_INT32 dfa39_T33[] = - { - 466 - }; - -static const ANTLR_INT32 dfa39_T34[] = - { - 72 - }; - -static const ANTLR_INT32 dfa39_T35[] = - { - 310 - }; - -static const ANTLR_INT32 dfa39_T36[] = - { - 422 - }; - -static const ANTLR_INT32 dfa39_T37[] = - { - 460 - }; - -static const ANTLR_INT32 dfa39_T38[] = - { - 382 - }; - -static const ANTLR_INT32 dfa39_T39[] = - { - 383 - }; - -static const ANTLR_INT32 dfa39_T40[] = - { - 435 - }; - -static const ANTLR_INT32 dfa39_T41[] = - { - 236 - }; - -static const ANTLR_INT32 dfa39_T42[] = - { - 311 - }; - -static const ANTLR_INT32 dfa39_T43[] = - { - 31 - }; - -static const ANTLR_INT32 dfa39_T44[] = - { - 221 - }; - -static const ANTLR_INT32 dfa39_T45[] = - { - 300 - }; - -static const ANTLR_INT32 dfa39_T46[] = - { - 430 - }; - -static const ANTLR_INT32 dfa39_T47[] = - { - 222 - }; - -static const ANTLR_INT32 dfa39_T48[] = - { - 301 - }; - -static const ANTLR_INT32 dfa39_T49[] = - { - 374 - }; - -static const ANTLR_INT32 dfa39_T50[] = - { - 113, -1, -1, -1, -1, -1, 114 - }; - -static const ANTLR_INT32 dfa39_T51[] = - { - 154 - }; - -static const ANTLR_INT32 dfa39_T52[] = - { - 508 - }; - -static const ANTLR_INT32 dfa39_T53[] = - { - 507 - }; - -static const ANTLR_INT32 dfa39_T54[] = - { - 506 - }; - -static const ANTLR_INT32 dfa39_T55[] = - { - 504 - }; - -static const ANTLR_INT32 dfa39_T56[] = - { - 425 - }; - -static const ANTLR_INT32 dfa39_T57[] = - { - 365 - }; - -static const ANTLR_INT32 dfa39_T58[] = - { - 292 - }; - -static const ANTLR_INT32 dfa39_T59[] = - { - 213 - }; - -static const ANTLR_INT32 dfa39_T60[] = - { - 509 - }; - -static const ANTLR_INT32 dfa39_T61[] = - { - 239 - }; - -static const ANTLR_INT32 dfa39_T62[] = - { - 314 - }; - -static const ANTLR_INT32 dfa39_T63[] = - { - 240 - }; - -static const ANTLR_INT32 dfa39_T64[] = - { - 315 - }; - -static const ANTLR_INT32 dfa39_T65[] = - { - 387 - }; - -static const ANTLR_INT32 dfa39_T66[] = - { - 388 - }; - -static const ANTLR_INT32 dfa39_T67[] = - { - 439 - }; - -static const ANTLR_INT32 dfa39_T68[] = - { - 316 - }; - -static const ANTLR_INT32 dfa39_T69[] = - { - 31, 31, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 31, 23, 8, -1, -1, 9, 10, 6, 11, 12, 13, 14, 15, 31, - 5, 16, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 18, 20, 21, 27, 22, 19, 17, 33, 3, - 35, 36, 37, 38, 39, 40, 41, 52, 52, 42, 43, 2, 45, 32, 7, 46, 47, 48, 49, - 50, 51, 4, 52, 52, 28, -1, 29, 24, 30, -1, 52, 34, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 44, 52, 52, 7, 52, 52, 52, 52, 52, 52, 4, 52, 52, - -1, 26, -1, 25 - }; - -static const ANTLR_INT32 dfa39_T70[] = - { - 312 - }; - -static const ANTLR_INT32 dfa39_T71[] = - { - 237 - }; - -static const ANTLR_INT32 dfa39_T72[] = - { - 436 - }; - -static const ANTLR_INT32 dfa39_T73[] = - { - 369 - }; - -static const ANTLR_INT32 dfa39_T74[] = - { - 384 - }; - -static const ANTLR_INT32 dfa39_T75[] = - { - 468 - }; - -static const ANTLR_INT32 dfa39_T76[] = - { - 212 - }; - -static const ANTLR_INT32 dfa39_T77[] = - { - 296 - }; - -static const ANTLR_INT32 dfa39_T78[] = - { - 216 - }; - -static const ANTLR_INT32 dfa39_T79[] = - { - 431, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 431 - }; - -static const ANTLR_INT32 dfa39_T80[] = - { - 291 - }; - -static const ANTLR_INT32 dfa39_T81[] = - { - 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 284, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, -1, -1, -1, -1, 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 - }; - -static const ANTLR_INT32 dfa39_T82[] = - { - 364 - }; - -static const ANTLR_INT32 dfa39_T83[] = - { - 488 - }; - -static const ANTLR_INT32 dfa39_T84[] = - { - 498 - }; - -static const ANTLR_INT32 dfa39_T85[] = - { - 170 - }; - -static const ANTLR_INT32 dfa39_T86[] = - { - 148, -1, -1, -1, -1, -1, -1, -1, 149 - }; - -static const ANTLR_INT32 dfa39_T87[] = - { - 250, -1, -1, -1, 251 - }; - -static const ANTLR_INT32 dfa39_T88[] = - { - 375 - }; - -static const ANTLR_INT32 dfa39_T89[] = - { - 302 - }; - -static const ANTLR_INT32 dfa39_T90[] = - { - 209, -1, -1, -1, -1, -1, -1, 210 - }; - -static const ANTLR_INT32 dfa39_T91[] = - { - 79 - }; - -static const ANTLR_INT32 dfa39_T92[] = - { - 150, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 151 - }; - -static const ANTLR_INT32 dfa39_T93[] = - { - 229 - }; - -static const ANTLR_INT32 dfa39_T94[] = - { - 307 - }; - -static const ANTLR_INT32 dfa39_T95[] = - { - 87, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, 89, -1, -1, 90, -1, -1, 91, - -1, -1, 92 - }; - -static const ANTLR_INT32 dfa39_T96[] = - { - 115, -1, -1, -1, -1, -1, -1, -1, 116, -1, 117, -1, 118, -1, -1, -1, 119 - }; - -static const ANTLR_INT32 dfa39_T97[] = - { - 84, -1, 85, -1, -1, -1, -1, 86 - }; - -static const ANTLR_INT32 dfa39_T98[] = - { - 54, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - }; - -static const ANTLR_INT32 dfa39_T99[] = - { - 74 - }; - -static const ANTLR_INT32 dfa39_T100[] = - { - 145, -1, -1, -1, -1, -1, 144 - }; - -static const ANTLR_INT32 dfa39_T101[] = - { - 376 - }; - -static const ANTLR_INT32 dfa39_T102[] = - { - 432 - }; - -static const ANTLR_INT32 dfa39_T103[] = - { - 303 - }; - -static const ANTLR_INT32 dfa39_T104[] = - { - 146 - }; - -static const ANTLR_INT32 dfa39_T105[] = - { - 465 - }; - -static const ANTLR_INT32 dfa39_T106[] = - { - 485 - }; - -static const ANTLR_INT32 dfa39_T107[] = - { - 55 - }; - -static const ANTLR_INT32 dfa39_T108[] = - { - 480 - }; - -static const ANTLR_INT32 dfa39_T109[] = - { - 454 - }; - -static const ANTLR_INT32 dfa39_T110[] = - { - 412 - }; - -static const ANTLR_INT32 dfa39_T111[] = - { - 349 - }; - -static const ANTLR_INT32 dfa39_T112[] = - { - 275 - }; - -static const ANTLR_INT32 dfa39_T113[] = - { - 198 - }; - -static const ANTLR_INT32 dfa39_T114[] = - { - 136, -1, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53 - }; - -static const ANTLR_INT32 dfa39_T115[] = - { - 304 - }; - -static const ANTLR_INT32 dfa39_T116[] = - { - 225 - }; - -static const ANTLR_INT32 dfa39_T117[] = - { - 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 366, 52, 52, 52, 52, 52, - 52, 52, -1, -1, -1, -1, 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 - }; - -static const ANTLR_INT32 dfa39_T118[] = - { - 274 - }; - -static const ANTLR_INT32 dfa39_T119[] = - { - 348 - }; - -static const ANTLR_INT32 dfa39_T120[] = - { - 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 152, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, -1, -1, -1, -1, 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 - }; - -static const ANTLR_INT32 dfa39_T121[] = - { - 410 - }; - -static const ANTLR_INT32 dfa39_T122[] = - { - 347 - }; - -static const ANTLR_INT32 dfa39_T123[] = - { - 107, -1, 108, -1, -1, -1, -1, -1, -1, -1, 109, -1, -1, -1, -1, 110 - }; - -static const ANTLR_INT32 dfa39_T124[] = - { - 273 - }; - -static const ANTLR_INT32 dfa39_T125[] = - { - 195 - }; - -static const ANTLR_INT32 dfa39_T126[] = - { - 298 - }; - -static const ANTLR_INT32 dfa39_T127[] = - { - 372 - }; - -static const ANTLR_INT32 dfa39_T128[] = - { - 219 - }; - -static const ANTLR_INT32 dfa39_T129[] = - { - 220 - }; - -static const ANTLR_INT32 dfa39_T130[] = - { - 140 - }; - -static const ANTLR_INT32 dfa39_T131[] = - { - 111, -1, -1, -1, -1, -1, 112 - }; - -static const ANTLR_INT32 dfa39_T132[] = - { - 484 - }; - -static const ANTLR_INT32 dfa39_T133[] = - { - 463 - }; - -static const ANTLR_INT32 dfa39_T134[] = - { - 428 - }; - -static const ANTLR_INT32 dfa39_T135[] = - { - 371 - }; - -static const ANTLR_INT32 dfa39_T136[] = - { - 496 - }; - -static const ANTLR_INT32 dfa39_T137[] = - { - 104, -1, -1, 105 - }; - -static const ANTLR_INT32 dfa39_T138[] = - { - 344 - }; - -static const ANTLR_INT32 dfa39_T139[] = - { - 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 404, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, -1, -1, -1, -1, 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 - }; - -static const ANTLR_INT32 dfa39_T140[] = - { - 63 - }; - -static const ANTLR_INT32 dfa39_T141[] = - { - 217 - }; - -static const ANTLR_INT32 dfa39_T142[] = - { - 297 - }; - -static const ANTLR_INT32 dfa39_T143[] = - { - 269 - }; - -static const ANTLR_INT32 dfa39_T144[] = - { - 179, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180 - }; - -static const ANTLR_INT32 dfa39_T145[] = - { - 189 - }; - -static const ANTLR_INT32 dfa39_T146[] = - { - 64 - }; - -static const ANTLR_INT32 dfa39_T147[] = - { - 190 - }; - -static const ANTLR_INT32 dfa39_T148[] = - { - 270 - }; - -static const ANTLR_INT32 dfa39_T149[] = - { - 271 - }; - -static const ANTLR_INT32 dfa39_T150[] = - { - 191 - }; - -static const ANTLR_INT32 dfa39_T151[] = - { - 338 - }; - -static const ANTLR_INT32 dfa39_T152[] = - { - 423 - }; - -static const ANTLR_INT32 dfa39_T153[] = - { - 363 - }; - -static const ANTLR_INT32 dfa39_T154[] = - { - 290 - }; - -static const ANTLR_INT32 dfa39_T155[] = - { - 211 - }; - -static const ANTLR_INT32 dfa39_T156[] = - { - 421 - }; - -static const ANTLR_INT32 dfa39_T157[] = - { - 361 - }; - -static const ANTLR_INT32 dfa39_T158[] = - { - 360 - }; - -static const ANTLR_INT32 dfa39_T159[] = - { - 129, -1, 130, -1, -1, 131 - }; - -static const ANTLR_INT32 dfa39_T160[] = - { - 265 - }; - -static const ANTLR_INT32 dfa39_T161[] = - { - 208 - }; - -static const ANTLR_INT32 dfa39_T162[] = - { - 286 - }; - -static const ANTLR_INT32 dfa39_T163[] = - { - 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 56, -1, -1, -1, -1, -1, 57 - }; - -static const ANTLR_INT32 dfa39_T164[] = - { - 172, -1, -1, -1, -1, -1, 173 - }; - -static const ANTLR_INT32 dfa39_T165[] = - { - 357 - }; - -static const ANTLR_INT32 dfa39_T166[] = - { - 61 - }; - -static const ANTLR_INT32 dfa39_T167[] = - { - 458 - }; - -static const ANTLR_INT32 dfa39_T168[] = - { - 418 - }; - -static const ANTLR_INT32 dfa39_T169[] = - { - 356 - }; - -static const ANTLR_INT32 dfa39_T170[] = - { - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53 - }; - -static const ANTLR_INT32 dfa39_T171[] = - { - 355 - }; - -static const ANTLR_INT32 dfa39_T172[] = - { - 281 - }; - -static const ANTLR_INT32 dfa39_T173[] = - { - 204 - }; - -static const ANTLR_INT32 dfa39_T174[] = - { - 106 - }; - -static const ANTLR_INT32 dfa39_T175[] = - { - 280 - }; - -static const ANTLR_INT32 dfa39_T176[] = - { - 203 - }; - -static const ANTLR_INT32 dfa39_T177[] = - { - 279 - }; - -static const ANTLR_INT32 dfa39_T178[] = - { - 353 - }; - -static const ANTLR_INT32 dfa39_T179[] = - { - 267, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268 - }; - -static const ANTLR_INT32 dfa39_T180[] = - { - 202 - }; - -static const ANTLR_INT32 dfa39_T181[] = - { - 278 - }; - -static const ANTLR_INT32 dfa39_T182[] = - { - 201 - }; - -static const ANTLR_INT32 dfa39_T183[] = - { - 415 - }; - -static const ANTLR_INT32 dfa39_T184[] = - { - 352 - }; - -static const ANTLR_INT32 dfa39_T185[] = - { - 351 - }; - -static const ANTLR_INT32 dfa39_T186[] = - { - 125, -1, -1, -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, 127, -1, -1, - 128 - }; - -static const ANTLR_INT32 dfa39_T187[] = - { - 277 - }; - -static const ANTLR_INT32 dfa39_T188[] = - { - 414 - }; - -static const ANTLR_INT32 dfa39_T189[] = - { - 276 - }; - -static const ANTLR_INT32 dfa39_T190[] = - { - 350 - }; - -static const ANTLR_INT32 dfa39_T191[] = - { - 413 - }; - -static const ANTLR_INT32 dfa39_T192[] = - { - 455 - }; - -static const ANTLR_INT32 dfa39_T193[] = - { - 67 - }; - -static const ANTLR_INT32 dfa39_T194[] = - { - 481 - }; - -static const ANTLR_INT32 dfa39_T195[] = - { - 226 - }; - -static const ANTLR_INT32 dfa39_T196[] = - { - 305 - }; - -static const ANTLR_INT32 dfa39_T197[] = - { - 378 - }; - -static const ANTLR_INT32 dfa39_T198[] = - { - 164, -1, -1, 165, -1, -1, -1, -1, -1, 166, -1, -1, -1, -1, -1, -1, 167 - }; - -static const ANTLR_INT32 dfa39_T199[] = - { - 396 - }; - -static const ANTLR_INT32 dfa39_T200[] = - { - 328 - }; - -static const ANTLR_INT32 dfa39_T201[] = - { - 476 - }; - -static const ANTLR_INT32 dfa39_T202[] = - { - 446 - }; - -static const ANTLR_INT32 dfa39_T203[] = - { - 491 - }; - -static const ANTLR_INT32 dfa39_T204[] = - { - 255 - }; - -static const ANTLR_INT32 dfa39_T205[] = - { - 329 - }; - -static const ANTLR_INT32 dfa39_T206[] = - { - 397 - }; - -static const ANTLR_INT32 dfa39_T207[] = - { - 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, -1, -1, -1, -1, 469, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 - }; - -static const ANTLR_INT32 dfa39_T208[] = - { - 174 - }; - -static const ANTLR_INT32 dfa39_T209[] = - { - 256 - }; - -static const ANTLR_INT32 dfa39_T210[] = - { - 330 - }; - -static const ANTLR_INT32 dfa39_T211[] = - { - 162 - }; - -static const ANTLR_INT32 dfa39_T212[] = - { - 249 - }; - -static const ANTLR_INT32 dfa39_T213[] = - { - 100, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, -1, -1, - 103 - }; - -static const ANTLR_INT32 dfa39_T214[] = - { - 132, -1, -1, -1, -1, -1, -1, -1, 133 - }; - -static const ANTLR_INT32 dfa39_T215[] = - { - 169 - }; - -static const ANTLR_INT32 dfa39_T216[] = - { - 241, 242 - }; - -static const ANTLR_INT32 dfa39_T217[] = - { - 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, 184, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 185, 186, 52, 52, 52, 52, - 52, 52, -1, -1, -1, -1, 52, -1, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 - }; - -static const ANTLR_INT32 dfa39_T218[] = - { - 171 - }; - -static const ANTLR_INT32 dfa39_T219[] = - { - 490 - }; - -static const ANTLR_INT32 dfa39_T220[] = - { - 445 - }; - -static const ANTLR_INT32 dfa39_T221[] = - { - 475 - }; - -static const ANTLR_INT32 dfa39_T222[] = - { - 327 - }; - -static const ANTLR_INT32 dfa39_T223[] = - { - 395 - }; - -static const ANTLR_INT32 dfa39_T224[] = - { - 83, -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, -1, 82 - }; - -static const ANTLR_INT32 dfa39_T225[] = - { - 320 - }; - -static const ANTLR_INT32 dfa39_T226[] = - { - 245 - }; - -static const ANTLR_INT32 dfa39_T227[] = - { - 442 - }; - -static const ANTLR_INT32 dfa39_T228[] = - { - 391 - }; - -static const ANTLR_INT32 dfa39_T229[] = - { - 120 - }; - -static const ANTLR_INT32 dfa39_T230[] = - { - 321 - }; - -static const ANTLR_INT32 dfa39_T231[] = - { - 246 - }; - -static const ANTLR_INT32 dfa39_T232[] = - { - 392 - }; - -static const ANTLR_INT32 dfa39_T233[] = - { - 247 - }; - -static const ANTLR_INT32 dfa39_T234[] = - { - 168 - }; - -static const ANTLR_INT32 dfa39_T235[] = - { - 248 - }; - -static const ANTLR_INT32 dfa39_T236[] = - { - 323 - }; - -static const ANTLR_INT32 dfa39_T237[] = - { - 393 - }; - -static const ANTLR_INT32 dfa39_T238[] = - { - 444 - }; - -static const ANTLR_INT32 dfa39_T239[] = - { - 474 - }; - -static const ANTLR_INT32 dfa39_T240[] = - { - 134, 135 - }; - -static co... [truncated message content] |
From: <ibr...@us...> - 2012-03-21 16:16:51
|
Revision: 4248 http://tora.svn.sourceforge.net/tora/?rev=4248&view=rev Author: ibre5041 Date: 2012-03-21 16:16:45 +0000 (Wed, 21 Mar 2012) Log Message: ----------- LT->getType => LA Modified Paths: -------------- branches/tora-trotl/sandbox.cpp/PLSQLCommons.g branches/tora-trotl/sandbox.cpp/PLSQL_DMLParser.g Modified: branches/tora-trotl/sandbox.cpp/PLSQLCommons.g =================================================================== --- branches/tora-trotl/sandbox.cpp/PLSQLCommons.g 2012-03-20 21:26:28 UTC (rev 4247) +++ branches/tora-trotl/sandbox.cpp/PLSQLCommons.g 2012-03-21 16:16:45 UTC (rev 4248) @@ -197,7 +197,7 @@ tableview_name : id ((PERIOD id_expression)=> PERIOD id_expression)? ( AT_SIGN link_name - | {!(LT(2)->getType() == SQL92_RESERVED_BY)}?=> partition_extension_clause + | {!(LA(2) == SQL92_RESERVED_BY)}?=> partition_extension_clause )? ; Modified: branches/tora-trotl/sandbox.cpp/PLSQL_DMLParser.g =================================================================== --- branches/tora-trotl/sandbox.cpp/PLSQL_DMLParser.g 2012-03-20 21:26:28 UTC (rev 4247) +++ branches/tora-trotl/sandbox.cpp/PLSQL_DMLParser.g 2012-03-21 16:16:45 UTC (rev 4248) @@ -772,13 +772,11 @@ | prior_key unary_expression | connect_by_root_key unary_expression | { // input.LT(1).getText().equalsIgnoreCase("new") && !input.LT(2).getText().equals(".")}? - equalsIgnoreCase(LT(1)->getText(), "new") && !equalsIgnoreCase(LT(2)->getText(), "." ) + equalsIgnoreCase(LT(1)->getText(), "NEW") && !equalsIgnoreCase(LT(2)->getText(), "." ) }? => new_key unary_expression | distinct_key unary_expression | all_key unary_expression - | { // (input.LA(1) == SQL92_RESERVED_CASE || input.LA(2) == SQL92_RESERVED_CASE)}? - LT(1)->getType() == SQL92_RESERVED_CASE || LT(2)->getType() == SQL92_RESERVED_CASE - }? case_statement[false] + | { LA(1) == SQL92_RESERVED_CASE || LA(2) == SQL92_RESERVED_CASE }? case_statement[false] | quantified_expression | standard_function | atom @@ -919,7 +917,7 @@ LEFT_PAREN (entityescaping_key|noentityescaping_key)? (name_key|evalname_key)? expression_wrapper - ({equalsIgnoreCase(LT(2)->getText(), "xmlattributes")}? COMMA xml_attributes_clause)? + ({equalsIgnoreCase(LT(2)->getText(), "XMLATTRIBUTES")}? COMMA xml_attributes_clause)? (COMMA expression_wrapper column_alias?)* RIGHT_PAREN (PERIOD general_element_part)? This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2012-04-04 08:08:56
|
Revision: 4257 http://tora.svn.sourceforge.net/tora/?rev=4257&view=rev Author: ibre5041 Date: 2012-04-04 08:08:49 +0000 (Wed, 04 Apr 2012) Log Message: ----------- MSVC port Modified Paths: -------------- branches/tora-trotl/sandbox.cpp/t1.cpp branches/tora-trotl/sandbox.cpp/utils.cpp branches/tora-trotl/sandbox.cpp/utils.hpp Modified: branches/tora-trotl/sandbox.cpp/t1.cpp =================================================================== --- branches/tora-trotl/sandbox.cpp/t1.cpp 2012-03-30 23:31:37 UTC (rev 4256) +++ branches/tora-trotl/sandbox.cpp/t1.cpp 2012-04-04 08:08:49 UTC (rev 4257) @@ -133,7 +133,11 @@ // (Use antlr3AsciiFileStreamNew for UCS2/16bit input). // ///byIvan input = new PLSQLTraits::InputStreamType(fName, ANTLR_ENC_8BIT); +#if defined __linux string data = Utils::slurp(fd); +#else + string data = Utils::slurp(fName); +#endif input = new PLSQLTraits::InputStreamType((const ANTLR_UINT8 *)data.c_str(), ANTLR_ENC_8BIT, data.length(), //strlen(data.c_str()), Modified: branches/tora-trotl/sandbox.cpp/utils.cpp =================================================================== --- branches/tora-trotl/sandbox.cpp/utils.cpp 2012-03-30 23:31:37 UTC (rev 4256) +++ branches/tora-trotl/sandbox.cpp/utils.cpp 2012-04-04 08:08:49 UTC (rev 4257) @@ -1,8 +1,23 @@ #include "utils.hpp" -#include <dirent.h> +#include "dirent.h" #include <stdio.h> -#define DIRDELIM '/' +#if defined __linux +# include <sys/mman.h> +# define DIRDELIM '/' +#elif _MSC_VER +# define _CRT_SECURE_NO_WARNINGS 1 +# include <iostream> +# include <fstream> +# include <sstream> +# include <io.h> //_open +# define open _open +# define close _close +# define strerror _strerror +# define O_RDONLY _O_RDONLY +# define fstat fstat +#define DIRDELIM '\\' +#endif extern void parseFile(const char* fName, int fd); @@ -13,21 +28,24 @@ string slurp(int fd); string slurp(string const& fileName) { - int fd; - fd = open( fileName.c_str(), O_RDONLY); - return slurp(fd); +#if defined __linux + //int fd; + //fd = open( fileName.c_str(), O_RDONLY); + //return slurp(fd); +#else + ifstream ifs(fileName.c_str(), ios::in | ios::binary | ios::ate); + ifstream::pos_type fileSize = ifs.tellg(); + ifs.seekg(0, ios::beg); + + stringstream sstr; + sstr << ifs.rdbuf(); + return sstr.str(); +#endif } string slurp(int fd) - { - // ifstream ifs(fileName.c_str(), ios::in | ios::binary | ios::ate); - // ifstream::pos_type fileSize = ifs.tellg(); - // ifs.seekg(0, ios::beg); - - // stringstream sstr; - // sstr << ifs.rdbuf(); - // return sstr.str(); - + { +#if defined __linux struct stat sb; const char *txt; @@ -36,19 +54,25 @@ string retval(txt); munmap( (void*)txt, sb.st_size); return retval; +#else + return ""; +#endif } void processDir(const char * directory) { int fd; - struct stat sb; - char buf[2048]; - struct dirent * dirfil; fd = open( directory, O_RDONLY); + //if ( fd == -1) + //{ + // fprintf( stderr, _strerror(NULL) ); + // exit(-1); + //} processDir(directory, fd); - close(fd); + if ( fd != -1) + close(fd); } void processDir(const char * directory, int fd) @@ -57,10 +81,15 @@ char buf[2048]; struct dirent * dirfil; - fstat( fd, &sb); - if( isDirectory(sb)) + if ( fd != -1) + fstat( fd, &sb); + if( isDirectory(directory, sb)) { +#if defined __linux DIR *Hdir = fdopendir(fd); +#else + DIR *Hdir = opendir(directory); +#endif do { int fds; @@ -83,7 +112,7 @@ fds = open( buf, O_RDONLY); fstat( fds, &sbs); - if ( isDirectory(sbs)) + if (buf, isDirectory(buf, sbs)) { // This was a directory too, close the reference here, and call // ourselves recursively, to process this subdirectory @@ -109,8 +138,18 @@ } } - bool isDirectory(struct stat const& sb) + bool isDirectory(const char * directory, struct stat const& sb) { +#if defined __linux return S_ISDIR(sb.st_mode); +#else + DIR* dir = opendir(directory); + if (dir == NULL) { + return false; + } else { + closedir(dir); + return true; + } +#endif } } Modified: branches/tora-trotl/sandbox.cpp/utils.hpp =================================================================== --- branches/tora-trotl/sandbox.cpp/utils.hpp 2012-03-30 23:31:37 UTC (rev 4256) +++ branches/tora-trotl/sandbox.cpp/utils.hpp 2012-04-04 08:08:49 UTC (rev 4257) @@ -4,7 +4,6 @@ #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> -#include <sys/mman.h> #include <string> @@ -17,7 +16,7 @@ void processDir(const char * directory); - bool isDirectory(struct stat const& sb); + bool isDirectory(const char * director, struct stat const& sb); }; #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2012-04-04 08:28:38
|
Revision: 4258 http://tora.svn.sourceforge.net/tora/?rev=4258&view=rev Author: ibre5041 Date: 2012-04-04 08:28:26 +0000 (Wed, 04 Apr 2012) Log Message: ----------- MSVC port Added Paths: ----------- branches/tora-trotl/sandbox.cpp/PLSQLCommons.tokens branches/tora-trotl/sandbox.cpp/PLSQLKeys.tokens branches/tora-trotl/sandbox.cpp/PLSQLLexer.cpp branches/tora-trotl/sandbox.cpp/PLSQLLexer.hpp branches/tora-trotl/sandbox.cpp/PLSQLLexer.tokens branches/tora-trotl/sandbox.cpp/PLSQLParser.cpp branches/tora-trotl/sandbox.cpp/PLSQLParser.hpp branches/tora-trotl/sandbox.cpp/PLSQLParser.tokens branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQLCommons.cpp branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQLCommons.hpp branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQLKeys.cpp branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQLKeys.hpp branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQL_DMLParser.cpp branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQL_DMLParser.hpp branches/tora-trotl/sandbox.cpp/PLSQLParser_SQLPLUSParser.cpp branches/tora-trotl/sandbox.cpp/PLSQLParser_SQLPLUSParser.hpp branches/tora-trotl/sandbox.cpp/PLSQL_DMLParser.tokens branches/tora-trotl/sandbox.cpp/SQLPLUSParser.tokens branches/tora-trotl/sandbox.cpp/dirent.h branches/tora-trotl/sandbox.cpp/sandbox.cpp.vcxproj Added: branches/tora-trotl/sandbox.cpp/PLSQLCommons.tokens =================================================================== --- branches/tora-trotl/sandbox.cpp/PLSQLCommons.tokens (rev 0) +++ branches/tora-trotl/sandbox.cpp/PLSQLCommons.tokens 2012-04-04 08:28:26 UTC (rev 4258) @@ -0,0 +1,150 @@ +AMPERSAND=4 +APPROXIMATE_NUM_LIT=5 +ASSIGN_OP=6 +ASTERISK=7 +AT_SIGN=8 +BINDVAR=9 +BIT_STRING_LIT=10 +CARRET_OPERATOR_PART=11 +CHAR_STRING=12 +CHAR_STRING_PERL=13 +COLON=14 +COMMA=15 +COMMENT=16 +CONCATENATION_OP=17 +DELIMITED_ID=18 +DOUBLE_ASTERISK=19 +DOUBLE_PERIOD=20 +EQUALS_OP=21 +EXACT_NUM_LIT=22 +EXCLAMATION_OPERATOR_PART=23 +FOR_NOTATION=24 +GREATER_THAN_OP=25 +GREATER_THAN_OR_EQUALS_OP=26 +HEX_STRING_LIT=27 +INTRODUCER=28 +LEFT_BRACKET=29 +LEFT_PAREN=30 +LESS_THAN_OP=31 +LESS_THAN_OR_EQUALS_OP=32 +MINUS_SIGN=33 +NATIONAL_CHAR_STRING_LIT=34 +NEWLINE=35 +NOT_EQUAL_OP=36 +PERCENT=37 +PERIOD=38 +PLSQL_NON_RESERVED_CONNECT_BY_ROOT=39 +PLSQL_NON_RESERVED_ELSIF=40 +PLSQL_NON_RESERVED_MODEL=41 +PLSQL_NON_RESERVED_PIVOT=42 +PLSQL_NON_RESERVED_UNPIVOT=43 +PLSQL_NON_RESERVED_USING=44 +PLSQL_RESERVED_CLUSTERS=45 +PLSQL_RESERVED_COLAUTH=46 +PLSQL_RESERVED_COMPRESS=47 +PLSQL_RESERVED_CRASH=48 +PLSQL_RESERVED_EXCLUSIVE=49 +PLSQL_RESERVED_IDENTIFIED=50 +PLSQL_RESERVED_IF=51 +PLSQL_RESERVED_INDEX=52 +PLSQL_RESERVED_INDEXES=53 +PLSQL_RESERVED_LOCK=54 +PLSQL_RESERVED_MINUS=55 +PLSQL_RESERVED_MODE=56 +PLSQL_RESERVED_NOCOMPRESS=57 +PLSQL_RESERVED_NOWAIT=58 +PLSQL_RESERVED_RESOURCE=59 +PLSQL_RESERVED_SHARE=60 +PLSQL_RESERVED_START=61 +PLSQL_RESERVED_TABAUTH=62 +PLSQL_RESERVED_VIEWS=63 +PLUS_SIGN=64 +PROMPT=65 +QS_ANGLE=66 +QS_BRACE=67 +QS_BRACK=68 +QS_OTHER=69 +QS_OTHER_CH=70 +QS_PAREN=71 +QUESTION_MARK=72 +QUOTE=73 +REGULAR_ID=74 +RIGHT_BRACKET=75 +RIGHT_PAREN=76 +SEMICOLON=77 +SEPARATOR=78 +SIMPLE_LETTER=79 +SOLIDUS=80 +SPACE=81 +SQL92_RESERVED_ALL=82 +SQL92_RESERVED_ALTER=83 +SQL92_RESERVED_AND=84 +SQL92_RESERVED_ANY=85 +SQL92_RESERVED_AS=86 +SQL92_RESERVED_ASC=87 +SQL92_RESERVED_BEGIN=88 +SQL92_RESERVED_BETWEEN=89 +SQL92_RESERVED_BY=90 +SQL92_RESERVED_CASE=91 +SQL92_RESERVED_CHECK=92 +SQL92_RESERVED_CONNECT=93 +SQL92_RESERVED_CREATE=94 +SQL92_RESERVED_CURRENT=95 +SQL92_RESERVED_CURSOR=96 +SQL92_RESERVED_DATE=97 +SQL92_RESERVED_DECLARE=98 +SQL92_RESERVED_DEFAULT=99 +SQL92_RESERVED_DELETE=100 +SQL92_RESERVED_DESC=101 +SQL92_RESERVED_DISTINCT=102 +SQL92_RESERVED_DROP=103 +SQL92_RESERVED_ELSE=104 +SQL92_RESERVED_END=105 +SQL92_RESERVED_EXCEPTION=106 +SQL92_RESERVED_EXISTS=107 +SQL92_RESERVED_FALSE=108 +SQL92_RESERVED_FETCH=109 +SQL92_RESERVED_FOR=110 +SQL92_RESERVED_FROM=111 +SQL92_RESERVED_GOTO=112 +SQL92_RESERVED_GRANT=113 +SQL92_RESERVED_GROUP=114 +SQL92_RESERVED_HAVING=115 +SQL92_RESERVED_IN=116 +SQL92_RESERVED_INSERT=117 +SQL92_RESERVED_INTERSECT=118 +SQL92_RESERVED_INTO=119 +SQL92_RESERVED_IS=120 +SQL92_RESERVED_LIKE=121 +SQL92_RESERVED_NOT=122 +SQL92_RESERVED_NULL=123 +SQL92_RESERVED_OF=124 +SQL92_RESERVED_ON=125 +SQL92_RESERVED_OPTION=126 +SQL92_RESERVED_OR=127 +SQL92_RESERVED_ORDER=128 +SQL92_RESERVED_OVERLAPS=129 +SQL92_RESERVED_PRIOR=130 +SQL92_RESERVED_PROCEDURE=131 +SQL92_RESERVED_PUBLIC=132 +SQL92_RESERVED_REVOKE=133 +SQL92_RESERVED_SELECT=134 +SQL92_RESERVED_SIZE=135 +SQL92_RESERVED_TABLE=136 +SQL92_RESERVED_THE=137 +SQL92_RESERVED_THEN=138 +SQL92_RESERVED_TO=139 +SQL92_RESERVED_TRUE=140 +SQL92_RESERVED_UNION=141 +SQL92_RESERVED_UNIQUE=142 +SQL92_RESERVED_UPDATE=143 +SQL92_RESERVED_VALUES=144 +SQL92_RESERVED_VIEW=145 +SQL92_RESERVED_WHEN=146 +SQL92_RESERVED_WHERE=147 +SQL92_RESERVED_WITH=148 +TILDE_OPERATOR_PART=149 +UNDERSCORE=150 +UNSIGNED_INTEGER=151 +VERTICAL_BAR=152 +ZV=153 Property changes on: branches/tora-trotl/sandbox.cpp/PLSQLCommons.tokens ___________________________________________________________________ Added: svn:executable + * Added: branches/tora-trotl/sandbox.cpp/PLSQLKeys.tokens =================================================================== --- branches/tora-trotl/sandbox.cpp/PLSQLKeys.tokens (rev 0) +++ branches/tora-trotl/sandbox.cpp/PLSQLKeys.tokens 2012-04-04 08:28:26 UTC (rev 4258) @@ -0,0 +1,150 @@ +AMPERSAND=4 +APPROXIMATE_NUM_LIT=5 +ASSIGN_OP=6 +ASTERISK=7 +AT_SIGN=8 +BINDVAR=9 +BIT_STRING_LIT=10 +CARRET_OPERATOR_PART=11 +CHAR_STRING=12 +CHAR_STRING_PERL=13 +COLON=14 +COMMA=15 +COMMENT=16 +CONCATENATION_OP=17 +DELIMITED_ID=18 +DOUBLE_ASTERISK=19 +DOUBLE_PERIOD=20 +EQUALS_OP=21 +EXACT_NUM_LIT=22 +EXCLAMATION_OPERATOR_PART=23 +FOR_NOTATION=24 +GREATER_THAN_OP=25 +GREATER_THAN_OR_EQUALS_OP=26 +HEX_STRING_LIT=27 +INTRODUCER=28 +LEFT_BRACKET=29 +LEFT_PAREN=30 +LESS_THAN_OP=31 +LESS_THAN_OR_EQUALS_OP=32 +MINUS_SIGN=33 +NATIONAL_CHAR_STRING_LIT=34 +NEWLINE=35 +NOT_EQUAL_OP=36 +PERCENT=37 +PERIOD=38 +PLSQL_NON_RESERVED_CONNECT_BY_ROOT=39 +PLSQL_NON_RESERVED_ELSIF=40 +PLSQL_NON_RESERVED_MODEL=41 +PLSQL_NON_RESERVED_PIVOT=42 +PLSQL_NON_RESERVED_UNPIVOT=43 +PLSQL_NON_RESERVED_USING=44 +PLSQL_RESERVED_CLUSTERS=45 +PLSQL_RESERVED_COLAUTH=46 +PLSQL_RESERVED_COMPRESS=47 +PLSQL_RESERVED_CRASH=48 +PLSQL_RESERVED_EXCLUSIVE=49 +PLSQL_RESERVED_IDENTIFIED=50 +PLSQL_RESERVED_IF=51 +PLSQL_RESERVED_INDEX=52 +PLSQL_RESERVED_INDEXES=53 +PLSQL_RESERVED_LOCK=54 +PLSQL_RESERVED_MINUS=55 +PLSQL_RESERVED_MODE=56 +PLSQL_RESERVED_NOCOMPRESS=57 +PLSQL_RESERVED_NOWAIT=58 +PLSQL_RESERVED_RESOURCE=59 +PLSQL_RESERVED_SHARE=60 +PLSQL_RESERVED_START=61 +PLSQL_RESERVED_TABAUTH=62 +PLSQL_RESERVED_VIEWS=63 +PLUS_SIGN=64 +PROMPT=65 +QS_ANGLE=66 +QS_BRACE=67 +QS_BRACK=68 +QS_OTHER=69 +QS_OTHER_CH=70 +QS_PAREN=71 +QUESTION_MARK=72 +QUOTE=73 +REGULAR_ID=74 +RIGHT_BRACKET=75 +RIGHT_PAREN=76 +SEMICOLON=77 +SEPARATOR=78 +SIMPLE_LETTER=79 +SOLIDUS=80 +SPACE=81 +SQL92_RESERVED_ALL=82 +SQL92_RESERVED_ALTER=83 +SQL92_RESERVED_AND=84 +SQL92_RESERVED_ANY=85 +SQL92_RESERVED_AS=86 +SQL92_RESERVED_ASC=87 +SQL92_RESERVED_BEGIN=88 +SQL92_RESERVED_BETWEEN=89 +SQL92_RESERVED_BY=90 +SQL92_RESERVED_CASE=91 +SQL92_RESERVED_CHECK=92 +SQL92_RESERVED_CONNECT=93 +SQL92_RESERVED_CREATE=94 +SQL92_RESERVED_CURRENT=95 +SQL92_RESERVED_CURSOR=96 +SQL92_RESERVED_DATE=97 +SQL92_RESERVED_DECLARE=98 +SQL92_RESERVED_DEFAULT=99 +SQL92_RESERVED_DELETE=100 +SQL92_RESERVED_DESC=101 +SQL92_RESERVED_DISTINCT=102 +SQL92_RESERVED_DROP=103 +SQL92_RESERVED_ELSE=104 +SQL92_RESERVED_END=105 +SQL92_RESERVED_EXCEPTION=106 +SQL92_RESERVED_EXISTS=107 +SQL92_RESERVED_FALSE=108 +SQL92_RESERVED_FETCH=109 +SQL92_RESERVED_FOR=110 +SQL92_RESERVED_FROM=111 +SQL92_RESERVED_GOTO=112 +SQL92_RESERVED_GRANT=113 +SQL92_RESERVED_GROUP=114 +SQL92_RESERVED_HAVING=115 +SQL92_RESERVED_IN=116 +SQL92_RESERVED_INSERT=117 +SQL92_RESERVED_INTERSECT=118 +SQL92_RESERVED_INTO=119 +SQL92_RESERVED_IS=120 +SQL92_RESERVED_LIKE=121 +SQL92_RESERVED_NOT=122 +SQL92_RESERVED_NULL=123 +SQL92_RESERVED_OF=124 +SQL92_RESERVED_ON=125 +SQL92_RESERVED_OPTION=126 +SQL92_RESERVED_OR=127 +SQL92_RESERVED_ORDER=128 +SQL92_RESERVED_OVERLAPS=129 +SQL92_RESERVED_PRIOR=130 +SQL92_RESERVED_PROCEDURE=131 +SQL92_RESERVED_PUBLIC=132 +SQL92_RESERVED_REVOKE=133 +SQL92_RESERVED_SELECT=134 +SQL92_RESERVED_SIZE=135 +SQL92_RESERVED_TABLE=136 +SQL92_RESERVED_THE=137 +SQL92_RESERVED_THEN=138 +SQL92_RESERVED_TO=139 +SQL92_RESERVED_TRUE=140 +SQL92_RESERVED_UNION=141 +SQL92_RESERVED_UNIQUE=142 +SQL92_RESERVED_UPDATE=143 +SQL92_RESERVED_VALUES=144 +SQL92_RESERVED_VIEW=145 +SQL92_RESERVED_WHEN=146 +SQL92_RESERVED_WHERE=147 +SQL92_RESERVED_WITH=148 +TILDE_OPERATOR_PART=149 +UNDERSCORE=150 +UNSIGNED_INTEGER=151 +VERTICAL_BAR=152 +ZV=153 Property changes on: branches/tora-trotl/sandbox.cpp/PLSQLKeys.tokens ___________________________________________________________________ Added: svn:executable + * Added: branches/tora-trotl/sandbox.cpp/PLSQLLexer.cpp =================================================================== (Binary files differ) Property changes on: branches/tora-trotl/sandbox.cpp/PLSQLLexer.cpp ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: branches/tora-trotl/sandbox.cpp/PLSQLLexer.hpp =================================================================== (Binary files differ) Property changes on: branches/tora-trotl/sandbox.cpp/PLSQLLexer.hpp ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: branches/tora-trotl/sandbox.cpp/PLSQLLexer.tokens =================================================================== --- branches/tora-trotl/sandbox.cpp/PLSQLLexer.tokens (rev 0) +++ branches/tora-trotl/sandbox.cpp/PLSQLLexer.tokens 2012-04-04 08:28:26 UTC (rev 4258) @@ -0,0 +1,150 @@ +AMPERSAND=4 +APPROXIMATE_NUM_LIT=5 +ASSIGN_OP=6 +ASTERISK=7 +AT_SIGN=8 +BINDVAR=9 +BIT_STRING_LIT=10 +CARRET_OPERATOR_PART=11 +CHAR_STRING=12 +CHAR_STRING_PERL=13 +COLON=14 +COMMA=15 +COMMENT=16 +CONCATENATION_OP=17 +DELIMITED_ID=18 +DOUBLE_ASTERISK=19 +DOUBLE_PERIOD=20 +EQUALS_OP=21 +EXACT_NUM_LIT=22 +EXCLAMATION_OPERATOR_PART=23 +FOR_NOTATION=24 +GREATER_THAN_OP=25 +GREATER_THAN_OR_EQUALS_OP=26 +HEX_STRING_LIT=27 +INTRODUCER=28 +LEFT_BRACKET=29 +LEFT_PAREN=30 +LESS_THAN_OP=31 +LESS_THAN_OR_EQUALS_OP=32 +MINUS_SIGN=33 +NATIONAL_CHAR_STRING_LIT=34 +NEWLINE=35 +NOT_EQUAL_OP=36 +PERCENT=37 +PERIOD=38 +PLSQL_NON_RESERVED_CONNECT_BY_ROOT=39 +PLSQL_NON_RESERVED_ELSIF=40 +PLSQL_NON_RESERVED_MODEL=41 +PLSQL_NON_RESERVED_PIVOT=42 +PLSQL_NON_RESERVED_UNPIVOT=43 +PLSQL_NON_RESERVED_USING=44 +PLSQL_RESERVED_CLUSTERS=45 +PLSQL_RESERVED_COLAUTH=46 +PLSQL_RESERVED_COMPRESS=47 +PLSQL_RESERVED_CRASH=48 +PLSQL_RESERVED_EXCLUSIVE=49 +PLSQL_RESERVED_IDENTIFIED=50 +PLSQL_RESERVED_IF=51 +PLSQL_RESERVED_INDEX=52 +PLSQL_RESERVED_INDEXES=53 +PLSQL_RESERVED_LOCK=54 +PLSQL_RESERVED_MINUS=55 +PLSQL_RESERVED_MODE=56 +PLSQL_RESERVED_NOCOMPRESS=57 +PLSQL_RESERVED_NOWAIT=58 +PLSQL_RESERVED_RESOURCE=59 +PLSQL_RESERVED_SHARE=60 +PLSQL_RESERVED_START=61 +PLSQL_RESERVED_TABAUTH=62 +PLSQL_RESERVED_VIEWS=63 +PLUS_SIGN=64 +PROMPT=65 +QS_ANGLE=66 +QS_BRACE=67 +QS_BRACK=68 +QS_OTHER=69 +QS_OTHER_CH=70 +QS_PAREN=71 +QUESTION_MARK=72 +QUOTE=73 +REGULAR_ID=74 +RIGHT_BRACKET=75 +RIGHT_PAREN=76 +SEMICOLON=77 +SEPARATOR=78 +SIMPLE_LETTER=79 +SOLIDUS=80 +SPACE=81 +SQL92_RESERVED_ALL=82 +SQL92_RESERVED_ALTER=83 +SQL92_RESERVED_AND=84 +SQL92_RESERVED_ANY=85 +SQL92_RESERVED_AS=86 +SQL92_RESERVED_ASC=87 +SQL92_RESERVED_BEGIN=88 +SQL92_RESERVED_BETWEEN=89 +SQL92_RESERVED_BY=90 +SQL92_RESERVED_CASE=91 +SQL92_RESERVED_CHECK=92 +SQL92_RESERVED_CONNECT=93 +SQL92_RESERVED_CREATE=94 +SQL92_RESERVED_CURRENT=95 +SQL92_RESERVED_CURSOR=96 +SQL92_RESERVED_DATE=97 +SQL92_RESERVED_DECLARE=98 +SQL92_RESERVED_DEFAULT=99 +SQL92_RESERVED_DELETE=100 +SQL92_RESERVED_DESC=101 +SQL92_RESERVED_DISTINCT=102 +SQL92_RESERVED_DROP=103 +SQL92_RESERVED_ELSE=104 +SQL92_RESERVED_END=105 +SQL92_RESERVED_EXCEPTION=106 +SQL92_RESERVED_EXISTS=107 +SQL92_RESERVED_FALSE=108 +SQL92_RESERVED_FETCH=109 +SQL92_RESERVED_FOR=110 +SQL92_RESERVED_FROM=111 +SQL92_RESERVED_GOTO=112 +SQL92_RESERVED_GRANT=113 +SQL92_RESERVED_GROUP=114 +SQL92_RESERVED_HAVING=115 +SQL92_RESERVED_IN=116 +SQL92_RESERVED_INSERT=117 +SQL92_RESERVED_INTERSECT=118 +SQL92_RESERVED_INTO=119 +SQL92_RESERVED_IS=120 +SQL92_RESERVED_LIKE=121 +SQL92_RESERVED_NOT=122 +SQL92_RESERVED_NULL=123 +SQL92_RESERVED_OF=124 +SQL92_RESERVED_ON=125 +SQL92_RESERVED_OPTION=126 +SQL92_RESERVED_OR=127 +SQL92_RESERVED_ORDER=128 +SQL92_RESERVED_OVERLAPS=129 +SQL92_RESERVED_PRIOR=130 +SQL92_RESERVED_PROCEDURE=131 +SQL92_RESERVED_PUBLIC=132 +SQL92_RESERVED_REVOKE=133 +SQL92_RESERVED_SELECT=134 +SQL92_RESERVED_SIZE=135 +SQL92_RESERVED_TABLE=136 +SQL92_RESERVED_THE=137 +SQL92_RESERVED_THEN=138 +SQL92_RESERVED_TO=139 +SQL92_RESERVED_TRUE=140 +SQL92_RESERVED_UNION=141 +SQL92_RESERVED_UNIQUE=142 +SQL92_RESERVED_UPDATE=143 +SQL92_RESERVED_VALUES=144 +SQL92_RESERVED_VIEW=145 +SQL92_RESERVED_WHEN=146 +SQL92_RESERVED_WHERE=147 +SQL92_RESERVED_WITH=148 +TILDE_OPERATOR_PART=149 +UNDERSCORE=150 +UNSIGNED_INTEGER=151 +VERTICAL_BAR=152 +ZV=153 Property changes on: branches/tora-trotl/sandbox.cpp/PLSQLLexer.tokens ___________________________________________________________________ Added: svn:executable + * Added: branches/tora-trotl/sandbox.cpp/PLSQLParser.cpp =================================================================== (Binary files differ) Property changes on: branches/tora-trotl/sandbox.cpp/PLSQLParser.cpp ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: branches/tora-trotl/sandbox.cpp/PLSQLParser.hpp =================================================================== (Binary files differ) Property changes on: branches/tora-trotl/sandbox.cpp/PLSQLParser.hpp ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: branches/tora-trotl/sandbox.cpp/PLSQLParser.tokens =================================================================== --- branches/tora-trotl/sandbox.cpp/PLSQLParser.tokens (rev 0) +++ branches/tora-trotl/sandbox.cpp/PLSQLParser.tokens 2012-04-04 08:28:26 UTC (rev 4258) @@ -0,0 +1,150 @@ +AMPERSAND=4 +APPROXIMATE_NUM_LIT=5 +ASSIGN_OP=6 +ASTERISK=7 +AT_SIGN=8 +BINDVAR=9 +BIT_STRING_LIT=10 +CARRET_OPERATOR_PART=11 +CHAR_STRING=12 +CHAR_STRING_PERL=13 +COLON=14 +COMMA=15 +COMMENT=16 +CONCATENATION_OP=17 +DELIMITED_ID=18 +DOUBLE_ASTERISK=19 +DOUBLE_PERIOD=20 +EQUALS_OP=21 +EXACT_NUM_LIT=22 +EXCLAMATION_OPERATOR_PART=23 +FOR_NOTATION=24 +GREATER_THAN_OP=25 +GREATER_THAN_OR_EQUALS_OP=26 +HEX_STRING_LIT=27 +INTRODUCER=28 +LEFT_BRACKET=29 +LEFT_PAREN=30 +LESS_THAN_OP=31 +LESS_THAN_OR_EQUALS_OP=32 +MINUS_SIGN=33 +NATIONAL_CHAR_STRING_LIT=34 +NEWLINE=35 +NOT_EQUAL_OP=36 +PERCENT=37 +PERIOD=38 +PLSQL_NON_RESERVED_CONNECT_BY_ROOT=39 +PLSQL_NON_RESERVED_ELSIF=40 +PLSQL_NON_RESERVED_MODEL=41 +PLSQL_NON_RESERVED_PIVOT=42 +PLSQL_NON_RESERVED_UNPIVOT=43 +PLSQL_NON_RESERVED_USING=44 +PLSQL_RESERVED_CLUSTERS=45 +PLSQL_RESERVED_COLAUTH=46 +PLSQL_RESERVED_COMPRESS=47 +PLSQL_RESERVED_CRASH=48 +PLSQL_RESERVED_EXCLUSIVE=49 +PLSQL_RESERVED_IDENTIFIED=50 +PLSQL_RESERVED_IF=51 +PLSQL_RESERVED_INDEX=52 +PLSQL_RESERVED_INDEXES=53 +PLSQL_RESERVED_LOCK=54 +PLSQL_RESERVED_MINUS=55 +PLSQL_RESERVED_MODE=56 +PLSQL_RESERVED_NOCOMPRESS=57 +PLSQL_RESERVED_NOWAIT=58 +PLSQL_RESERVED_RESOURCE=59 +PLSQL_RESERVED_SHARE=60 +PLSQL_RESERVED_START=61 +PLSQL_RESERVED_TABAUTH=62 +PLSQL_RESERVED_VIEWS=63 +PLUS_SIGN=64 +PROMPT=65 +QS_ANGLE=66 +QS_BRACE=67 +QS_BRACK=68 +QS_OTHER=69 +QS_OTHER_CH=70 +QS_PAREN=71 +QUESTION_MARK=72 +QUOTE=73 +REGULAR_ID=74 +RIGHT_BRACKET=75 +RIGHT_PAREN=76 +SEMICOLON=77 +SEPARATOR=78 +SIMPLE_LETTER=79 +SOLIDUS=80 +SPACE=81 +SQL92_RESERVED_ALL=82 +SQL92_RESERVED_ALTER=83 +SQL92_RESERVED_AND=84 +SQL92_RESERVED_ANY=85 +SQL92_RESERVED_AS=86 +SQL92_RESERVED_ASC=87 +SQL92_RESERVED_BEGIN=88 +SQL92_RESERVED_BETWEEN=89 +SQL92_RESERVED_BY=90 +SQL92_RESERVED_CASE=91 +SQL92_RESERVED_CHECK=92 +SQL92_RESERVED_CONNECT=93 +SQL92_RESERVED_CREATE=94 +SQL92_RESERVED_CURRENT=95 +SQL92_RESERVED_CURSOR=96 +SQL92_RESERVED_DATE=97 +SQL92_RESERVED_DECLARE=98 +SQL92_RESERVED_DEFAULT=99 +SQL92_RESERVED_DELETE=100 +SQL92_RESERVED_DESC=101 +SQL92_RESERVED_DISTINCT=102 +SQL92_RESERVED_DROP=103 +SQL92_RESERVED_ELSE=104 +SQL92_RESERVED_END=105 +SQL92_RESERVED_EXCEPTION=106 +SQL92_RESERVED_EXISTS=107 +SQL92_RESERVED_FALSE=108 +SQL92_RESERVED_FETCH=109 +SQL92_RESERVED_FOR=110 +SQL92_RESERVED_FROM=111 +SQL92_RESERVED_GOTO=112 +SQL92_RESERVED_GRANT=113 +SQL92_RESERVED_GROUP=114 +SQL92_RESERVED_HAVING=115 +SQL92_RESERVED_IN=116 +SQL92_RESERVED_INSERT=117 +SQL92_RESERVED_INTERSECT=118 +SQL92_RESERVED_INTO=119 +SQL92_RESERVED_IS=120 +SQL92_RESERVED_LIKE=121 +SQL92_RESERVED_NOT=122 +SQL92_RESERVED_NULL=123 +SQL92_RESERVED_OF=124 +SQL92_RESERVED_ON=125 +SQL92_RESERVED_OPTION=126 +SQL92_RESERVED_OR=127 +SQL92_RESERVED_ORDER=128 +SQL92_RESERVED_OVERLAPS=129 +SQL92_RESERVED_PRIOR=130 +SQL92_RESERVED_PROCEDURE=131 +SQL92_RESERVED_PUBLIC=132 +SQL92_RESERVED_REVOKE=133 +SQL92_RESERVED_SELECT=134 +SQL92_RESERVED_SIZE=135 +SQL92_RESERVED_TABLE=136 +SQL92_RESERVED_THE=137 +SQL92_RESERVED_THEN=138 +SQL92_RESERVED_TO=139 +SQL92_RESERVED_TRUE=140 +SQL92_RESERVED_UNION=141 +SQL92_RESERVED_UNIQUE=142 +SQL92_RESERVED_UPDATE=143 +SQL92_RESERVED_VALUES=144 +SQL92_RESERVED_VIEW=145 +SQL92_RESERVED_WHEN=146 +SQL92_RESERVED_WHERE=147 +SQL92_RESERVED_WITH=148 +TILDE_OPERATOR_PART=149 +UNDERSCORE=150 +UNSIGNED_INTEGER=151 +VERTICAL_BAR=152 +ZV=153 Property changes on: branches/tora-trotl/sandbox.cpp/PLSQLParser.tokens ___________________________________________________________________ Added: svn:executable + * Added: branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQLCommons.cpp =================================================================== (Binary files differ) Property changes on: branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQLCommons.cpp ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQLCommons.hpp =================================================================== (Binary files differ) Property changes on: branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQLCommons.hpp ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQLKeys.cpp =================================================================== (Binary files differ) Property changes on: branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQLKeys.cpp ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQLKeys.hpp =================================================================== (Binary files differ) Property changes on: branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQLKeys.hpp ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQL_DMLParser.cpp =================================================================== (Binary files differ) Property changes on: branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQL_DMLParser.cpp ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQL_DMLParser.hpp =================================================================== (Binary files differ) Property changes on: branches/tora-trotl/sandbox.cpp/PLSQLParser_PLSQL_DMLParser.hpp ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: branches/tora-trotl/sandbox.cpp/PLSQLParser_SQLPLUSParser.cpp =================================================================== (Binary files differ) Property changes on: branches/tora-trotl/sandbox.cpp/PLSQLParser_SQLPLUSParser.cpp ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: branches/tora-trotl/sandbox.cpp/PLSQLParser_SQLPLUSParser.hpp =================================================================== (Binary files differ) Property changes on: branches/tora-trotl/sandbox.cpp/PLSQLParser_SQLPLUSParser.hpp ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: branches/tora-trotl/sandbox.cpp/PLSQL_DMLParser.tokens =================================================================== --- branches/tora-trotl/sandbox.cpp/PLSQL_DMLParser.tokens (rev 0) +++ branches/tora-trotl/sandbox.cpp/PLSQL_DMLParser.tokens 2012-04-04 08:28:26 UTC (rev 4258) @@ -0,0 +1,150 @@ +AMPERSAND=4 +APPROXIMATE_NUM_LIT=5 +ASSIGN_OP=6 +ASTERISK=7 +AT_SIGN=8 +BINDVAR=9 +BIT_STRING_LIT=10 +CARRET_OPERATOR_PART=11 +CHAR_STRING=12 +CHAR_STRING_PERL=13 +COLON=14 +COMMA=15 +COMMENT=16 +CONCATENATION_OP=17 +DELIMITED_ID=18 +DOUBLE_ASTERISK=19 +DOUBLE_PERIOD=20 +EQUALS_OP=21 +EXACT_NUM_LIT=22 +EXCLAMATION_OPERATOR_PART=23 +FOR_NOTATION=24 +GREATER_THAN_OP=25 +GREATER_THAN_OR_EQUALS_OP=26 +HEX_STRING_LIT=27 +INTRODUCER=28 +LEFT_BRACKET=29 +LEFT_PAREN=30 +LESS_THAN_OP=31 +LESS_THAN_OR_EQUALS_OP=32 +MINUS_SIGN=33 +NATIONAL_CHAR_STRING_LIT=34 +NEWLINE=35 +NOT_EQUAL_OP=36 +PERCENT=37 +PERIOD=38 +PLSQL_NON_RESERVED_CONNECT_BY_ROOT=39 +PLSQL_NON_RESERVED_ELSIF=40 +PLSQL_NON_RESERVED_MODEL=41 +PLSQL_NON_RESERVED_PIVOT=42 +PLSQL_NON_RESERVED_UNPIVOT=43 +PLSQL_NON_RESERVED_USING=44 +PLSQL_RESERVED_CLUSTERS=45 +PLSQL_RESERVED_COLAUTH=46 +PLSQL_RESERVED_COMPRESS=47 +PLSQL_RESERVED_CRASH=48 +PLSQL_RESERVED_EXCLUSIVE=49 +PLSQL_RESERVED_IDENTIFIED=50 +PLSQL_RESERVED_IF=51 +PLSQL_RESERVED_INDEX=52 +PLSQL_RESERVED_INDEXES=53 +PLSQL_RESERVED_LOCK=54 +PLSQL_RESERVED_MINUS=55 +PLSQL_RESERVED_MODE=56 +PLSQL_RESERVED_NOCOMPRESS=57 +PLSQL_RESERVED_NOWAIT=58 +PLSQL_RESERVED_RESOURCE=59 +PLSQL_RESERVED_SHARE=60 +PLSQL_RESERVED_START=61 +PLSQL_RESERVED_TABAUTH=62 +PLSQL_RESERVED_VIEWS=63 +PLUS_SIGN=64 +PROMPT=65 +QS_ANGLE=66 +QS_BRACE=67 +QS_BRACK=68 +QS_OTHER=69 +QS_OTHER_CH=70 +QS_PAREN=71 +QUESTION_MARK=72 +QUOTE=73 +REGULAR_ID=74 +RIGHT_BRACKET=75 +RIGHT_PAREN=76 +SEMICOLON=77 +SEPARATOR=78 +SIMPLE_LETTER=79 +SOLIDUS=80 +SPACE=81 +SQL92_RESERVED_ALL=82 +SQL92_RESERVED_ALTER=83 +SQL92_RESERVED_AND=84 +SQL92_RESERVED_ANY=85 +SQL92_RESERVED_AS=86 +SQL92_RESERVED_ASC=87 +SQL92_RESERVED_BEGIN=88 +SQL92_RESERVED_BETWEEN=89 +SQL92_RESERVED_BY=90 +SQL92_RESERVED_CASE=91 +SQL92_RESERVED_CHECK=92 +SQL92_RESERVED_CONNECT=93 +SQL92_RESERVED_CREATE=94 +SQL92_RESERVED_CURRENT=95 +SQL92_RESERVED_CURSOR=96 +SQL92_RESERVED_DATE=97 +SQL92_RESERVED_DECLARE=98 +SQL92_RESERVED_DEFAULT=99 +SQL92_RESERVED_DELETE=100 +SQL92_RESERVED_DESC=101 +SQL92_RESERVED_DISTINCT=102 +SQL92_RESERVED_DROP=103 +SQL92_RESERVED_ELSE=104 +SQL92_RESERVED_END=105 +SQL92_RESERVED_EXCEPTION=106 +SQL92_RESERVED_EXISTS=107 +SQL92_RESERVED_FALSE=108 +SQL92_RESERVED_FETCH=109 +SQL92_RESERVED_FOR=110 +SQL92_RESERVED_FROM=111 +SQL92_RESERVED_GOTO=112 +SQL92_RESERVED_GRANT=113 +SQL92_RESERVED_GROUP=114 +SQL92_RESERVED_HAVING=115 +SQL92_RESERVED_IN=116 +SQL92_RESERVED_INSERT=117 +SQL92_RESERVED_INTERSECT=118 +SQL92_RESERVED_INTO=119 +SQL92_RESERVED_IS=120 +SQL92_RESERVED_LIKE=121 +SQL92_RESERVED_NOT=122 +SQL92_RESERVED_NULL=123 +SQL92_RESERVED_OF=124 +SQL92_RESERVED_ON=125 +SQL92_RESERVED_OPTION=126 +SQL92_RESERVED_OR=127 +SQL92_RESERVED_ORDER=128 +SQL92_RESERVED_OVERLAPS=129 +SQL92_RESERVED_PRIOR=130 +SQL92_RESERVED_PROCEDURE=131 +SQL92_RESERVED_PUBLIC=132 +SQL92_RESERVED_REVOKE=133 +SQL92_RESERVED_SELECT=134 +SQL92_RESERVED_SIZE=135 +SQL92_RESERVED_TABLE=136 +SQL92_RESERVED_THE=137 +SQL92_RESERVED_THEN=138 +SQL92_RESERVED_TO=139 +SQL92_RESERVED_TRUE=140 +SQL92_RESERVED_UNION=141 +SQL92_RESERVED_UNIQUE=142 +SQL92_RESERVED_UPDATE=143 +SQL92_RESERVED_VALUES=144 +SQL92_RESERVED_VIEW=145 +SQL92_RESERVED_WHEN=146 +SQL92_RESERVED_WHERE=147 +SQL92_RESERVED_WITH=148 +TILDE_OPERATOR_PART=149 +UNDERSCORE=150 +UNSIGNED_INTEGER=151 +VERTICAL_BAR=152 +ZV=153 Property changes on: branches/tora-trotl/sandbox.cpp/PLSQL_DMLParser.tokens ___________________________________________________________________ Added: svn:executable + * Added: branches/tora-trotl/sandbox.cpp/SQLPLUSParser.tokens =================================================================== --- branches/tora-trotl/sandbox.cpp/SQLPLUSParser.tokens (rev 0) +++ branches/tora-trotl/sandbox.cpp/SQLPLUSParser.tokens 2012-04-04 08:28:26 UTC (rev 4258) @@ -0,0 +1,150 @@ +AMPERSAND=4 +APPROXIMATE_NUM_LIT=5 +ASSIGN_OP=6 +ASTERISK=7 +AT_SIGN=8 +BINDVAR=9 +BIT_STRING_LIT=10 +CARRET_OPERATOR_PART=11 +CHAR_STRING=12 +CHAR_STRING_PERL=13 +COLON=14 +COMMA=15 +COMMENT=16 +CONCATENATION_OP=17 +DELIMITED_ID=18 +DOUBLE_ASTERISK=19 +DOUBLE_PERIOD=20 +EQUALS_OP=21 +EXACT_NUM_LIT=22 +EXCLAMATION_OPERATOR_PART=23 +FOR_NOTATION=24 +GREATER_THAN_OP=25 +GREATER_THAN_OR_EQUALS_OP=26 +HEX_STRING_LIT=27 +INTRODUCER=28 +LEFT_BRACKET=29 +LEFT_PAREN=30 +LESS_THAN_OP=31 +LESS_THAN_OR_EQUALS_OP=32 +MINUS_SIGN=33 +NATIONAL_CHAR_STRING_LIT=34 +NEWLINE=35 +NOT_EQUAL_OP=36 +PERCENT=37 +PERIOD=38 +PLSQL_NON_RESERVED_CONNECT_BY_ROOT=39 +PLSQL_NON_RESERVED_ELSIF=40 +PLSQL_NON_RESERVED_MODEL=41 +PLSQL_NON_RESERVED_PIVOT=42 +PLSQL_NON_RESERVED_UNPIVOT=43 +PLSQL_NON_RESERVED_USING=44 +PLSQL_RESERVED_CLUSTERS=45 +PLSQL_RESERVED_COLAUTH=46 +PLSQL_RESERVED_COMPRESS=47 +PLSQL_RESERVED_CRASH=48 +PLSQL_RESERVED_EXCLUSIVE=49 +PLSQL_RESERVED_IDENTIFIED=50 +PLSQL_RESERVED_IF=51 +PLSQL_RESERVED_INDEX=52 +PLSQL_RESERVED_INDEXES=53 +PLSQL_RESERVED_LOCK=54 +PLSQL_RESERVED_MINUS=55 +PLSQL_RESERVED_MODE=56 +PLSQL_RESERVED_NOCOMPRESS=57 +PLSQL_RESERVED_NOWAIT=58 +PLSQL_RESERVED_RESOURCE=59 +PLSQL_RESERVED_SHARE=60 +PLSQL_RESERVED_START=61 +PLSQL_RESERVED_TABAUTH=62 +PLSQL_RESERVED_VIEWS=63 +PLUS_SIGN=64 +PROMPT=65 +QS_ANGLE=66 +QS_BRACE=67 +QS_BRACK=68 +QS_OTHER=69 +QS_OTHER_CH=70 +QS_PAREN=71 +QUESTION_MARK=72 +QUOTE=73 +REGULAR_ID=74 +RIGHT_BRACKET=75 +RIGHT_PAREN=76 +SEMICOLON=77 +SEPARATOR=78 +SIMPLE_LETTER=79 +SOLIDUS=80 +SPACE=81 +SQL92_RESERVED_ALL=82 +SQL92_RESERVED_ALTER=83 +SQL92_RESERVED_AND=84 +SQL92_RESERVED_ANY=85 +SQL92_RESERVED_AS=86 +SQL92_RESERVED_ASC=87 +SQL92_RESERVED_BEGIN=88 +SQL92_RESERVED_BETWEEN=89 +SQL92_RESERVED_BY=90 +SQL92_RESERVED_CASE=91 +SQL92_RESERVED_CHECK=92 +SQL92_RESERVED_CONNECT=93 +SQL92_RESERVED_CREATE=94 +SQL92_RESERVED_CURRENT=95 +SQL92_RESERVED_CURSOR=96 +SQL92_RESERVED_DATE=97 +SQL92_RESERVED_DECLARE=98 +SQL92_RESERVED_DEFAULT=99 +SQL92_RESERVED_DELETE=100 +SQL92_RESERVED_DESC=101 +SQL92_RESERVED_DISTINCT=102 +SQL92_RESERVED_DROP=103 +SQL92_RESERVED_ELSE=104 +SQL92_RESERVED_END=105 +SQL92_RESERVED_EXCEPTION=106 +SQL92_RESERVED_EXISTS=107 +SQL92_RESERVED_FALSE=108 +SQL92_RESERVED_FETCH=109 +SQL92_RESERVED_FOR=110 +SQL92_RESERVED_FROM=111 +SQL92_RESERVED_GOTO=112 +SQL92_RESERVED_GRANT=113 +SQL92_RESERVED_GROUP=114 +SQL92_RESERVED_HAVING=115 +SQL92_RESERVED_IN=116 +SQL92_RESERVED_INSERT=117 +SQL92_RESERVED_INTERSECT=118 +SQL92_RESERVED_INTO=119 +SQL92_RESERVED_IS=120 +SQL92_RESERVED_LIKE=121 +SQL92_RESERVED_NOT=122 +SQL92_RESERVED_NULL=123 +SQL92_RESERVED_OF=124 +SQL92_RESERVED_ON=125 +SQL92_RESERVED_OPTION=126 +SQL92_RESERVED_OR=127 +SQL92_RESERVED_ORDER=128 +SQL92_RESERVED_OVERLAPS=129 +SQL92_RESERVED_PRIOR=130 +SQL92_RESERVED_PROCEDURE=131 +SQL92_RESERVED_PUBLIC=132 +SQL92_RESERVED_REVOKE=133 +SQL92_RESERVED_SELECT=134 +SQL92_RESERVED_SIZE=135 +SQL92_RESERVED_TABLE=136 +SQL92_RESERVED_THE=137 +SQL92_RESERVED_THEN=138 +SQL92_RESERVED_TO=139 +SQL92_RESERVED_TRUE=140 +SQL92_RESERVED_UNION=141 +SQL92_RESERVED_UNIQUE=142 +SQL92_RESERVED_UPDATE=143 +SQL92_RESERVED_VALUES=144 +SQL92_RESERVED_VIEW=145 +SQL92_RESERVED_WHEN=146 +SQL92_RESERVED_WHERE=147 +SQL92_RESERVED_WITH=148 +TILDE_OPERATOR_PART=149 +UNDERSCORE=150 +UNSIGNED_INTEGER=151 +VERTICAL_BAR=152 +ZV=153 Property changes on: branches/tora-trotl/sandbox.cpp/SQLPLUSParser.tokens ___________________________________________________________________ Added: svn:executable + * Added: branches/tora-trotl/sandbox.cpp/dirent.h =================================================================== --- branches/tora-trotl/sandbox.cpp/dirent.h (rev 0) +++ branches/tora-trotl/sandbox.cpp/dirent.h 2012-04-04 08:28:26 UTC (rev 4258) @@ -0,0 +1,372 @@ +/***************************************************************************** + * dirent.h - dirent API for Microsoft Visual Studio + * + * Copyright (C) 2006 Toni Ronkko + * + * 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 TONI RONKKO 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. + * + * Mar 15, 2011, Toni Ronkko + * Defined FILE_ATTRIBUTE_DEVICE for MSVC 6.0. + * + * Aug 11, 2010, Toni Ronkko + * Added d_type and d_namlen fields to dirent structure. The former is + * especially useful for determining whether directory entry represents a + * file or a directory. For more information, see + * http://www.delorie.com/gnu/docs/glibc/libc_270.html + * + * Aug 11, 2010, Toni Ronkko + * Improved conformance to the standards. For example, errno is now set + * properly on failure and assert() is never used. Thanks to Peter Brockam + * for suggestions. + * + * Aug 11, 2010, Toni Ronkko + * Fixed a bug in rewinddir(): when using relative directory names, change + * of working directory no longer causes rewinddir() to fail. + * + * Dec 15, 2009, John Cunningham + * Added rewinddir member function + * + * Jan 18, 2008, Toni Ronkko + * Using FindFirstFileA and WIN32_FIND_DATAA to avoid converting string + * between multi-byte and unicode representations. This makes the + * code simpler and also allows the code to be compiled under MingW. Thanks + * to Azriel Fasten for the suggestion. + * + * Mar 4, 2007, Toni Ronkko + * Bug fix: due to the strncpy_s() function this file only compiled in + * Visual Studio 2005. Using the new string functions only when the + * compiler version allows. + * + * Nov 2, 2006, Toni Ronkko + * Major update: removed support for Watcom C, MS-DOS and Turbo C to + * simplify the file, updated the code to compile cleanly on Visual + * Studio 2005 with both unicode and multi-byte character strings, + * removed rewinddir() as it had a bug. + * + * Aug 20, 2006, Toni Ronkko + * Removed all remarks about MSVC 1.0, which is antiqued now. Simplified + * comments by removing SGML tags. + * + * May 14 2002, Toni Ronkko + * Embedded the function definitions directly to the header so that no + * source modules need to be included in the Visual Studio project. Removed + * all the dependencies to other projects so that this very header can be + * used independently. + * + * May 28 1998, Toni Ronkko + * First version. + *****************************************************************************/ +#ifndef DIRENT_H +#define DIRENT_H + +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <string.h> +#include <stdlib.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <errno.h> + +/* Entries missing from MSVC 6.0 */ +#if !defined(FILE_ATTRIBUTE_DEVICE) +# define FILE_ATTRIBUTE_DEVICE 0x40 +#endif + +/* File type and permission flags for stat() */ +#if defined(_MSC_VER) && !defined(S_IREAD) +# define S_IFMT _S_IFMT /* file type mask */ +# define S_IFDIR _S_IFDIR /* directory */ +# define S_IFCHR _S_IFCHR /* character device */ +# define S_IFFIFO _S_IFFIFO /* pipe */ +# define S_IFREG _S_IFREG /* regular file */ +# define S_IREAD _S_IREAD /* read permission */ +# define S_IWRITE _S_IWRITE /* write permission */ +# define S_IEXEC _S_IEXEC /* execute permission */ +#endif +#define S_IFBLK 0 /* block device */ +#define S_IFLNK 0 /* link */ +#define S_IFSOCK 0 /* socket */ + +#if defined(_MSC_VER) +# define S_IRUSR S_IREAD /* read, user */ +# define S_IWUSR S_IWRITE /* write, user */ +# define S_IXUSR 0 /* execute, user */ +# define S_IRGRP 0 /* read, group */ +# define S_IWGRP 0 /* write, group */ +# define S_IXGRP 0 /* execute, group */ +# define S_IROTH 0 /* read, others */ +# define S_IWOTH 0 /* write, others */ +# define S_IXOTH 0 /* execute, others */ +#endif + +/* Indicates that d_type field is available in dirent structure */ +#define _DIRENT_HAVE_D_TYPE + +/* File type flags for d_type */ +#define DT_UNKNOWN 0 +#define DT_REG S_IFREG +#define DT_DIR S_IFDIR +#define DT_FIFO S_IFFIFO +#define DT_SOCK S_IFSOCK +#define DT_CHR S_IFCHR +#define DT_BLK S_IFBLK + +/* Macros for converting between st_mode and d_type */ +#define IFTODT(mode) ((mode) & S_IFMT) +#define DTTOIF(type) (type) + +/* + * File type macros. Note that block devices, sockets and links cannot be + * distinguished on Windows and the macros S_ISBLK, S_ISSOCK and S_ISLNK are + * only defined for compatibility. These macros should always return false + * on Windows. + */ +#define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFFIFO) +#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) +#define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) +#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK) +#define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK) +#define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR) +#define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK) + +#ifdef __cplusplus +extern "C" { +#endif + + +typedef struct dirent +{ + char d_name[MAX_PATH + 1]; /* File name */ + size_t d_namlen; /* Length of name without \0 */ + int d_type; /* File type */ +} dirent; + + +typedef struct DIR +{ + dirent curentry; /* Current directory entry */ + WIN32_FIND_DATAA find_data; /* Private file data */ + int cached; /* True if data is valid */ + HANDLE search_handle; /* Win32 search handle */ + char patt[MAX_PATH + 3]; /* Initial directory name */ +} DIR; + + +/* Forward declarations */ +static DIR *opendir(const char *dirname); +static struct dirent *readdir(DIR *dirp); +static int closedir(DIR *dirp); +static void rewinddir(DIR* dirp); + + +/* Use the new safe string functions introduced in Visual Studio 2005 */ +#if defined(_MSC_VER) && _MSC_VER >= 1400 +# define DIRENT_STRNCPY(dest,src,size) strncpy_s((dest),(size),(src),_TRUNCATE) +#else +# define DIRENT_STRNCPY(dest,src,size) strncpy((dest),(src),(size)) +#endif + +/* Set errno variable */ +#if defined(_MSC_VER) +#define DIRENT_SET_ERRNO(x) _set_errno (x) +#else +#define DIRENT_SET_ERRNO(x) (errno = (x)) +#endif + + +/***************************************************************************** + * Open directory stream DIRNAME for read and return a pointer to the + * internal working area that is used to retrieve individual directory + * entries. + */ +static DIR *opendir(const char *dirname) +{ + DIR *dirp; + + /* ensure that the resulting search pattern will be a valid file name */ + if (dirname == NULL) { + DIRENT_SET_ERRNO (ENOENT); + return NULL; + } + if (strlen (dirname) + 3 >= MAX_PATH) { + DIRENT_SET_ERRNO (ENAMETOOLONG); + return NULL; + } + + /* construct new DIR structure */ + dirp = (DIR*) malloc (sizeof (struct DIR)); + if (dirp != NULL) { + int error; + + /* + * Convert relative directory name to an absolute one. This + * allows rewinddir() to function correctly when the current working + * directory is changed between opendir() and rewinddir(). + */ + if (GetFullPathNameA (dirname, MAX_PATH, dirp->patt, NULL)) { + char *p; + + /* append the search pattern "\\*\0" to the directory name */ + p = strchr (dirp->patt, '\0'); + if (dirp->patt < p && *(p-1) != '\\' && *(p-1) != ':') { + *p++ = '\\'; + } + *p++ = '*'; + *p = '\0'; + + /* open directory stream and retrieve the first entry */ + dirp->search_handle = FindFirstFileA (dirp->patt, &dirp->find_data); + if (dirp->search_handle != INVALID_HANDLE_VALUE) { + /* a directory entry is now waiting in memory */ + dirp->cached = 1; + error = 0; + } else { + /* search pattern is not a directory name? */ + DIRENT_SET_ERRNO (ENOENT); + error = 1; + } + } else { + /* buffer too small */ + DIRENT_SET_ERRNO (ENOMEM); + error = 1; + } + + if (error) { + free (dirp); + dirp = NULL; + } + } + + return dirp; +} + + +/***************************************************************************** + * Read a directory entry, and return a pointer to a dirent structure + * containing the name of the entry in d_name field. Individual directory + * entries returned by this very function include regular files, + * sub-directories, pseudo-directories "." and "..", but also volume labels, + * hidden files and system files may be returned. + */ +static struct dirent *readdir(DIR *dirp) +{ + DWORD attr; + if (dirp == NULL) { + /* directory stream did not open */ + DIRENT_SET_ERRNO (EBADF); + return NULL; + } + + /* get next directory entry */ + if (dirp->cached != 0) { + /* a valid directory entry already in memory */ + dirp->cached = 0; + } else { + /* get the next directory entry from stream */ + if (dirp->search_handle == INVALID_HANDLE_VALUE) { + return NULL; + } + if (FindNextFileA (dirp->search_handle, &dirp->find_data) == FALSE) { + /* the very last entry has been processed or an error occured */ + FindClose (dirp->search_handle); + dirp->search_handle = INVALID_HANDLE_VALUE; + return NULL; + } + } + + /* copy as a multibyte character string */ + DIRENT_STRNCPY ( dirp->curentry.d_name, + dirp->find_data.cFileName, + sizeof(dirp->curentry.d_name) ); + dirp->curentry.d_name[MAX_PATH] = '\0'; + + /* compute the length of name */ + dirp->curentry.d_namlen = strlen (dirp->curentry.d_name); + + /* determine file type */ + attr = dirp->find_data.dwFileAttributes; + if ((attr & FILE_ATTRIBUTE_DEVICE) != 0) { + dirp->curentry.d_type = DT_CHR; + } else if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) { + dirp->curentry.d_type = DT_DIR; + } else { + dirp->curentry.d_type = DT_REG; + } + return &dirp->curentry; +} + + +/***************************************************************************** + * Close directory stream opened by opendir() function. Close of the + * directory stream invalidates the DIR structure as well as any previously + * read directory entry. + */ +static int closedir(DIR *dirp) +{ + if (dirp == NULL) { + /* invalid directory stream */ + DIRENT_SET_ERRNO (EBADF); + return -1; + } + + /* release search handle */ + if (dirp->search_handle != INVALID_HANDLE_VALUE) { + FindClose (dirp->search_handle); + dirp->search_handle = INVALID_HANDLE_VALUE; + } + + /* release directory structure */ + free (dirp); + return 0; +} + + +/***************************************************************************** + * Resets the position of the directory stream to which dirp refers to the + * beginning of the directory. It also causes the directory stream to refer + * to the current state of the corresponding directory, as a call to opendir() + * would have done. If dirp does not refer to a directory stream, the effect + * is undefined. + */ +static void rewinddir(DIR* dirp) +{ + if (dirp != NULL) { + /* release search handle */ + if (dirp->search_handle != INVALID_HANDLE_VALUE) { + FindClose (dirp->search_handle); + } + + /* open new search handle and retrieve the first entry */ + dirp->search_handle = FindFirstFileA (dirp->patt, &dirp->find_data); + if (dirp->search_handle != INVALID_HANDLE_VALUE) { + /* a directory entry is now waiting in memory */ + dirp->cached = 1; + } else { + /* failed to re-open directory: no directory entry in memory */ + dirp->cached = 0; + } + } +} + + +#ifdef __cplusplus +} +#endif +#endif /*DIRENT_H*/ Property changes on: branches/tora-trotl/sandbox.cpp/dirent.h ___________________________________________________________________ Added: svn:executable + * Added: branches/tora-trotl/sandbox.cpp/sandbox.cpp.vcxproj =================================================================== (Binary files differ) Property changes on: branches/tora-trotl/sandbox.cpp/sandbox.cpp.vcxproj ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/xml This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2012-04-04 10:18:37
|
Revision: 4259 http://tora.svn.sourceforge.net/tora/?rev=4259&view=rev Author: ibre5041 Date: 2012-04-04 10:18:25 +0000 (Wed, 04 Apr 2012) Log Message: ----------- test casr made reproducible Modified Paths: -------------- branches/tora-trotl/sandbox.cpp/Makefile branches/tora-trotl/sandbox.cpp/input branches/tora-trotl/sandbox.cpp/utils.cpp Added Paths: ----------- branches/tora-trotl/sandbox.cpp/direntw.h Removed Paths: ------------- branches/tora-trotl/sandbox.cpp/dirent.h Modified: branches/tora-trotl/sandbox.cpp/Makefile =================================================================== --- branches/tora-trotl/sandbox.cpp/Makefile 2012-04-04 08:28:26 UTC (rev 4258) +++ branches/tora-trotl/sandbox.cpp/Makefile 2012-04-04 10:18:25 UTC (rev 4259) @@ -12,8 +12,8 @@ LIBS = TBBLOC=/home/ivan/devel/tbb40_20120201oss/lib/intel64/cc4.1.0_libc2.4_kernel2.6.16.21 -##CFLAGS=-ggdb -O0 -fno-inline -CFLAGS=-ggdb3 -O3 +CFLAGS=-ggdb -O0 -fno-inline +##CFLAGS=-ggdb3 -O3 TOBJS= utils.o Deleted: branches/tora-trotl/sandbox.cpp/dirent.h =================================================================== --- branches/tora-trotl/sandbox.cpp/dirent.h 2012-04-04 08:28:26 UTC (rev 4258) +++ branches/tora-trotl/sandbox.cpp/dirent.h 2012-04-04 10:18:25 UTC (rev 4259) @@ -1,372 +0,0 @@ -/***************************************************************************** - * dirent.h - dirent API for Microsoft Visual Studio - * - * Copyright (C) 2006 Toni Ronkko - * - * 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 TONI RONKKO 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. - * - * Mar 15, 2011, Toni Ronkko - * Defined FILE_ATTRIBUTE_DEVICE for MSVC 6.0. - * - * Aug 11, 2010, Toni Ronkko - * Added d_type and d_namlen fields to dirent structure. The former is - * especially useful for determining whether directory entry represents a - * file or a directory. For more information, see - * http://www.delorie.com/gnu/docs/glibc/libc_270.html - * - * Aug 11, 2010, Toni Ronkko - * Improved conformance to the standards. For example, errno is now set - * properly on failure and assert() is never used. Thanks to Peter Brockam - * for suggestions. - * - * Aug 11, 2010, Toni Ronkko - * Fixed a bug in rewinddir(): when using relative directory names, change - * of working directory no longer causes rewinddir() to fail. - * - * Dec 15, 2009, John Cunningham - * Added rewinddir member function - * - * Jan 18, 2008, Toni Ronkko - * Using FindFirstFileA and WIN32_FIND_DATAA to avoid converting string - * between multi-byte and unicode representations. This makes the - * code simpler and also allows the code to be compiled under MingW. Thanks - * to Azriel Fasten for the suggestion. - * - * Mar 4, 2007, Toni Ronkko - * Bug fix: due to the strncpy_s() function this file only compiled in - * Visual Studio 2005. Using the new string functions only when the - * compiler version allows. - * - * Nov 2, 2006, Toni Ronkko - * Major update: removed support for Watcom C, MS-DOS and Turbo C to - * simplify the file, updated the code to compile cleanly on Visual - * Studio 2005 with both unicode and multi-byte character strings, - * removed rewinddir() as it had a bug. - * - * Aug 20, 2006, Toni Ronkko - * Removed all remarks about MSVC 1.0, which is antiqued now. Simplified - * comments by removing SGML tags. - * - * May 14 2002, Toni Ronkko - * Embedded the function definitions directly to the header so that no - * source modules need to be included in the Visual Studio project. Removed - * all the dependencies to other projects so that this very header can be - * used independently. - * - * May 28 1998, Toni Ronkko - * First version. - *****************************************************************************/ -#ifndef DIRENT_H -#define DIRENT_H - -#define WIN32_LEAN_AND_MEAN -#include <windows.h> -#include <string.h> -#include <stdlib.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <errno.h> - -/* Entries missing from MSVC 6.0 */ -#if !defined(FILE_ATTRIBUTE_DEVICE) -# define FILE_ATTRIBUTE_DEVICE 0x40 -#endif - -/* File type and permission flags for stat() */ -#if defined(_MSC_VER) && !defined(S_IREAD) -# define S_IFMT _S_IFMT /* file type mask */ -# define S_IFDIR _S_IFDIR /* directory */ -# define S_IFCHR _S_IFCHR /* character device */ -# define S_IFFIFO _S_IFFIFO /* pipe */ -# define S_IFREG _S_IFREG /* regular file */ -# define S_IREAD _S_IREAD /* read permission */ -# define S_IWRITE _S_IWRITE /* write permission */ -# define S_IEXEC _S_IEXEC /* execute permission */ -#endif -#define S_IFBLK 0 /* block device */ -#define S_IFLNK 0 /* link */ -#define S_IFSOCK 0 /* socket */ - -#if defined(_MSC_VER) -# define S_IRUSR S_IREAD /* read, user */ -# define S_IWUSR S_IWRITE /* write, user */ -# define S_IXUSR 0 /* execute, user */ -# define S_IRGRP 0 /* read, group */ -# define S_IWGRP 0 /* write, group */ -# define S_IXGRP 0 /* execute, group */ -# define S_IROTH 0 /* read, others */ -# define S_IWOTH 0 /* write, others */ -# define S_IXOTH 0 /* execute, others */ -#endif - -/* Indicates that d_type field is available in dirent structure */ -#define _DIRENT_HAVE_D_TYPE - -/* File type flags for d_type */ -#define DT_UNKNOWN 0 -#define DT_REG S_IFREG -#define DT_DIR S_IFDIR -#define DT_FIFO S_IFFIFO -#define DT_SOCK S_IFSOCK -#define DT_CHR S_IFCHR -#define DT_BLK S_IFBLK - -/* Macros for converting between st_mode and d_type */ -#define IFTODT(mode) ((mode) & S_IFMT) -#define DTTOIF(type) (type) - -/* - * File type macros. Note that block devices, sockets and links cannot be - * distinguished on Windows and the macros S_ISBLK, S_ISSOCK and S_ISLNK are - * only defined for compatibility. These macros should always return false - * on Windows. - */ -#define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFFIFO) -#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) -#define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) -#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK) -#define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK) -#define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR) -#define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK) - -#ifdef __cplusplus -extern "C" { -#endif - - -typedef struct dirent -{ - char d_name[MAX_PATH + 1]; /* File name */ - size_t d_namlen; /* Length of name without \0 */ - int d_type; /* File type */ -} dirent; - - -typedef struct DIR -{ - dirent curentry; /* Current directory entry */ - WIN32_FIND_DATAA find_data; /* Private file data */ - int cached; /* True if data is valid */ - HANDLE search_handle; /* Win32 search handle */ - char patt[MAX_PATH + 3]; /* Initial directory name */ -} DIR; - - -/* Forward declarations */ -static DIR *opendir(const char *dirname); -static struct dirent *readdir(DIR *dirp); -static int closedir(DIR *dirp); -static void rewinddir(DIR* dirp); - - -/* Use the new safe string functions introduced in Visual Studio 2005 */ -#if defined(_MSC_VER) && _MSC_VER >= 1400 -# define DIRENT_STRNCPY(dest,src,size) strncpy_s((dest),(size),(src),_TRUNCATE) -#else -# define DIRENT_STRNCPY(dest,src,size) strncpy((dest),(src),(size)) -#endif - -/* Set errno variable */ -#if defined(_MSC_VER) -#define DIRENT_SET_ERRNO(x) _set_errno (x) -#else -#define DIRENT_SET_ERRNO(x) (errno = (x)) -#endif - - -/***************************************************************************** - * Open directory stream DIRNAME for read and return a pointer to the - * internal working area that is used to retrieve individual directory - * entries. - */ -static DIR *opendir(const char *dirname) -{ - DIR *dirp; - - /* ensure that the resulting search pattern will be a valid file name */ - if (dirname == NULL) { - DIRENT_SET_ERRNO (ENOENT); - return NULL; - } - if (strlen (dirname) + 3 >= MAX_PATH) { - DIRENT_SET_ERRNO (ENAMETOOLONG); - return NULL; - } - - /* construct new DIR structure */ - dirp = (DIR*) malloc (sizeof (struct DIR)); - if (dirp != NULL) { - int error; - - /* - * Convert relative directory name to an absolute one. This - * allows rewinddir() to function correctly when the current working - * directory is changed between opendir() and rewinddir(). - */ - if (GetFullPathNameA (dirname, MAX_PATH, dirp->patt, NULL)) { - char *p; - - /* append the search pattern "\\*\0" to the directory name */ - p = strchr (dirp->patt, '\0'); - if (dirp->patt < p && *(p-1) != '\\' && *(p-1) != ':') { - *p++ = '\\'; - } - *p++ = '*'; - *p = '\0'; - - /* open directory stream and retrieve the first entry */ - dirp->search_handle = FindFirstFileA (dirp->patt, &dirp->find_data); - if (dirp->search_handle != INVALID_HANDLE_VALUE) { - /* a directory entry is now waiting in memory */ - dirp->cached = 1; - error = 0; - } else { - /* search pattern is not a directory name? */ - DIRENT_SET_ERRNO (ENOENT); - error = 1; - } - } else { - /* buffer too small */ - DIRENT_SET_ERRNO (ENOMEM); - error = 1; - } - - if (error) { - free (dirp); - dirp = NULL; - } - } - - return dirp; -} - - -/***************************************************************************** - * Read a directory entry, and return a pointer to a dirent structure - * containing the name of the entry in d_name field. Individual directory - * entries returned by this very function include regular files, - * sub-directories, pseudo-directories "." and "..", but also volume labels, - * hidden files and system files may be returned. - */ -static struct dirent *readdir(DIR *dirp) -{ - DWORD attr; - if (dirp == NULL) { - /* directory stream did not open */ - DIRENT_SET_ERRNO (EBADF); - return NULL; - } - - /* get next directory entry */ - if (dirp->cached != 0) { - /* a valid directory entry already in memory */ - dirp->cached = 0; - } else { - /* get the next directory entry from stream */ - if (dirp->search_handle == INVALID_HANDLE_VALUE) { - return NULL; - } - if (FindNextFileA (dirp->search_handle, &dirp->find_data) == FALSE) { - /* the very last entry has been processed or an error occured */ - FindClose (dirp->search_handle); - dirp->search_handle = INVALID_HANDLE_VALUE; - return NULL; - } - } - - /* copy as a multibyte character string */ - DIRENT_STRNCPY ( dirp->curentry.d_name, - dirp->find_data.cFileName, - sizeof(dirp->curentry.d_name) ); - dirp->curentry.d_name[MAX_PATH] = '\0'; - - /* compute the length of name */ - dirp->curentry.d_namlen = strlen (dirp->curentry.d_name); - - /* determine file type */ - attr = dirp->find_data.dwFileAttributes; - if ((attr & FILE_ATTRIBUTE_DEVICE) != 0) { - dirp->curentry.d_type = DT_CHR; - } else if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) { - dirp->curentry.d_type = DT_DIR; - } else { - dirp->curentry.d_type = DT_REG; - } - return &dirp->curentry; -} - - -/***************************************************************************** - * Close directory stream opened by opendir() function. Close of the - * directory stream invalidates the DIR structure as well as any previously - * read directory entry. - */ -static int closedir(DIR *dirp) -{ - if (dirp == NULL) { - /* invalid directory stream */ - DIRENT_SET_ERRNO (EBADF); - return -1; - } - - /* release search handle */ - if (dirp->search_handle != INVALID_HANDLE_VALUE) { - FindClose (dirp->search_handle); - dirp->search_handle = INVALID_HANDLE_VALUE; - } - - /* release directory structure */ - free (dirp); - return 0; -} - - -/***************************************************************************** - * Resets the position of the directory stream to which dirp refers to the - * beginning of the directory. It also causes the directory stream to refer - * to the current state of the corresponding directory, as a call to opendir() - * would have done. If dirp does not refer to a directory stream, the effect - * is undefined. - */ -static void rewinddir(DIR* dirp) -{ - if (dirp != NULL) { - /* release search handle */ - if (dirp->search_handle != INVALID_HANDLE_VALUE) { - FindClose (dirp->search_handle); - } - - /* open new search handle and retrieve the first entry */ - dirp->search_handle = FindFirstFileA (dirp->patt, &dirp->find_data); - if (dirp->search_handle != INVALID_HANDLE_VALUE) { - /* a directory entry is now waiting in memory */ - dirp->cached = 1; - } else { - /* failed to re-open directory: no directory entry in memory */ - dirp->cached = 0; - } - } -} - - -#ifdef __cplusplus -} -#endif -#endif /*DIRENT_H*/ Copied: branches/tora-trotl/sandbox.cpp/direntw.h (from rev 4258, branches/tora-trotl/sandbox.cpp/dirent.h) =================================================================== --- branches/tora-trotl/sandbox.cpp/direntw.h (rev 0) +++ branches/tora-trotl/sandbox.cpp/direntw.h 2012-04-04 10:18:25 UTC (rev 4259) @@ -0,0 +1,372 @@ +/***************************************************************************** + * dirent.h - dirent API for Microsoft Visual Studio + * + * Copyright (C) 2006 Toni Ronkko + * + * 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 TONI RONKKO 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. + * + * Mar 15, 2011, Toni Ronkko + * Defined FILE_ATTRIBUTE_DEVICE for MSVC 6.0. + * + * Aug 11, 2010, Toni Ronkko + * Added d_type and d_namlen fields to dirent structure. The former is + * especially useful for determining whether directory entry represents a + * file or a directory. For more information, see + * http://www.delorie.com/gnu/docs/glibc/libc_270.html + * + * Aug 11, 2010, Toni Ronkko + * Improved conformance to the standards. For example, errno is now set + * properly on failure and assert() is never used. Thanks to Peter Brockam + * for suggestions. + * + * Aug 11, 2010, Toni Ronkko + * Fixed a bug in rewinddir(): when using relative directory names, change + * of working directory no longer causes rewinddir() to fail. + * + * Dec 15, 2009, John Cunningham + * Added rewinddir member function + * + * Jan 18, 2008, Toni Ronkko + * Using FindFirstFileA and WIN32_FIND_DATAA to avoid converting string + * between multi-byte and unicode representations. This makes the + * code simpler and also allows the code to be compiled under MingW. Thanks + * to Azriel Fasten for the suggestion. + * + * Mar 4, 2007, Toni Ronkko + * Bug fix: due to the strncpy_s() function this file only compiled in + * Visual Studio 2005. Using the new string functions only when the + * compiler version allows. + * + * Nov 2, 2006, Toni Ronkko + * Major update: removed support for Watcom C, MS-DOS and Turbo C to + * simplify the file, updated the code to compile cleanly on Visual + * Studio 2005 with both unicode and multi-byte character strings, + * removed rewinddir() as it had a bug. + * + * Aug 20, 2006, Toni Ronkko + * Removed all remarks about MSVC 1.0, which is antiqued now. Simplified + * comments by removing SGML tags. + * + * May 14 2002, Toni Ronkko + * Embedded the function definitions directly to the header so that no + * source modules need to be included in the Visual Studio project. Removed + * all the dependencies to other projects so that this very header can be + * used independently. + * + * May 28 1998, Toni Ronkko + * First version. + *****************************************************************************/ +#ifndef DIRENT_H +#define DIRENT_H + +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <string.h> +#include <stdlib.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <errno.h> + +/* Entries missing from MSVC 6.0 */ +#if !defined(FILE_ATTRIBUTE_DEVICE) +# define FILE_ATTRIBUTE_DEVICE 0x40 +#endif + +/* File type and permission flags for stat() */ +#if defined(_MSC_VER) && !defined(S_IREAD) +# define S_IFMT _S_IFMT /* file type mask */ +# define S_IFDIR _S_IFDIR /* directory */ +# define S_IFCHR _S_IFCHR /* character device */ +# define S_IFFIFO _S_IFFIFO /* pipe */ +# define S_IFREG _S_IFREG /* regular file */ +# define S_IREAD _S_IREAD /* read permission */ +# define S_IWRITE _S_IWRITE /* write permission */ +# define S_IEXEC _S_IEXEC /* execute permission */ +#endif +#define S_IFBLK 0 /* block device */ +#define S_IFLNK 0 /* link */ +#define S_IFSOCK 0 /* socket */ + +#if defined(_MSC_VER) +# define S_IRUSR S_IREAD /* read, user */ +# define S_IWUSR S_IWRITE /* write, user */ +# define S_IXUSR 0 /* execute, user */ +# define S_IRGRP 0 /* read, group */ +# define S_IWGRP 0 /* write, group */ +# define S_IXGRP 0 /* execute, group */ +# define S_IROTH 0 /* read, others */ +# define S_IWOTH 0 /* write, others */ +# define S_IXOTH 0 /* execute, others */ +#endif + +/* Indicates that d_type field is available in dirent structure */ +#define _DIRENT_HAVE_D_TYPE + +/* File type flags for d_type */ +#define DT_UNKNOWN 0 +#define DT_REG S_IFREG +#define DT_DIR S_IFDIR +#define DT_FIFO S_IFFIFO +#define DT_SOCK S_IFSOCK +#define DT_CHR S_IFCHR +#define DT_BLK S_IFBLK + +/* Macros for converting between st_mode and d_type */ +#define IFTODT(mode) ((mode) & S_IFMT) +#define DTTOIF(type) (type) + +/* + * File type macros. Note that block devices, sockets and links cannot be + * distinguished on Windows and the macros S_ISBLK, S_ISSOCK and S_ISLNK are + * only defined for compatibility. These macros should always return false + * on Windows. + */ +#define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFFIFO) +#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) +#define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) +#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK) +#define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK) +#define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR) +#define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK) + +#ifdef __cplusplus +extern "C" { +#endif + + +typedef struct dirent +{ + char d_name[MAX_PATH + 1]; /* File name */ + size_t d_namlen; /* Length of name without \0 */ + int d_type; /* File type */ +} dirent; + + +typedef struct DIR +{ + dirent curentry; /* Current directory entry */ + WIN32_FIND_DATAA find_data; /* Private file data */ + int cached; /* True if data is valid */ + HANDLE search_handle; /* Win32 search handle */ + char patt[MAX_PATH + 3]; /* Initial directory name */ +} DIR; + + +/* Forward declarations */ +static DIR *opendir(const char *dirname); +static struct dirent *readdir(DIR *dirp); +static int closedir(DIR *dirp); +static void rewinddir(DIR* dirp); + + +/* Use the new safe string functions introduced in Visual Studio 2005 */ +#if defined(_MSC_VER) && _MSC_VER >= 1400 +# define DIRENT_STRNCPY(dest,src,size) strncpy_s((dest),(size),(src),_TRUNCATE) +#else +# define DIRENT_STRNCPY(dest,src,size) strncpy((dest),(src),(size)) +#endif + +/* Set errno variable */ +#if defined(_MSC_VER) +#define DIRENT_SET_ERRNO(x) _set_errno (x) +#else +#define DIRENT_SET_ERRNO(x) (errno = (x)) +#endif + + +/***************************************************************************** + * Open directory stream DIRNAME for read and return a pointer to the + * internal working area that is used to retrieve individual directory + * entries. + */ +static DIR *opendir(const char *dirname) +{ + DIR *dirp; + + /* ensure that the resulting search pattern will be a valid file name */ + if (dirname == NULL) { + DIRENT_SET_ERRNO (ENOENT); + return NULL; + } + if (strlen (dirname) + 3 >= MAX_PATH) { + DIRENT_SET_ERRNO (ENAMETOOLONG); + return NULL; + } + + /* construct new DIR structure */ + dirp = (DIR*) malloc (sizeof (struct DIR)); + if (dirp != NULL) { + int error; + + /* + * Convert relative directory name to an absolute one. This + * allows rewinddir() to function correctly when the current working + * directory is changed between opendir() and rewinddir(). + */ + if (GetFullPathNameA (dirname, MAX_PATH, dirp->patt, NULL)) { + char *p; + + /* append the search pattern "\\*\0" to the directory name */ + p = strchr (dirp->patt, '\0'); + if (dirp->patt < p && *(p-1) != '\\' && *(p-1) != ':') { + *p++ = '\\'; + } + *p++ = '*'; + *p = '\0'; + + /* open directory stream and retrieve the first entry */ + dirp->search_handle = FindFirstFileA (dirp->patt, &dirp->find_data); + if (dirp->search_handle != INVALID_HANDLE_VALUE) { + /* a directory entry is now waiting in memory */ + dirp->cached = 1; + error = 0; + } else { + /* search pattern is not a directory name? */ + DIRENT_SET_ERRNO (ENOENT); + error = 1; + } + } else { + /* buffer too small */ + DIRENT_SET_ERRNO (ENOMEM); + error = 1; + } + + if (error) { + free (dirp); + dirp = NULL; + } + } + + return dirp; +} + + +/***************************************************************************** + * Read a directory entry, and return a pointer to a dirent structure + * containing the name of the entry in d_name field. Individual directory + * entries returned by this very function include regular files, + * sub-directories, pseudo-directories "." and "..", but also volume labels, + * hidden files and system files may be returned. + */ +static struct dirent *readdir(DIR *dirp) +{ + DWORD attr; + if (dirp == NULL) { + /* directory stream did not open */ + DIRENT_SET_ERRNO (EBADF); + return NULL; + } + + /* get next directory entry */ + if (dirp->cached != 0) { + /* a valid directory entry already in memory */ + dirp->cached = 0; + } else { + /* get the next directory entry from stream */ + if (dirp->search_handle == INVALID_HANDLE_VALUE) { + return NULL; + } + if (FindNextFileA (dirp->search_handle, &dirp->find_data) == FALSE) { + /* the very last entry has been processed or an error occured */ + FindClose (dirp->search_handle); + dirp->search_handle = INVALID_HANDLE_VALUE; + return NULL; + } + } + + /* copy as a multibyte character string */ + DIRENT_STRNCPY ( dirp->curentry.d_name, + dirp->find_data.cFileName, + sizeof(dirp->curentry.d_name) ); + dirp->curentry.d_name[MAX_PATH] = '\0'; + + /* compute the length of name */ + dirp->curentry.d_namlen = strlen (dirp->curentry.d_name); + + /* determine file type */ + attr = dirp->find_data.dwFileAttributes; + if ((attr & FILE_ATTRIBUTE_DEVICE) != 0) { + dirp->curentry.d_type = DT_CHR; + } else if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) { + dirp->curentry.d_type = DT_DIR; + } else { + dirp->curentry.d_type = DT_REG; + } + return &dirp->curentry; +} + + +/***************************************************************************** + * Close directory stream opened by opendir() function. Close of the + * directory stream invalidates the DIR structure as well as any previously + * read directory entry. + */ +static int closedir(DIR *dirp) +{ + if (dirp == NULL) { + /* invalid directory stream */ + DIRENT_SET_ERRNO (EBADF); + return -1; + } + + /* release search handle */ + if (dirp->search_handle != INVALID_HANDLE_VALUE) { + FindClose (dirp->search_handle); + dirp->search_handle = INVALID_HANDLE_VALUE; + } + + /* release directory structure */ + free (dirp); + return 0; +} + + +/***************************************************************************** + * Resets the position of the directory stream to which dirp refers to the + * beginning of the directory. It also causes the directory stream to refer + * to the current state of the corresponding directory, as a call to opendir() + * would have done. If dirp does not refer to a directory stream, the effect + * is undefined. + */ +static void rewinddir(DIR* dirp) +{ + if (dirp != NULL) { + /* release search handle */ + if (dirp->search_handle != INVALID_HANDLE_VALUE) { + FindClose (dirp->search_handle); + } + + /* open new search handle and retrieve the first entry */ + dirp->search_handle = FindFirstFileA (dirp->patt, &dirp->find_data); + if (dirp->search_handle != INVALID_HANDLE_VALUE) { + /* a directory entry is now waiting in memory */ + dirp->cached = 1; + } else { + /* failed to re-open directory: no directory entry in memory */ + dirp->cached = 0; + } + } +} + + +#ifdef __cplusplus +} +#endif +#endif /*DIRENT_H*/ Modified: branches/tora-trotl/sandbox.cpp/input =================================================================== --- branches/tora-trotl/sandbox.cpp/input 2012-04-04 08:28:26 UTC (rev 4258) +++ branches/tora-trotl/sandbox.cpp/input 2012-04-04 10:18:25 UTC (rev 4259) @@ -1,2 +1,72 @@ -select employee_id from employees; - +with + codes2codelocales as + ( + select t6.cdl_name as cod_name, t7.cdl_name as cod_cod_name, t14.cod_oid + from servicedesk.itsm_codes t14 + left outer join servicedesk.itsm_codes_locale t6 on (t6.cdl_cod_oid=t14.cod_oid) + left outer join servicedesk.itsm_codes_locale t7 on (t7.cdl_cod_oid=t14.cod_cod_oid) + ) + , incident as + ( + select t1.*, + c2cl1.cod_name as "closure code", c2cl1.cod_cod_name as "closure code parent", + c2cl2.cod_name as "reason caused code", c2cl2.cod_cod_name as "reason caused code parent", + t11.cdl_name "severity", t13.cdl_name "business impact", t16.cdl_name "priority", + t2.rct_name "status", t12.rct_name "category", t99.rct_name "folder" + from servicedesk.itsm_incidents t1 + join servicedesk.itsm_codes_locale t11 on (t1.inc_sev_oid=t11.cdl_cod_oid) + join servicedesk.itsm_codes_locale t13 on (t1.inc_imp_oid=t13.cdl_cod_oid) + join servicedesk.itsm_codes_locale t16 on (t1.inc_pri_oid=t16.cdl_cod_oid) + join servicedeskrepo.rep_codes_text t2 on (t1.inc_sta_oid=t2.rct_rcd_oid) + join servicedeskrepo.rep_codes_text t12 on (t1.inc_cat_oid=t12.rct_rcd_oid) + join servicedeskrepo.rep_codes_text t99 on (t1.inc_poo_oid=t99.rct_rcd_oid) + left outer join codes2codelocales c2cl1 on (t1.inc_clo_oid=c2cl1.cod_oid) + left outer join codes2codelocales c2cl2 on (t1.inc_cla_oid=c2cl2.cod_oid) + where t1."reg_created" between sysdate-1 and sysdate + ) + , workgrouphistory as + ( + select i.inc_id + , max(t101.hin_subject) keep (dense_rank first order by (t101.reg_created)) as "first" + , max(t101.hin_subject) keep (dense_rank last order by (t101.reg_created)) as "last" + from + servicedesk.itsm_historylines_incident t101 + join incident i on (t101.hin_inc_oid = i.inc_oid) +-- from servicedesk.itsm_incidents i (t101.hin_inc_oid = i.inc_oid) + where t101.hin_subject like 'to workgroup from%' +-- and i."reg_created" between sysdate-1 and sysdate + group by i.inc_id + ) +select + incident.inc_id "id" + ,incident."status" + ,incident.inc_description "description" + ,t4.wog_searchcode "workgroup" + ,t5.per_searchcode "person" + ,incident.inc_solution "solution" + ,incident."closure code" + ,incident."closure code parent" + ,incident."reason caused code" + ,incident."reason caused code parent" + ,t10.cit_searchcode "ci" + ,incident."severity" + ,incident."category" + ,incident."business impact" + ,incident."priority" + ,to_char(incident."reg_created", 'dd-mm-yy hh24:mi:ss') "registered" + ,to_char(incident."inc_deadline", 'dd-mm-yy hh24:mi:ss') "deadline" + ,to_char(incident."inc_actualfinish", 'dd-mm-yy hh24:mi:ss') "finish" + ,t3.icf_incshorttext3 "message group" + ,t3.icf_incshorttext4 "application" + ,t3.icf_incshorttext2 "msg id" + ,incident."folder" + ,workgrouphistory."first" "first wg" + ,workgrouphistory."last" "last wg" + ,t102.hin_subject "frirst pri" +from incident +join servicedesk.itsm_inc_custom_fields t3 on (incident.inc_oid=t3.icf_inc_oid) +join servicedesk.itsm_workgroups t4 on (incident.inc_assign_workgroup=t4.wog_oid) +join workgrouphistory on (incident.inc_id = workgrouphistory.inc_id) +left outer join servicedesk.itsm_persons t5 on (incident.inc_assign_person_to=t5.per_oid) +left outer join servicedesk.itsm_configuration_items t10 on (incident.inc_cit_oid=t10.cit_oid) +left outer join servicedesk.itsm_historylines_incident t102 on (incident.inc_oid = t102.hin_inc_oid and t102.hin_subject like 'priority set to%') Modified: branches/tora-trotl/sandbox.cpp/utils.cpp =================================================================== --- branches/tora-trotl/sandbox.cpp/utils.cpp 2012-04-04 08:28:26 UTC (rev 4258) +++ branches/tora-trotl/sandbox.cpp/utils.cpp 2012-04-04 10:18:25 UTC (rev 4259) @@ -1,10 +1,10 @@ #include "utils.hpp" -#include "dirent.h" #include <stdio.h> #if defined __linux # include <sys/mman.h> # define DIRDELIM '/' +# include <dirent.h> #elif _MSC_VER # define _CRT_SECURE_NO_WARNINGS 1 # include <iostream> @@ -16,7 +16,8 @@ # define strerror _strerror # define O_RDONLY _O_RDONLY # define fstat fstat -#define DIRDELIM '\\' +# define DIRDELIM '\\' +# include "direntw.h" #endif extern void parseFile(const char* fName, int fd); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ibr...@us...> - 2012-04-04 10:22:33
|
Revision: 4260 http://tora.svn.sourceforge.net/tora/?rev=4260&view=rev Author: ibre5041 Date: 2012-04-04 10:22:26 +0000 (Wed, 04 Apr 2012) Log Message: ----------- Modified Paths: -------------- branches/tora-trotl/sandbox.cpp/t1.cpp branches/tora-trotl/sandbox.cpp/t2.cpp branches/tora-trotl/sandbox.cpp/t3.cpp branches/tora-trotl/sandbox.cpp/t4.cpp Modified: branches/tora-trotl/sandbox.cpp/t1.cpp =================================================================== --- branches/tora-trotl/sandbox.cpp/t1.cpp 2012-04-04 10:18:25 UTC (rev 4259) +++ branches/tora-trotl/sandbox.cpp/t1.cpp 2012-04-04 10:22:26 UTC (rev 4260) @@ -43,7 +43,6 @@ #include "PLSQLParser_SQLPLUSParser.hpp" #include <sys/types.h> -#include "dirent.h" #include <iostream> #include <sstream> Modified: branches/tora-trotl/sandbox.cpp/t2.cpp =================================================================== --- branches/tora-trotl/sandbox.cpp/t2.cpp 2012-04-04 10:18:25 UTC (rev 4259) +++ branches/tora-trotl/sandbox.cpp/t2.cpp 2012-04-04 10:22:26 UTC (rev 4260) @@ -43,7 +43,6 @@ #include "PLSQLParser_SQLPLUSParser.hpp" #include <sys/types.h> -#include "dirent.h" #include <iostream> #include <sstream> Modified: branches/tora-trotl/sandbox.cpp/t3.cpp =================================================================== --- branches/tora-trotl/sandbox.cpp/t3.cpp 2012-04-04 10:18:25 UTC (rev 4259) +++ branches/tora-trotl/sandbox.cpp/t3.cpp 2012-04-04 10:22:26 UTC (rev 4260) @@ -43,7 +43,6 @@ #include "PLSQLParser_SQLPLUSParser.hpp" #include <sys/types.h> -#include "dirent.h" #include <iostream> #include <sstream> Modified: branches/tora-trotl/sandbox.cpp/t4.cpp =================================================================== --- branches/tora-trotl/sandbox.cpp/t4.cpp 2012-04-04 10:18:25 UTC (rev 4259) +++ branches/tora-trotl/sandbox.cpp/t4.cpp 2012-04-04 10:22:26 UTC (rev 4260) @@ -43,7 +43,6 @@ #include "PLSQLParser_SQLPLUSParser.hpp" #include <sys/types.h> -#include "dirent.h" #include <iostream> #include <sstream> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |