blob: c79560898483f4bc82d019ebed66683b886bede3 [file] [log] [blame]
/********************************************************************
//
// @@@ START COPYRIGHT @@@
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you 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 COPYRIGHT @@@
********************************************************************/
%a 60000
%o 30000
%p 30000
%e 30000
%n 30000
%{
/* -*-C++-*-
*****************************************************************************
*
* File: sqlci_lex.l
* Description:
*
*
* Created: 4/15/95
* Language: C++
* Status: $State: Exp $
*
*
*
*
*****************************************************************************
*/
#include "ComGuardianFileNameParts.h"
#include "Platform.h"
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include "SqlciCmd.h"
#include "str.h"
#include "Sqlci.h"
#define yylval sqlcilval
#define yyerror sqlcierror
#include "sqlci_yacc.h"
#include "SqlciParseGlobals.h"
static int token_to_return;
#define return_IDENT_or_TOKEN(token_id, set_ident) \
{\
if (SqlciParse_IdentifierExpected)\
{\
if (yylval.stringval_type)\
delete [] yylval.stringval_type;\
yylval.stringval_type = new char[strlen(yytext)+1];\
strcpy(yylval.stringval_type, yytext);\
token_to_return = IDENTIFIER; \
}\
else token_to_return = token_id; \
if (SqlciParse_SyntaxErrorCleanup) \
SqlciParse_IdentifierExpected = -1; \
else \
SqlciParse_IdentifierExpected = set_ident;\
/* cout << "token = " << token_id << endl;*/ \
return (token_to_return);\
}
#ifndef NA_LINUX
#ifdef NA_WINNT
extern "C" int isatty(int);
#else
extern "C" { int yylex(void); }
#endif
#else
extern "C" { int yylex(void); }
#endif
# undef YY_INPUT
#define YY_INPUT(buffer,result,maxsize)\
{\
buffer[0] = SqlciParse_InputStr[SqlciParse_InputPos++];\
if ( !buffer[0] )\
result = YY_NULL;\
else\
result=1;\
}
#undef unput
#define unput(c) SqlciUnput(c)
#define yylval sqlcilval
#define yyerror sqlcierror
// put back a previously read input character that wasn't needed
void SqlciUnput(char c)
{
SqlciParse_InputPos--;
}
// handle EOF in the input stream and let lex continue
// with the next input file
extern "C"
int yywrap(void)
{
return 0;
}
%}
D [0-9]
A [a-zA-Z]
G ({A}({A}|{D})*)
%x FNAME
%s LOGFNAME
B [ \t\n]+
%%
{B} ;
<FNAME>{B} ;
<LOGFNAME>{B} ;
[Nn][Oo][Ss][Qq][Ll] return_IDENT_or_TOKEN(NOSQL, 0);
[Cc][Oo][Nn][Tt][Aa][Ii][Nn][Ss][Qq][Ll] return_IDENT_or_TOKEN(CONTAINSQL, 0);
[Rr][Ee][Aa][Dd][Ss][Qq][Ll] return_IDENT_or_TOKEN(READSQL, 0);
[Mm][Oo][Dd][Ii][Ff][Yy][Ss][Qq][Ll] return_IDENT_or_TOKEN(MODIFYSQL, 0);
[Rr][Ee][Ss][Ee][Tt][Vv][Ii][Oo][Ll][Aa][Tt][Ii][Oo][Nn] return_IDENT_or_TOKEN(RESETVIOLATION, 0);
[Cc][Hh][Ee][Cc][Kk][Vv][Ii][Oo][Ll][Aa][Tt][Ii][Oo][Nn] return_IDENT_or_TOKEN(CHECKVIOLATION, 0);
[Nn][Oo][Aa][Uu][Tt][Oo][Xx][Aa][Cc][Tt] return_IDENT_or_TOKEN(NoAutoXact, 0);
[Dd][Ee][Ss][Cc][Rr][Ii][Bb][Ee] return_IDENT_or_TOKEN(DESCRIBEToken, 0);
[Cc][Rr][Ee][Aa][Tt][Ee][Cc][Oo][Nn][Tt][Ee][Xx][Tt] return_IDENT_or_TOKEN(CREATECONTEXT, 0);
[Cc][Uu][Rr][Rr][Ee][Nn][Tt][Cc][Oo][Nn][Tt][Ee][Xx][Tt] return_IDENT_or_TOKEN(CURRENTCONTEXT, 0);
[Ss][Ww][Ii][Tt][Cc][Hh][Cc][Oo][Nn][Tt][Ee][Xx][Tt] return_IDENT_or_TOKEN(SWITCHCONTEXT, 0);
[Dd][Ee][Ll][Ee][Tt][Ee][Cc][Oo][Nn][Tt][Ee][Xx][Tt] return_IDENT_or_TOKEN(DELETECONTEXT, 0);
[Rr][Ee][Ss][Ee][Tt][Cc][[Oo][Nn][Tt][Ee][Xx][Tt] return_IDENT_or_TOKEN(RESETCONTEXT, 0);
[Aa][Dd][Dd] return_IDENT_or_TOKEN( ADDtoken, 0);
[Aa][Ll][Ll] return_IDENT_or_TOKEN(ALLtoken, 0);
[Bb][Ee][Gg][Ii][Nn] return_IDENT_or_TOKEN(TOK_BEGIN, 0);
[Bb][Rr][Ii][Ee][Ff] return_IDENT_or_TOKEN(BRIEF, 0);
[Bb][Tt] return_IDENT_or_TOKEN(TOK_BEGIN, 0);
[Dd][Ee][Tt][Aa][Ii][Ll] return_IDENT_or_TOKEN(DETAIL, 0);
[Cc][Aa][Ll][Ll] return_IDENT_or_TOKEN (CALLToken, 0);
[Cc][Ll][Ee][Aa][Nn][Uu][Pp] return_IDENT_or_TOKEN(CLEANUP, 0);
[Cc][Ll][Aa][Ss][Ss] return_IDENT_or_TOKEN(CLASStoken, 0);
[Cc][Ll][Oo][Ss][Ee] return_IDENT_or_TOKEN(CLOSEtoken, 0);
[Cc][Oo][Mm][Mm][Aa][Nn][Dd] return_IDENT_or_TOKEN(COMMANDStoken,0);
[Cc][Oo][Mm][Mm][Aa][Nn][Dd][Ss] return_IDENT_or_TOKEN(COMMANDStoken,0);
[Cc][Oo][Mm][Mm][Ii][Tt] return_IDENT_or_TOKEN(COMMIT, 0);
[Cc][Oo][Mm][Mm][Ee][Nn][Tt] return_IDENT_or_TOKEN(COMMENTtoken, 0);
[Cc][Oo][Nn][Tt][Rr][Oo][Ll] return_IDENT_or_TOKEN(CONTROL, 0);
[Cc][Oo][Nn][Tt][Rr][Oo][Ll][Ss] return_IDENT_or_TOKEN(CONTROL, 0);
[Cc][Qq][Dd] return_IDENT_or_TOKEN(CONTROL, 0);
[Oo][Ss][Ii][Mm] return_IDENT_or_TOKEN(OSIM, 0);
[Cc][Uu][Rr][Ss][Oo][Rr] return_IDENT_or_TOKEN(CURSORtoken, 0);
[Cc][Uu][Rr][Ss][Oo][Rr][ ]+[Ww][Ii][Tt][Hh] return_IDENT_or_TOKEN(CURSORWITH, 0);
[Dd][Ee][Ff][Aa][Uu][Ll][Tt] return_IDENT_or_TOKEN(DEFAULTtoken, 0);
[Dd][Ee][Aa][Ll][Ll][Oo][Cc] return_IDENT_or_TOKEN(DEALLOCtoken, 0);
[Dd][Ee][Cc][Ll][Aa][Rr][Ee] return_IDENT_or_TOKEN(DECLAREtoken, 0);
[Dd][Ee][Ff][Ii][Nn][Ee] return_IDENT_or_TOKEN(DEFINEtoken, 0);
[Dd][Ii][Ss][Pp][Ll][Aa][Yy] return_IDENT_or_TOKEN(DISPLAY, 0);
[Dd][Ii][Ss][Pp][Ll][Aa][Yy]{B}[Ss][Tt][Aa][Tt][Ii][Ss][Tt][Ii][Cc][Ss] return_IDENT_or_TOKEN(DISPLAY_STATISTICS, 0);
[Dd][Ii][Ss][Pp][Ll][Aa][Yy]{B}[Qq][Ii][Dd] return_IDENT_or_TOKEN(DISPLAY_QUERYID,0);
[Dd][Ii][Ss][Pp][Ll][Aa][Yy]_[Ee][Xx][Pp][Ll][Aa][Ii][Nn] return_IDENT_or_TOKEN(DISPLAY_EXPLAIN, 0);
[Dd][Ii][Ss][Pp][Ll][Aa][Yy]_[Qq][Cc] return_IDENT_or_TOKEN(DISPLAY_QC,0);
[Dd][Ii][Ss][Pp][Ll][Aa][Yy]_[Qq][Cc]_[Ee][Nn][Tt][Rr][Ii][Ee][Ss] return_IDENT_or_TOKEN(DISPLAY_QC_ENTRIES,0);
[Dd][Ii][Ss][Pp][Ll][Aa][Yy]_[Qq][Cc]_[Ee][Nn][Tt][Rr][Ii][Ee][Ss]_[Nn][Oo][Tt][Ii][Mm][Ee] return_IDENT_or_TOKEN(DISPLAY_QC_ENTRIES_NOTIME,0);
[Dd][Ii][Ss][Pp][Ll][Aa][Yy]{B}[Uu][Ss][Ee]{B}[Oo][Ff] return_IDENT_or_TOKEN(DISPLAY_USE_OF, 0);
[Ee][Nn][Vv] return_IDENT_or_TOKEN(MXCI_TOK_ENV, 0);
[Ee][Nn][Vv][Vv][Aa][Rr] return_IDENT_or_TOKEN(ENVVARtoken, 0);
[Ee][Tt] return_IDENT_or_TOKEN(COMMIT, 0);
[Ee][Xx][Pp][Ll][Aa][Ii][Nn] return_IDENT_or_TOKEN(EXPLAIN, 0);
[Ee][Xx][Tt][Rr][Aa][Cc][Tt] return_IDENT_or_TOKEN(EXTRACTtoken, 0);
[Ff][Ee][Tt][Cc][Hh] return_IDENT_or_TOKEN(FETCHtoken, 0);
[Ff][Ii][Ll][Ee] {
BEGIN(FNAME);
//SqlciParse_IdentifierExpected = 0;
return_IDENT_or_TOKEN(FILEtoken, 0);
}
[Gg][Ee][Nn][Ee][Rr][Aa][Tt][Ee] return_IDENT_or_TOKEN(GENERATEtoken, 0);
[Gg][Ee][Tt] return_IDENT_or_TOKEN(GETtoken, 0);
[Gg][Ee][Tt]{B}[Ss][Tt][Aa][Tt][Ii][Ss][Tt][Ii][Cc][Ss] return_IDENT_or_TOKEN(GETSTATISTICStoken, 0);
[Hh][Ii][Vv][Ee] return_IDENT_or_TOKEN (HIVEtoken, 0);
[Ii][Nn] return_IDENT_or_TOKEN (INtoken, 0);
[Ii][Nn][Ff][Oo] return_IDENT_or_TOKEN (INFOtoken, 0);
[Ii][Nn][Ff][Ii][Ll][Ee] {
BEGIN FNAME;
return_IDENT_or_TOKEN (INFILE, 0);
}
[Ll][Oo][Aa][Dd] return_IDENT_or_TOKEN(LOADtoken, 0);
[Mm][Ee][Rr][Gg][Ee] return_IDENT_or_TOKEN(MERGEtoken, 0);
[Mm][Ee][Tt][Aa][Dd][Aa][Tt][Aa] return_IDENT_or_TOKEN(METADATAtoken, 0);
[Mm][Aa][Pp] return_IDENT_or_TOKEN(MAPtoken, 0);
[Mm][Oo][Dd][Ii][Ff][Yy] return_IDENT_or_TOKEN(MODIFY, 0);
[Mm][Ss][Cc][Kk] return_IDENT_or_TOKEN(MSCKtoken, 0);
[Oo][Bb][Ee][Yy] {
BEGIN FNAME;
return_IDENT_or_TOKEN (OBEY, 0);
}
[Oo][Bb][Jj][Ee][Cc][Tt] return_IDENT_or_TOKEN(OBJECTtoken, 0);
[Oo][Nn] return_IDENT_or_TOKEN(ON, 0);
[Oo][Ff] return_IDENT_or_TOKEN(OFtoken, 0);
[Oo][Ff][Ff] return_IDENT_or_TOKEN(OFF, 0);
[Oo][Uu][Tt][Ff][Ii][Ll][Ee] {
BEGIN FNAME;
return_IDENT_or_TOKEN (OUTFILE, 0);
}
[Oo][Pp][Ee][Nn] return_IDENT_or_TOKEN(OPENtoken, 0);
[Oo][Pp][Tt][Ii][Oo][Nn][Ss] return_IDENT_or_TOKEN(OPTIONStoken, 0);
[Pp][Rr][Ee][Pp][Aa][Rr][Ee][Dd] return_IDENT_or_TOKEN(PREPARED, 0);
[Pp][Rr][Oo][Cc][Ee][Ss][Ss] return_IDENT_or_TOKEN(PROCESStoken, 0);
[Ee][Rr][Rr][Oo][Rr] return_IDENT_or_TOKEN(ERRORtoken, 0);
[Ee][Xx][Ii][Tt] return_IDENT_or_TOKEN(EXIT, 0);
[Ff][Cc] return_IDENT_or_TOKEN(FC, -1);
[Ff][Oo][Rr] return_IDENT_or_TOKEN(FORtoken, 0);
[Rr][Ee][Pp][Ll][Ii][Cc][Aa][Tt][Ee] return_IDENT_or_TOKEN(REPLICATEtoken, 0);
[[Cc][Pp][Uu] return_IDENT_or_TOKEN(CPU, 0);
[Pp][Ii][Dd] return_IDENT_or_TOKEN(PID, 0);
[Qq][Ii][Dd] return_IDENT_or_TOKEN(QID, 0);
[Rr][Ee][Pp][Ee][Aa][Tt] return_IDENT_or_TOKEN(REPEAT, -1);
[Ss][Hh][Oo][Ww][Ss][Tt][Aa][Tt][Ss] return_IDENT_or_TOKEN(SHOWSTATS, 0);
[Ss][Hh][Oo][Ww][Tt][Rr][Aa][Nn][Ss][Aa][Cc][Tt][Ii][Oo][Nn] return_IDENT_or_TOKEN(SHOWSTATS, 0);
[Ii][Nn][Vv][Oo][Kk][Ee] return_IDENT_or_TOKEN(INVOKE, 0);
[Ll][Oo][Gg] {
BEGIN LOGFNAME;
return_IDENT_or_TOKEN(LOG, 0);
}
[Hh][Ii][Ss][Tt][Oo][Rr][Yy] return_IDENT_or_TOKEN(HISTORY, 0);
[Rr][Ee][Ss][Ee][Tt] return_IDENT_or_TOKEN(RESET, 0);
[Ss][Ee][Tt]{B}[Tt][Aa][Bb][Ll][Ee] return_IDENT_or_TOKEN(SET_TABLEtoken, 0);
[Ss][Ee][Tt]{B}[Tt][Rr][Aa][Nn][Ss][Aa][Cc][Tt][Ii][Oo][Nn] return_IDENT_or_TOKEN(SET_TRANSACTIONtoken, 0);
[Ss][Ee][Tt] return_IDENT_or_TOKEN(SETtoken, 0);
[Ss][Ee][Tt][Ee][Nn][Vv] return_IDENT_or_TOKEN(SETENV, 0);
[Ll][Ii][Ss][Tt]_[Cc][Oo][Uu][Nn][Tt] return_IDENT_or_TOKEN(LISTCOUNT, 0);
[Ff][Ii][Rr][Ss][Tt] return_IDENT_or_TOKEN(FIRST, 0);
[Nn][Ee][Xx][Tt] return_IDENT_or_TOKEN(NEXT, 0);
[Rr][Ee][Pp][Oo][Rr][Tt] return_IDENT_or_TOKEN(REPORT, 0);
[Ss][Qq][Ll] return_IDENT_or_TOKEN(SQL, 0);
[Cc][Aa][Nn][Cc][Ee][ll] return_IDENT_or_TOKEN(CANCEL, 0);
[Mm][Oo][Dd][Ee] return_IDENT_or_TOKEN(MODE,0);
[Ww][Aa][Rr][Nn][Ii][Nn][Gg][Ss] return_IDENT_or_TOKEN(VERBOSE, 0);
[Pp][Aa][Rr][Aa][Mm] return_IDENT_or_TOKEN(PARAM, 0);
[Pp][Aa][Rr][Aa][Mm][Ss] return_IDENT_or_TOKEN(PARAM, 0);
[Pp][Aa][Tt][Tt][Ee][Rr][Nn] return_IDENT_or_TOKEN(SQ_LINUX_PATTERN, 0);
[Pp][Aa][Tt][Tt][Ee][Rr][Nn]_[Aa][Ss]_[Ii][Ss] return_IDENT_or_TOKEN(PATTERN_AS_IS, 0);
[Pp][Rr][Oo][Cc][Ee][Dd][Uu][Rr][Ee] return_IDENT_or_TOKEN(PROCEDUREtoken, 0);
[Pp][Uu][Rr][Gg][Ee][Dd][Aa][Tt][Aa] return_IDENT_or_TOKEN(PURGEDATA, 0);
[Pp][Oo][Pp][Uu][Ll][Aa][Tt][Ee] return_IDENT_or_TOKEN(POPULATE, 0);
[Vv][Aa][Ll][Ii][Dd][Aa][Tt][Ee] return_IDENT_or_TOKEN(VALIDATEtoken, 0);
[Rr][Ee][Ff][Rr][Ee][Ss][Hh] return_IDENT_or_TOKEN(REFRESH, 0); /* MV - REFRESH utility */
[Rr][Ee][Pp][Oo][Ss][Ii][Tt][Oo][Rr][Yy] return_IDENT_or_TOKEN(REPOSITORYtoken, 0);
[Rr][Oo][Ww][Ss][Ee][Tt] return_IDENT_or_TOKEN(ROWSETtoken, 0);
[Tt][Rr][Aa][Nn][Ss][Ff][Oo][Rr][Mm] return_IDENT_or_TOKEN(TRANSFORM, 0);
[Cc][Ll][Ee][Aa][Rr] return_IDENT_or_TOKEN(CLEAR, 0);
[Ss][Hh] return_IDENT_or_TOKEN(SHELL, 0);
[Ss][Hh][Ee][Ll][Ll] return_IDENT_or_TOKEN(SHELL, 0);
[Ss][Hh][Oo][Ww] return_IDENT_or_TOKEN(SHOW, 0);
[Ss][Hh][Oo][Ww][Cc][Oo][Nn][Tt][Rr][Oo][Ll] return_IDENT_or_TOKEN(SHOWCONTROL, 0);
[Ss][Hh][Oo][Ww][Dd][Dd][Ll] return_IDENT_or_TOKEN(SHOWDDL, 0);
[Ss][Hh][Oo][Ww][Pp][Ll][Aa][Nn] return_IDENT_or_TOKEN(SHOWPLAN, 0);
[Ss][Hh][Oo][Ww][Ss][Hh][Aa][Pp][Ee] return_IDENT_or_TOKEN(SHOWSHAPE, 0);
[Ss][Hh][Oo][Ww][Ss][Ee][Tt] return_IDENT_or_TOKEN(SHOWSET, 0);
[Ss][Ee][Ss][Ss][Ii][Oo][Nn] return_IDENT_or_TOKEN(SESSIONtoken, 0);
[Ss][Tt][Oo][Rr][Ee] return_IDENT_or_TOKEN(STOREtoken, 0);
[Ss][Yy][Nn][Tt][Aa][Xx] return_IDENT_or_TOKEN(SYNTAX, 0);
[Ss][Yy][Ss][Tt][Ee][Mm] return_IDENT_or_TOKEN(SYSTEMtoken, 0);
[Ww][Aa][Ii][Tt] return_IDENT_or_TOKEN(WAITtoken, 0);
[Ee][Xx][Aa][Mm][Pp][Ll][Ee] return_IDENT_or_TOKEN(EXAMPLE, 0);
[Ss][Ee][Ll] return_IDENT_or_TOKEN(SELECTtoken, 0);
[Ss][Ee][Ll][Ee][Cc][Tt] return_IDENT_or_TOKEN(SELECTtoken, 0);
[Uu][Pp][Dd][Aa][Tt][Ee] return_IDENT_or_TOKEN(UPDATEtoken, 0);
[Dd][Ee][Ll][Ee][Tt][Ee] return_IDENT_or_TOKEN(DELETEtoken, 0);
[Ii][Nn][Ss] return_IDENT_or_TOKEN(INSERTtoken, 0);
[Ii][Nn][Ss][Ee][Rr][Tt] return_IDENT_or_TOKEN(INSERTtoken, 0);
[Uu][Pp][Ss][Ee][Rr][Tt] return_IDENT_or_TOKEN(UPSERTtoken, 0);
[Tt][Aa][Bb][Ll][Ee] return_IDENT_or_TOKEN(TABLE, 0);
[Vv][Aa][Ll][Uu][Ee][Ss] return_IDENT_or_TOKEN(VALUES, 0);
[Vv][Ee][Rr][Ss][Ii][Oo][Nn] return_IDENT_or_TOKEN(VERSIONtoken, 0);
[Cc][Rr][Ee][Aa][Tt][Ee] return_IDENT_or_TOKEN(CREATE, 0);
[Aa][Ll][Tt][Ee][Rr] return_IDENT_or_TOKEN(ALTER, 0);
[Dd][Rr][Oo][Pp] return_IDENT_or_TOKEN(DROP, 0);
[Ll][Oo][Cc][Kk] return_IDENT_or_TOKEN(LOCK, 0);
[Ll][Oo][Cc][Kk][Ii][Nn][Gg] return_IDENT_or_TOKEN(LOCKINGtoken, 0);
[Uu][Nn][Ll][Oo][Cc][Kk] return_IDENT_or_TOKEN(UNLOCK, 0);
[Pp][Rr][Ee][Pp][Aa][Rr][Ee] return_IDENT_or_TOKEN(PREPAREtoken, 0);
[Ee][Xx][Ee][Cc][Uu][Tt][Ee] return_IDENT_or_TOKEN(EXECUTEtoken, 0);
[Uu][Ss][Ii][Nn][Gg] return_IDENT_or_TOKEN(USING, 0);
[Ff][Rr][Oo][Mm] return_IDENT_or_TOKEN(FROM, 0);
[Ee][Dd][Ii][Tt] return_IDENT_or_TOKEN(EDIT, 0);
[Ll][Ss] return_IDENT_or_TOKEN(LS, 0);
[Cc][Dd] return_IDENT_or_TOKEN(CD, 0);
[Rr][Oo][Ll][Ll][Bb][Aa][Cc][Kk] return_IDENT_or_TOKEN(ROLLBACK, 0);
[Ss][Tt][Aa][Tt][Ii][Ss][Tt][Ii][Cc][Ss] return_IDENT_or_TOKEN(STATISTICS, 0);
[Ww][Oo][Rr][Kk] return_IDENT_or_TOKEN(WORK, 0);
[Uu][Pp][Dd][Aa][Tt][Ee]{B}[Ss][Tt][Aa][Tt][Ii][Ss][Tt][Ii][Cc][Ss] return_IDENT_or_TOKEN(UPD_STATS, 0);
[Uu][Pp][Dd][Aa][Tt][Ee]{B}[Hh][Ii][Ss][Tt][Oo][Gg][Rr][Aa][Mm]{B}[Ss][Tt][Aa][Tt][Ii][Ss][Tt][Ii][Cc][Ss] return_IDENT_or_TOKEN(UPD_HIST_STATS, 0);
[Ii][Nn][Ii][Tt][Ii][Aa][Ll][Ii][Zz][Ee] return_IDENT_or_TOKEN(INITIALIZE, 0);
[Rr][Ee][Ii][Nn][Ii][Tt][Ii][Aa][Ll][Ii][Zz][Ee] return_IDENT_or_TOKEN(REINITIALIZE, 0);
[Gg][Rr][Aa][Nn][Tt] return_IDENT_or_TOKEN(GIVE, 0);
[Gg][Ii][Vv][Ee] return_IDENT_or_TOKEN(GRANTtoken, 0);
[Rr][Ee][Vv][Oo][Kk][Ee] return_IDENT_or_TOKEN(REVOKEtoken, 0);
[Nn][Aa][Mm][Ee][Tt][Yy][Pp][Ee] return_IDENT_or_TOKEN(NAMETYPE, 0);
[Mm][Pp][Ll][Oo][Cc] return_IDENT_or_TOKEN(MPLOC, 0);
[Cc][Aa][Tt][Aa][Ll][Oo][Gg] return_IDENT_or_TOKEN(CATALOG, 0);
[Rr][Ee][Gg][Ii][Ss][Tt][Ee][Rr] return_IDENT_or_TOKEN(REGISTER, 0);
[Uu][Nn][Rr][Ee][Gg][Ii][Ss][Tt][Ee][Rr] return_IDENT_or_TOKEN(UNREGISTER, 0);
[Ss][Cc][Hh][Ee][Mm][Aa] return_IDENT_or_TOKEN(SCHEMA, 0);
[Ss][Tt][Aa][Tt][Ee][Mm][Ee][Nn][Tt] return_IDENT_or_TOKEN(STATEMENTtoken, 0);
[Ii][Ff] return_IDENT_or_TOKEN(IF, 0);
[Uu][Ii][Dd] return_IDENT_or_TOKEN(UIDtoken, 0);
[Ww][Hh][Ii][Ll][Ee] return_IDENT_or_TOKEN(WHILE, 0);
[Ss][Ii][Gg][Nn][Aa][Ll] return_IDENT_or_TOKEN(SIGNAL, 0);
[Ww][Ii][Tt][Hh][Oo][Uu][Tt] return_IDENT_or_TOKEN(WITHOUT, 0);
[Ww][Ii][Tt][Hh] return_IDENT_or_TOKEN(WITH, 0);
[Hh][Oo][Ll][Dd] return_IDENT_or_TOKEN(HOLD, 0);
[Pp][Aa][Rr][Ss][Ee][Rr][Ff][Ll][Aa][Gg][Ss] return_IDENT_or_TOKEN(PARSERFLAGS, 0);
[Tt][Ee][Rr][Mm][Ii][Nn][Aa][Ll]_[Cc][Hh][Aa][Rr][Ss][Ee][Tt] return_IDENT_or_TOKEN(TERMINAL_CHARSET, 0);
[Ii][Ss][Oo]_[Mm][Aa][Pp][Pp][Ii][Nn][Gg] return_IDENT_or_TOKEN(ISO_MAPPING, 0);
[Dd][Ee][Ff][Aa][Uu][Ll][Tt]_[Cc][Hh][Aa][Rr][Ss][Ee][Tt] return_IDENT_or_TOKEN(DEFAULT_CHARSETtoken, 0);
[Ii][Nn][Ff][Ee][Rr]_[Cc][Hh][Aa][Rr][Ss][Ee][Tt] return_IDENT_or_TOKEN(INFER_CHARSET, 0);
[Rr][Ee][Ss][Uu][Ll][Tt] return_IDENT_or_TOKEN(RESULT, 0);
[Qq][Uu][Ii][Ee][Ss][Cc][Ee] return_IDENT_or_TOKEN(QUIESCE, 0);
[Aa][Cc][Tt][Ii][Vv][Ee] return_IDENT_or_TOKEN(ACTIVEtoken, 0);
[Aa][Cc][Cc][Uu][Mm][Uu][Ll][Aa][Tt][Ee][Dd] return_IDENT_or_TOKEN(ACCUMULATEDtoken, 0);
[Pp][Ee][Rr][Tt][Aa][Bb][Ll][Ee] return_IDENT_or_TOKEN(PERTABLEtoken, 0);
[Pp][Rr][Oo][Gg][Rr][Ee][Ss][Ss] return_IDENT_or_TOKEN(PROGRESStoken, 0);
[;] {
SqlciParse_IdentifierExpected = 0;
return_IDENT_or_TOKEN(0, 0);
};
[Ii][Nn][Tt][Ee][Rr][Nn][Aa][Ll] return_IDENT_or_TOKEN(INTERNAL, 0); /* MV OZ_REFRESH */
[Mm][Vv][Ll][Oo][Gg] return_IDENT_or_TOKEN(MVLOG, 0);
[Uu][Nn][Ll][Oo][Aa][Dd] return_IDENT_or_TOKEN(UNLOAD, 0);
[Tt][Rr][Uu][Nn][Cc][Aa][Tt][Ee] return_IDENT_or_TOKEN(TRUNCATE, 0);
[Cc][Hh][Aa][Nn][Gg][Ee][Uu][Ss][Ee][Rr] return_IDENT_or_TOKEN(USERtoken, 0);
[\*] {SqlciParse_IdentifierExpected = 0; return(ALLtoken);};
[(] {SqlciParse_IdentifierExpected = 0; return(LPAREN);};
[)] {SqlciParse_IdentifierExpected = 0; return(RPAREN);};
[,] {
SqlciParse_IdentifierExpected = 0;
return_IDENT_or_TOKEN(COMMA, 0);
};
[-] {SqlciParse_IdentifierExpected = 0; return(HYPHEN);};
<LOGFNAME>[^ \t;()]+ {
if (yylval.stringval_type)
delete [] yylval.stringval_type;
yylval.stringval_type = new char[strlen(yytext)+1];
strcpy(yylval.stringval_type, yytext);
BEGIN 0;
SqlciParse_IdentifierExpected = 0;
return_IDENT_or_TOKEN(FILENAME, 0);
}
[0-9]* {
if (yylval.stringval_type)
delete [] yylval.stringval_type;
yylval.stringval_type = new char[strlen(yytext)+1];
strcpy(yylval.stringval_type, yytext);
SqlciParse_IdentifierExpected = 0;
// return(NUMBER);
return_IDENT_or_TOKEN(NUMBER, 0);
}
[?][A-Za-z_][A-Za-z0-9_]* {
if (yylval.stringval_type)
delete [] yylval.stringval_type;
yylval.stringval_type = new char[strlen(yytext)];
strcpy(yylval.stringval_type, &yytext[1]);
SqlciParse_IdentifierExpected = 0;
return(PARAM_NAME);
}
[$][$][A-Za-z_][A-Za-z0-9_.]*[$][$] {
if (yylval.stringval_type)
delete [] yylval.stringval_type;
yylval.stringval_type = new char[strlen(yytext)];
strncpy(yylval.stringval_type, &yytext[2], strlen(&yytext[2])-2);
yylval.stringval_type[strlen(&yytext[2])-2] = '\0';
SqlciParse_IdentifierExpected = 0;
return(PATTERN_NAME);
}
['][A-Za-z0-9_\-.\\$\*^\"/: %]*['] {
if (yylval.stringval_type)
delete [] yylval.stringval_type;
yylval.stringval_type = new char[strlen(yytext)];
strncpy(yylval.stringval_type, &yytext[1], strlen(yytext)-2);
yylval.stringval_type[strlen(yytext)-2] = '\0';
SqlciParse_IdentifierExpected = 0;
return_IDENT_or_TOKEN(QUOTED_STRING, 0);
}
["][A-Za-z0-9_\-.\\$\*^\"/: %]*["] {
if (yylval.stringval_type)
delete [] yylval.stringval_type;
yylval.stringval_type = new char[strlen(yytext+1)];
strcpy(yylval.stringval_type, yytext);
yylval.stringval_type[strlen(yytext)] = '\0';
SqlciParse_IdentifierExpected = 0;
return_IDENT_or_TOKEN(DQUOTED_STRING, 0);
}
[A-Za-z_][A-Za-z0-9_.]* {
yylval.stringval_type = new char[strlen(yytext)+1];
strcpy(yylval.stringval_type, yytext);
if (SqlciParse_SyntaxErrorCleanup)
{
SqlciParse_IdentifierExpected = -1;
SqlciParse_SyntaxErrorCleanup=0;
}
else
SqlciParse_IdentifierExpected = 0;
//cout << "token = " << IDENTIFIER << endl;
return(IDENTIFIER);
}
<FNAME>[^ \t;()]+ {
if (yylval.stringval_type)
delete [] yylval.stringval_type;
yylval.stringval_type = new char[strlen(yytext)+1];
strcpy(yylval.stringval_type, yytext);
BEGIN 0;
SqlciParse_IdentifierExpected = 0;
return_IDENT_or_TOKEN(FILENAME, 0);
}
\\{G}\.[0-9]*\,[0-9]* {
if (yylval.stringval_type)
delete [] yylval.stringval_type;
yylval.stringval_type = new char[strlen(yytext)+1];
strcpy(yylval.stringval_type, yytext);
return(PID_VALUE);
}
\\{G}\.[0-9]* {
if (yylval.stringval_type)
delete [] yylval.stringval_type;
yylval.stringval_type = new char[strlen(yytext)+1];
strcpy(yylval.stringval_type, yytext);
return(CPU_VALUE);
}
\-\-.*$ {
/* no action (comment) */
}
[!] {SqlciParse_IdentifierExpected = -1; return(REPEAT);};
. {SqlciParse_IdentifierExpected = 0; return(ERROR_STMT);};
%%
void SqlciLexReinit()
{
sqlcirestart(0);
}