massive sync up of my code to CVS. not sure what changed.

This commit is contained in:
brianb
2002-01-24 12:34:10 +00:00
parent 71775b190a
commit ea8fd2a6ba
24 changed files with 425 additions and 165 deletions

View File

@@ -70,7 +70,7 @@ MAKEINFO = makeinfo
NM = /usr/bin/nm -B
OBJDUMP = @OBJDUMP@
ODBC =
ODBC_INC =
ODBC_INC = /usrl/local/include
PACKAGE = mdbtools
RANLIB = ranlib
READLINE_LIBS = -lncurses -lreadline
@@ -79,7 +79,7 @@ VERSION = 0.3
YACC = bison -y
lib_LTLIBRARIES = libmdbsql.la
libmdbsql_la_SOURCES = mdbsql.c parser.y lexer.l
libmdbsql_la_SOURCES = mdbsql.c parser.y lexer.l
INCLUDES = -I$(top_srcdir)/include `glib-config --cflags`
LIBS = `glib-config --libs`
LDADD = ../libmdb/libmdb.la
@@ -96,7 +96,7 @@ libmdbsql_la_LIBADD =
libmdbsql_la_OBJECTS = mdbsql.lo parser.lo lexer.lo
LEX_OUTPUT_ROOT = lex.yy
LEXLIB = -lfl
CFLAGS = -g -O2 -DSQL
CFLAGS = -g -O2 -DUNIXODBC -DSQL
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)

View File

@@ -1,5 +1,5 @@
lib_LTLIBRARIES = libmdbsql.la
libmdbsql_la_SOURCES= mdbsql.c parser.y lexer.l
libmdbsql_la_SOURCES= mdbsql.c parser.y lexer.l
INCLUDES = -I$(top_srcdir)/include `glib-config --cflags`
LIBS = `glib-config --libs`
LDADD = ../libmdb/libmdb.la

View File

@@ -79,7 +79,7 @@ VERSION = @VERSION@
YACC = @YACC@
lib_LTLIBRARIES = libmdbsql.la
libmdbsql_la_SOURCES = mdbsql.c parser.y lexer.l
libmdbsql_la_SOURCES = mdbsql.c parser.y lexer.l
INCLUDES = -I$(top_srcdir)/include `glib-config --cflags`
LIBS = `glib-config --libs`
LDADD = ../libmdb/libmdb.la

View File

@@ -1,7 +1,7 @@
/* A lexical scanner generated by flex */
/* Scanner skeleton version:
* $Header: /Users/brian/cvs/mdbtools/mdbtools/src/sql/Attic/lexer.c,v 1.3 2001/05/16 00:21:17 brianb Exp $
* $Header: /Users/brian/cvs/mdbtools/mdbtools/src/sql/Attic/lexer.c,v 1.4 2002/01/24 12:34:13 brianb Exp $
*/
#define FLEX_SCANNER
@@ -9,6 +9,7 @@
#define YY_FLEX_MINOR_VERSION 5
#include <stdio.h>
#include <unistd.h>
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
@@ -22,7 +23,6 @@
#ifdef __cplusplus
#include <stdlib.h>
#include <unistd.h>
/* Use prototypes in function declarations. */
#define YY_USE_PROTOS
@@ -477,8 +477,7 @@ char *yytext;
#include "mdbsql.h"
#include "parser.h"
extern MdbSQL *g_sql;
#line 482 "lex.yy.c"
#line 481 "lex.yy.c"
/* Macros after this point can all be overridden by user definitions in
* section 1.
@@ -629,9 +628,9 @@ YY_DECL
register char *yy_cp = NULL, *yy_bp = NULL;
register int yy_act;
#line 27 "lexer.l"
#line 26 "lexer.l"
#line 635 "lex.yy.c"
#line 634 "lex.yy.c"
if ( yy_init )
{
@@ -716,112 +715,112 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
#line 28 "lexer.l"
#line 27 "lexer.l"
{ return SELECT; }
YY_BREAK
case 2:
YY_RULE_SETUP
#line 29 "lexer.l"
#line 28 "lexer.l"
{ return FROM; }
YY_BREAK
case 3:
YY_RULE_SETUP
#line 30 "lexer.l"
#line 29 "lexer.l"
{ return CONNECT; }
YY_BREAK
case 4:
YY_RULE_SETUP
#line 31 "lexer.l"
#line 30 "lexer.l"
{ return DISCONNECT; }
YY_BREAK
case 5:
YY_RULE_SETUP
#line 32 "lexer.l"
#line 31 "lexer.l"
{ return TO; }
YY_BREAK
case 6:
YY_RULE_SETUP
#line 33 "lexer.l"
#line 32 "lexer.l"
{ return LIST; }
YY_BREAK
case 7:
YY_RULE_SETUP
#line 34 "lexer.l"
#line 33 "lexer.l"
{ return WHERE; }
YY_BREAK
case 8:
YY_RULE_SETUP
#line 35 "lexer.l"
#line 34 "lexer.l"
{ return AND; }
YY_BREAK
case 9:
YY_RULE_SETUP
#line 36 "lexer.l"
#line 35 "lexer.l"
{ return TABLES; }
YY_BREAK
case 10:
YY_RULE_SETUP
#line 37 "lexer.l"
#line 36 "lexer.l"
{ return TABLE; }
YY_BREAK
case 11:
YY_RULE_SETUP
#line 38 "lexer.l"
#line 37 "lexer.l"
{ return DESCRIBE; }
YY_BREAK
case 12:
YY_RULE_SETUP
#line 39 "lexer.l"
#line 38 "lexer.l"
{ return LTEQ; }
YY_BREAK
case 13:
YY_RULE_SETUP
#line 40 "lexer.l"
#line 39 "lexer.l"
{ return GTEQ; }
YY_BREAK
case 14:
YY_RULE_SETUP
#line 41 "lexer.l"
#line 40 "lexer.l"
{ return LIKE; }
YY_BREAK
case 15:
YY_RULE_SETUP
#line 42 "lexer.l"
#line 41 "lexer.l"
;
YY_BREAK
case 16:
YY_RULE_SETUP
#line 43 "lexer.l"
#line 42 "lexer.l"
{ yylval.name = strdup(yytext); return NAME; }
YY_BREAK
case 17:
YY_RULE_SETUP
#line 44 "lexer.l"
#line 43 "lexer.l"
{ yylval.name = strdup(yytext); return STRING; }
YY_BREAK
case 18:
YY_RULE_SETUP
#line 45 "lexer.l"
#line 44 "lexer.l"
{
yylval.name = strdup(yytext); return NUMBER;
}
YY_BREAK
case 19:
YY_RULE_SETUP
#line 48 "lexer.l"
#line 47 "lexer.l"
{ yylval.name = strdup(yytext); return PATH; }
YY_BREAK
case 20:
YY_RULE_SETUP
#line 49 "lexer.l"
#line 48 "lexer.l"
{ return yytext[0]; }
YY_BREAK
case 21:
YY_RULE_SETUP
#line 50 "lexer.l"
#line 49 "lexer.l"
ECHO;
YY_BREAK
#line 825 "lex.yy.c"
#line 824 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1385,11 +1384,6 @@ YY_BUFFER_STATE b;
}
#ifndef YY_ALWAYS_INTERACTIVE
#ifndef YY_NEVER_INTERACTIVE
extern int isatty YY_PROTO(( int ));
#endif
#endif
#ifdef YY_USE_PROTOS
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
@@ -1707,9 +1701,13 @@ int main()
return 0;
}
#endif
#line 50 "lexer.l"
#line 49 "lexer.l"
int yywrap()
{
return 1;
}
void yyerror(char *s)
{
fprintf(stderr,"Error at Line : %s near %s\n", s, yytext);

View File

@@ -21,7 +21,6 @@
#include "mdbsql.h"
#include "parser.h"
extern MdbSQL *g_sql;
%}
%%
@@ -49,6 +48,10 @@ like { return LIKE; }
. { return yytext[0]; }
%%
int yywrap()
{
return 1;
}
void yyerror(char *s)
{
fprintf(stderr,"Error at Line : %s near %s\n", s, yytext);

View File

@@ -45,9 +45,20 @@
*/
#include "mdbsql.h"
MdbSQL *g_sql;
#line 25 "parser.y"
MdbSQL *_mdb_sql(MdbSQL *sql)
{
static MdbSQL *g_sql;
if (sql) {
g_sql = sql;
} else {
return g_sql;
}
}
#line 36 "parser.y"
typedef union {
char *name;
double dval;
@@ -121,9 +132,9 @@ static const short yyrhs[] = { 7,
#if YYDEBUG != 0
static const short yyrline[] = { 0,
44, 48, 51, 54, 57, 62, 64, 67, 69, 72,
78, 85, 87, 88, 89, 90, 91, 93, 95, 98,
100, 102, 106, 108, 109, 112
55, 59, 62, 65, 68, 73, 75, 78, 80, 83,
89, 96, 98, 99, 100, 101, 102, 104, 106, 109,
111, 113, 117, 119, 120, 123
};
#endif
@@ -735,94 +746,94 @@ yyreduce:
switch (yyn) {
case 1:
#line 45 "parser.y"
#line 56 "parser.y"
{
mdb_sql_select(g_sql);
mdb_sql_select(_mdb_sql(NULL));
;
break;}
case 2:
#line 48 "parser.y"
#line 59 "parser.y"
{
mdb_sql_open(g_sql, yyvsp[0].name); free(yyvsp[0].name);
mdb_sql_open(_mdb_sql(NULL), yyvsp[0].name); free(yyvsp[0].name);
;
break;}
case 3:
#line 51 "parser.y"
#line 62 "parser.y"
{
mdb_sql_close(g_sql);
mdb_sql_close(_mdb_sql(NULL));
;
break;}
case 4:
#line 54 "parser.y"
#line 65 "parser.y"
{
mdb_sql_describe_table(g_sql);
mdb_sql_describe_table(_mdb_sql(NULL));
;
break;}
case 5:
#line 57 "parser.y"
#line 68 "parser.y"
{
mdb_sql_listtables(g_sql);
mdb_sql_listtables(_mdb_sql(NULL));
;
break;}
case 10:
#line 73 "parser.y"
#line 84 "parser.y"
{
mdb_sql_add_sarg(g_sql, yyvsp[-2].name, yyvsp[-1].ival, yyvsp[0].name);
mdb_sql_add_sarg(_mdb_sql(NULL), yyvsp[-2].name, yyvsp[-1].ival, yyvsp[0].name);
free(yyvsp[-2].name);
free(yyvsp[0].name);
;
break;}
case 11:
#line 78 "parser.y"
#line 89 "parser.y"
{
mdb_sql_add_sarg(g_sql, yyvsp[0].name, yyvsp[-1].ival, yyvsp[-2].name);
mdb_sql_add_sarg(_mdb_sql(NULL), yyvsp[0].name, yyvsp[-1].ival, yyvsp[-2].name);
free(yyvsp[-2].name);
free(yyvsp[0].name);
;
break;}
case 12:
#line 86 "parser.y"
#line 97 "parser.y"
{ yyval.ival = MDB_EQUAL; ;
break;}
case 13:
#line 87 "parser.y"
#line 98 "parser.y"
{ yyval.ival = MDB_GT; ;
break;}
case 14:
#line 88 "parser.y"
#line 99 "parser.y"
{ yyval.ival = MDB_LT; ;
break;}
case 15:
#line 89 "parser.y"
#line 100 "parser.y"
{ yyval.ival = MDB_LTEQ; ;
break;}
case 16:
#line 90 "parser.y"
#line 101 "parser.y"
{ yyval.ival = MDB_GTEQ; ;
break;}
case 17:
#line 91 "parser.y"
#line 102 "parser.y"
{ yyval.ival = MDB_LIKE; ;
break;}
case 18:
#line 94 "parser.y"
#line 105 "parser.y"
{ yyval.name = yyvsp[0].name; ;
break;}
case 19:
#line 95 "parser.y"
#line 106 "parser.y"
{ yyval.name = yyvsp[0].name; ;
break;}
case 22:
#line 103 "parser.y"
{ mdb_sql_add_table(g_sql, yyvsp[0].name); free(yyvsp[0].name); ;
#line 114 "parser.y"
{ mdb_sql_add_table(_mdb_sql(NULL), yyvsp[0].name); free(yyvsp[0].name); ;
break;}
case 23:
#line 107 "parser.y"
{ mdb_sql_all_columns(g_sql); ;
#line 118 "parser.y"
{ mdb_sql_all_columns(_mdb_sql(NULL)); ;
break;}
case 26:
#line 113 "parser.y"
{ mdb_sql_add_column(g_sql, yyvsp[0].name); free(yyvsp[0].name); ;
#line 124 "parser.y"
{ mdb_sql_add_column(_mdb_sql(NULL), yyvsp[0].name); free(yyvsp[0].name); ;
break;}
}
/* the action file gets copied in in place of this dollarsign */
@@ -1046,5 +1057,5 @@ yyerrhandle:
}
return 1;
}
#line 116 "parser.y"
#line 127 "parser.y"

View File

@@ -19,7 +19,18 @@
*/
#include "mdbsql.h"
MdbSQL *g_sql;
MdbSQL *_mdb_sql(MdbSQL *sql)
{
static MdbSQL *g_sql;
if (sql) {
g_sql = sql;
} else {
return g_sql;
}
}
%}
%union {
@@ -43,19 +54,19 @@ MdbSQL *g_sql;
query:
SELECT column_list FROM table where_clause {
mdb_sql_select(g_sql);
mdb_sql_select(_mdb_sql(NULL));
}
| CONNECT TO database {
mdb_sql_open(g_sql, $3); free($3);
mdb_sql_open(_mdb_sql(NULL), $3); free($3);
}
| DISCONNECT {
mdb_sql_close(g_sql);
mdb_sql_close(_mdb_sql(NULL));
}
| DESCRIBE TABLE table {
mdb_sql_describe_table(g_sql);
mdb_sql_describe_table(_mdb_sql(NULL));
}
| LIST TABLES {
mdb_sql_listtables(g_sql);
mdb_sql_listtables(_mdb_sql(NULL));
}
;
@@ -71,12 +82,12 @@ sarg_list:
sarg:
NAME operator constant {
mdb_sql_add_sarg(g_sql, $1, $2, $3);
mdb_sql_add_sarg(_mdb_sql(NULL), $1, $2, $3);
free($1);
free($3);
}
| constant operator NAME {
mdb_sql_add_sarg(g_sql, $3, $2, $1);
mdb_sql_add_sarg(_mdb_sql(NULL), $3, $2, $1);
free($1);
free($3);
}
@@ -100,17 +111,17 @@ database:
| NAME
table:
NAME { mdb_sql_add_table(g_sql, $1); free($1); }
NAME { mdb_sql_add_table(_mdb_sql(NULL), $1); free($1); }
;
column_list:
'*' { mdb_sql_all_columns(g_sql); }
'*' { mdb_sql_all_columns(_mdb_sql(NULL)); }
| column
| column ',' column_list
;
column:
NAME { mdb_sql_add_column(g_sql, $1); free($1); }
NAME { mdb_sql_add_column(_mdb_sql(NULL), $1); free($1); }
;
%%