Enhancements for getting Access 2000 to work (almost)

Fixes for working with bison
This commit is contained in:
brianb 2001-05-16 00:21:17 +00:00
parent 606887dfbd
commit 3d4bc34b70
24 changed files with 1338 additions and 727 deletions

157
configure vendored
View File

@ -1776,104 +1776,13 @@ done
test -n "$YACC" || YACC="yacc"
echo $ac_n "checking for main in -libs""... $ac_c" 1>&6
echo "configure:1781: checking for main in -libs" >&5
ac_lib_var=`echo ibs'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_save_LIBS="$LIBS"
LIBS="-libs $LIBS"
cat > conftest.$ac_ext <<EOF
#line 1789 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
if { (eval echo configure:1796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=no"
fi
rm -f conftest*
LIBS="$ac_save_LIBS"
fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
ac_tr_lib=HAVE_LIB`echo ibs | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
cat >> confdefs.h <<EOF
#define $ac_tr_lib 1
EOF
LIBS="-libs $LIBS"
else
echo "$ac_t""no" 1>&6
fi
echo $ac_n "checking for mdb_free_handle in -lmdb""... $ac_c" 1>&6
echo "configure:1824: checking for mdb_free_handle in -lmdb" >&5
ac_lib_var=`echo mdb'_'mdb_free_handle | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_save_LIBS="$LIBS"
LIBS="-lmdb $LIBS"
cat > conftest.$ac_ext <<EOF
#line 1832 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char mdb_free_handle();
int main() {
mdb_free_handle()
; return 0; }
EOF
if { (eval echo configure:1843: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=no"
fi
rm -f conftest*
LIBS="$ac_save_LIBS"
fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
ac_tr_lib=HAVE_LIB`echo mdb | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
cat >> confdefs.h <<EOF
#define $ac_tr_lib 1
EOF
LIBS="-lmdb $LIBS"
else
echo "$ac_t""no" 1>&6
fi
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
echo "configure:1872: checking for ANSI C header files" >&5
echo "configure:1781: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1877 "configure"
#line 1786 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@ -1881,7 +1790,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1885: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1794: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -1898,7 +1807,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
#line 1902 "configure"
#line 1811 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@ -1916,7 +1825,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
#line 1920 "configure"
#line 1829 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@ -1937,7 +1846,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
#line 1941 "configure"
#line 1850 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@ -1948,7 +1857,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
if { (eval echo configure:1952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:1861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@ -1975,17 +1884,17 @@ for ac_hdr in fcntl.h limits.h unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:1979: checking for $ac_hdr" >&5
echo "configure:1888: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1984 "configure"
#line 1893 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1989: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1898: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -2015,17 +1924,17 @@ for ac_hdr in wordexp.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:2019: checking for $ac_hdr" >&5
echo "configure:1928: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 2024 "configure"
#line 1933 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:2029: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1938: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -2053,12 +1962,12 @@ done
echo $ac_n "checking for working const""... $ac_c" 1>&6
echo "configure:2057: checking for working const" >&5
echo "configure:1966: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 2062 "configure"
#line 1971 "configure"
#include "confdefs.h"
int main() {
@ -2107,7 +2016,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
if { (eval echo configure:2111: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:2020: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@ -2128,12 +2037,12 @@ EOF
fi
echo $ac_n "checking for size_t""... $ac_c" 1>&6
echo "configure:2132: checking for size_t" >&5
echo "configure:2041: checking for size_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 2137 "configure"
#line 2046 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@ -2162,14 +2071,14 @@ fi
echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
echo "configure:2166: checking whether byte ordering is bigendian" >&5
echo "configure:2075: checking whether byte ordering is bigendian" >&5
if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_c_bigendian=unknown
# See if sys/param.h defines the BYTE_ORDER macro.
cat > conftest.$ac_ext <<EOF
#line 2173 "configure"
#line 2082 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/param.h>
@ -2180,11 +2089,11 @@ int main() {
#endif
; return 0; }
EOF
if { (eval echo configure:2184: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:2093: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
# It does; now see whether it defined to BIG_ENDIAN or not.
cat > conftest.$ac_ext <<EOF
#line 2188 "configure"
#line 2097 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/param.h>
@ -2195,7 +2104,7 @@ int main() {
#endif
; return 0; }
EOF
if { (eval echo configure:2199: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:2108: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_bigendian=yes
else
@ -2215,7 +2124,7 @@ if test "$cross_compiling" = yes; then
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
#line 2219 "configure"
#line 2128 "configure"
#include "confdefs.h"
main () {
/* Are we little or big endian? From Harbison&Steele. */
@ -2228,7 +2137,7 @@ main () {
exit (u.c[sizeof (long) - 1] == 1);
}
EOF
if { (eval echo configure:2232: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:2141: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_bigendian=no
else
@ -2256,7 +2165,7 @@ fi
OLDLDFLAGS=$LDFLAGS
echo $ac_n "checking for initscr in -lncurses""... $ac_c" 1>&6
echo "configure:2260: checking for initscr in -lncurses" >&5
echo "configure:2169: checking for initscr in -lncurses" >&5
ac_lib_var=`echo ncurses'_'initscr | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -2264,7 +2173,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lncurses $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2268 "configure"
#line 2177 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -2275,7 +2184,7 @@ int main() {
initscr()
; return 0; }
EOF
if { (eval echo configure:2279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2188: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -2300,7 +2209,7 @@ fi
echo $ac_n "checking for add_history in -lreadline""... $ac_c" 1>&6
echo "configure:2304: checking for add_history in -lreadline" >&5
echo "configure:2213: checking for add_history in -lreadline" >&5
ac_lib_var=`echo readline'_'add_history | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -2308,7 +2217,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lreadline $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2312 "configure"
#line 2221 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -2319,7 +2228,7 @@ int main() {
add_history()
; return 0; }
EOF
if { (eval echo configure:2323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2232: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -2463,7 +2372,7 @@ done
ac_given_srcdir=$srcdir
ac_given_INSTALL="$INSTALL"
trap 'rm -fr `echo "src/util/Makefile src/extras/Makefile Makefile include/Makefile src/Makefile src/libmdb/Makefile include/Makefile src/sql/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
trap 'rm -fr `echo "src/util/Makefile src/extras/Makefile Makefile include/Makefile src/Makefile src/libmdb/Makefile include/Makefile src/sql/Makefile src/odbc/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS <<EOF
@ -2569,7 +2478,7 @@ EOF
cat >> $CONFIG_STATUS <<EOF
CONFIG_FILES=\${CONFIG_FILES-"src/util/Makefile src/extras/Makefile Makefile include/Makefile src/Makefile src/libmdb/Makefile include/Makefile src/sql/Makefile"}
CONFIG_FILES=\${CONFIG_FILES-"src/util/Makefile src/extras/Makefile Makefile include/Makefile src/Makefile src/libmdb/Makefile include/Makefile src/sql/Makefile src/odbc/Makefile"}
EOF
cat >> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then

View File

@ -10,12 +10,6 @@ AM_PROG_LIBTOOL
AM_PROG_LEX
AC_PROG_YACC
dnl Checks for libraries.
dnl Replace `main' with a function in -libs:
AC_CHECK_LIB(ibs, main)
dnl Replace `main' with a function in -lmdb:
AC_CHECK_LIB(mdb, mdb_free_handle)
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(fcntl.h limits.h unistd.h)
@ -45,4 +39,4 @@ LDFLAGS=$OLDLDFLAGS
AC_SUBST(READLINE_LIBS)
AC_OUTPUT(src/util/Makefile src/extras/Makefile Makefile include/Makefile src/Makefile src/libmdb/Makefile include/Makefile src/sql/Makefile)
AC_OUTPUT(src/util/Makefile src/extras/Makefile Makefile include/Makefile src/Makefile src/libmdb/Makefile include/Makefile src/sql/Makefile src/odbc/Makefile)

View File

@ -17,6 +17,10 @@ typedef struct {
typedef struct {
char *name;
int disp_size;
void *bind_addr; /* if !NULL then cp parameter to here */
int bind_type;
int *bind_len;
int bind_max;
} MdbSQLColumn;
typedef struct {
@ -29,6 +33,8 @@ typedef struct {
MdbSarg *sarg;
} MdbSQLSarg;
char *g_input_ptr;
#undef YY_INPUT
#define YY_INPUT(b, r, ms) (r = mdb_sql_yyinput(b, ms));

View File

@ -109,6 +109,8 @@ typedef struct {
char db_passwd[14];
MdbBackend *default_backend;
char *backend_name;
/* offset to row count on data pages...version dependant */
guint16 row_count_offset;
} MdbHandle;
typedef struct {

View File

@ -75,7 +75,7 @@ READLINE_LIBS = -lncurses -lreadline
VERSION = 0.3
YACC = bison -y
SUBDIRS = libmdb util extras sql
SUBDIRS = libmdb sql util extras
DEFDIR = $(prefix)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

View File

@ -1,4 +1,4 @@
SUBDIRS = libmdb util extras sql
SUBDIRS = libmdb sql util extras
DEFDIR = $(prefix)

View File

@ -75,7 +75,7 @@ READLINE_LIBS = @READLINE_LIBS@
VERSION = @VERSION@
YACC = @YACC@
SUBDIRS = libmdb util extras sql
SUBDIRS = libmdb sql util extras
DEFDIR = $(prefix)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

View File

@ -85,7 +85,7 @@ CONFIG_CLEAN_FILES =
PROGRAMS = $(bin_PROGRAMS)
DEFS = -DPACKAGE=\"mdbtools\" -DVERSION=\"0.3\" -DYYTEXT_POINTER=1 -DHAVE_LIBMDB=1 -DHAVE_FCNTL_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_WORDEXP_H=1 -DHAVE_READLINE=1 -I. -I$(srcdir)
DEFS = -DPACKAGE=\"mdbtools\" -DVERSION=\"0.3\" -DYYTEXT_POINTER=1 -DHAVE_FCNTL_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_WORDEXP_H=1 -DHAVE_READLINE=1 -I. -I$(srcdir)
CPPFLAGS =
LDFLAGS =
mdb_dump_OBJECTS = mdb-dump.o mdbsupport.o

View File

@ -84,7 +84,7 @@ CONFIG_CLEAN_FILES =
LTLIBRARIES = $(lib_LTLIBRARIES)
DEFS = -DPACKAGE=\"mdbtools\" -DVERSION=\"0.3\" -DYYTEXT_POINTER=1 -DHAVE_LIBMDB=1 -DHAVE_FCNTL_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_WORDEXP_H=1 -DHAVE_READLINE=1 -I. -I$(srcdir)
DEFS = -DPACKAGE=\"mdbtools\" -DVERSION=\"0.3\" -DYYTEXT_POINTER=1 -DHAVE_FCNTL_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_WORDEXP_H=1 -DHAVE_READLINE=1 -I. -I$(srcdir)
CPPFLAGS =
LDFLAGS =
libmdb_la_LDFLAGS =

View File

@ -48,11 +48,12 @@ int offset;
int rows;
int i,j;
rows = mdb_get_int16(mdb, 8);
rows = mdb_get_int16(mdb, mdb->row_count_offset);
if (rowid < 0 || rowid > rows) return NULL;
offset = mdb_get_int16(mdb, 10 + 2 * rowid);
offset = mdb_get_int16(mdb, (mdb->row_count_offset + 2) + 2 * rowid);
if (mdb->jet_version==MDB_VER_JET4) offset++;
/*
** ??? this happens, don't know what it means
*/
@ -73,6 +74,7 @@ fprintf(stdout,"\n");
if (j<=MDB_MAX_OBJ_NAME) {
entry->object_name[j++]=mdb->pg_buf[i];
}
if (mdb->jet_version==MDB_VER_JET4) i++;
}
entry->object_name[j] = '\0';
entry->kkd_pg = mdb_get_int16(mdb,offset+31+strlen(entry->object_name)+7);
@ -82,7 +84,7 @@ fprintf(stdout,"\n");
}
int mdb_catalog_rows(MdbHandle *mdb)
{
return mdb_get_int16(mdb, 0x08);
return mdb_get_int16(mdb, mdb->row_count_offset);
}
GArray *mdb_read_catalog(MdbHandle *mdb, int obj_type)
{

View File

@ -43,8 +43,10 @@ int j,pos;
mdb->jet_version = mdb_get_int32(mdb, 0x14);
if (mdb->jet_version == MDB_VER_JET4) {
mdb->pg_size = 4096;
mdb->row_count_offset = 0x0c;
} else {
mdb->pg_size = 2048;
mdb->row_count_offset = 0x08;
}
/* get the db encryption key and xor it back to clear text */

View File

@ -1,3 +1,22 @@
/* MDB Tools - A library for reading MS Access database file
* Copyright (C) 2000 Brian Bruns
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#include <stdio.h>
int likecmp(char *s, char *r)

View File

@ -73,25 +73,24 @@ PACKAGE = mdbtools
RANLIB = ranlib
READLINE_LIBS = -lncurses -lreadline
VERSION = 0.3
YACC = bison -y
bin_PROGRAMS = mdb-sql
lib_LTLIBRARIES = libmdbsql.la
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
LIBS = `glib-config --libs` $(READLINE_LIBS) -lfl
mdb_sql_SOURCES = mdbsql.c main.c parser.y lexer.l
YACC = yacc -d
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_CLEAN_FILES =
PROGRAMS = $(bin_PROGRAMS)
LTLIBRARIES = $(lib_LTLIBRARIES)
DEFS = -DPACKAGE=\"mdbtools\" -DVERSION=\"0.3\" -DYYTEXT_POINTER=1 -DHAVE_LIBMDB=1 -DHAVE_FCNTL_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_WORDEXP_H=1 -DHAVE_READLINE=1 -I. -I$(srcdir)
DEFS = -DPACKAGE=\"mdbtools\" -DVERSION=\"0.3\" -DYYTEXT_POINTER=1 -DHAVE_FCNTL_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_WORDEXP_H=1 -DHAVE_READLINE=1 -I. -I$(srcdir)
CPPFLAGS =
LDFLAGS =
mdb_sql_OBJECTS = mdbsql.o main.o parser.o lexer.o
mdb_sql_LDADD = $(LDADD)
mdb_sql_DEPENDENCIES = ../libmdb/libmdb.la
mdb_sql_LDFLAGS =
libmdbsql_la_LDFLAGS =
libmdbsql_la_LIBADD =
libmdbsql_la_OBJECTS = mdbsql.lo parser.lo lexer.lo
LEX_OUTPUT_ROOT = lex.yy
LEXLIB = -lfl
CFLAGS = -g -O2
@ -106,9 +105,9 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/lexer.P .deps/main.P .deps/mdbsql.P .deps/parser.P
SOURCES = $(mdb_sql_SOURCES)
OBJECTS = $(mdb_sql_OBJECTS)
DEP_FILES = .deps/lexer.P .deps/mdbsql.P .deps/parser.P
SOURCES = $(libmdbsql_la_SOURCES)
OBJECTS = $(libmdbsql_la_OBJECTS)
all: all-redirect
.SUFFIXES:
@ -121,29 +120,29 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-binPROGRAMS:
mostlyclean-libLTLIBRARIES:
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
distclean-binPROGRAMS:
distclean-libLTLIBRARIES:
maintainer-clean-binPROGRAMS:
maintainer-clean-libLTLIBRARIES:
install-binPROGRAMS: $(bin_PROGRAMS)
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(bindir)
@list='$(bin_PROGRAMS)'; for p in $$list; do \
$(mkinstalldirs) $(DESTDIR)$(libdir)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
$(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \
$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \
else :; fi; \
done
uninstall-binPROGRAMS:
uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL)
list='$(bin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
list='$(lib_LTLIBRARIES)'; for p in $$list; do \
$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
done
.s.o:
@ -178,9 +177,8 @@ distclean-libtool:
maintainer-clean-libtool:
mdb-sql: $(mdb_sql_OBJECTS) $(mdb_sql_DEPENDENCIES)
@rm -f mdb-sql
$(LINK) $(mdb_sql_LDFLAGS) $(mdb_sql_OBJECTS) $(mdb_sql_LDADD) $(LIBS)
libmdbsql.la: $(libmdbsql_la_OBJECTS) $(libmdbsql_la_DEPENDENCIES)
$(LINK) -rpath $(libdir) $(libmdbsql_la_LDFLAGS) $(libmdbsql_la_OBJECTS) $(libmdbsql_la_LIBADD) $(LIBS)
.l.c:
$(LEX) $(AM_LFLAGS) $(LFLAGS) $< && mv $(LEX_OUTPUT_ROOT).c $@
.y.c:
@ -281,7 +279,7 @@ check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am: install-binPROGRAMS
install-exec-am: install-libLTLIBRARIES
install-exec: install-exec-am
install-data-am:
@ -290,14 +288,14 @@ install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-binPROGRAMS
uninstall-am: uninstall-libLTLIBRARIES
uninstall: uninstall-am
all-am: Makefile $(PROGRAMS)
all-am: Makefile $(LTLIBRARIES)
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(bindir)
$(mkinstalldirs) $(DESTDIR)$(libdir)
mostlyclean-generic:
@ -310,25 +308,25 @@ distclean-generic:
maintainer-clean-generic:
-test -z "lexerlparserhparserc" || rm -f lexerl parserh parserc
mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \
mostlyclean-am: mostlyclean-libLTLIBRARIES mostlyclean-compile \
mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-binPROGRAMS clean-compile clean-libtool clean-tags \
clean-am: clean-libLTLIBRARIES clean-compile clean-libtool clean-tags \
clean-depend clean-generic mostlyclean-am
clean: clean-am
distclean-am: distclean-binPROGRAMS distclean-compile distclean-libtool \
distclean-tags distclean-depend distclean-generic \
clean-am
distclean-am: distclean-libLTLIBRARIES distclean-compile \
distclean-libtool distclean-tags distclean-depend \
distclean-generic clean-am
-rm -f libtool
distclean: distclean-am
maintainer-clean-am: maintainer-clean-binPROGRAMS \
maintainer-clean-am: maintainer-clean-libLTLIBRARIES \
maintainer-clean-compile maintainer-clean-libtool \
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am
@ -337,20 +335,21 @@ maintainer-clean-am: maintainer-clean-binPROGRAMS \
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-libtool distclean-libtool \
clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
distclean-tags clean-tags maintainer-clean-tags distdir \
mostlyclean-depend distclean-depend clean-depend \
maintainer-clean-depend info-am info dvi-am dvi check check-am \
installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
.PHONY: mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \
distclean-compile clean-compile maintainer-clean-compile \
mostlyclean-libtool distclean-libtool clean-libtool \
maintainer-clean-libtool tags mostlyclean-tags distclean-tags \
clean-tags maintainer-clean-tags distdir mostlyclean-depend \
distclean-depend clean-depend maintainer-clean-depend info-am info \
dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
install-exec install-data-am install-data install-am install \
uninstall-am uninstall all-redirect all-am all installdirs \
mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
#YACC = yacc -d
dist-hook:
rm -f $(distdir)/parser.c $(distdir)/parser.h $(distdir)/lexer.c

View File

@ -1,9 +1,9 @@
bin_PROGRAMS = mdb-sql
lib_LTLIBRARIES = libmdbsql.la
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
LIBS = `glib-config --libs` $(READLINE_LIBS) @LEXLIB@
mdb_sql_SOURCES = mdbsql.c main.c parser.y lexer.l
YACC = yacc -d
#YACC = yacc -d
dist-hook:
rm -f $(distdir)/parser.c $(distdir)/parser.h $(distdir)/lexer.c

View File

@ -73,25 +73,24 @@ PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
READLINE_LIBS = @READLINE_LIBS@
VERSION = @VERSION@
YACC = @YACC@
bin_PROGRAMS = mdb-sql
lib_LTLIBRARIES = libmdbsql.la
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
LIBS = `glib-config --libs` $(READLINE_LIBS) @LEXLIB@
mdb_sql_SOURCES = mdbsql.c main.c parser.y lexer.l
YACC = yacc -d
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_CLEAN_FILES =
PROGRAMS = $(bin_PROGRAMS)
LTLIBRARIES = $(lib_LTLIBRARIES)
DEFS = @DEFS@ -I. -I$(srcdir)
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
mdb_sql_OBJECTS = mdbsql.o main.o parser.o lexer.o
mdb_sql_LDADD = $(LDADD)
mdb_sql_DEPENDENCIES = ../libmdb/libmdb.la
mdb_sql_LDFLAGS =
libmdbsql_la_LDFLAGS =
libmdbsql_la_LIBADD =
libmdbsql_la_OBJECTS = mdbsql.lo parser.lo lexer.lo
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
LEXLIB = @LEXLIB@
CFLAGS = @CFLAGS@
@ -106,9 +105,9 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/lexer.P .deps/main.P .deps/mdbsql.P .deps/parser.P
SOURCES = $(mdb_sql_SOURCES)
OBJECTS = $(mdb_sql_OBJECTS)
DEP_FILES = .deps/lexer.P .deps/mdbsql.P .deps/parser.P
SOURCES = $(libmdbsql_la_SOURCES)
OBJECTS = $(libmdbsql_la_OBJECTS)
all: all-redirect
.SUFFIXES:
@ -121,29 +120,29 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-binPROGRAMS:
mostlyclean-libLTLIBRARIES:
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
distclean-binPROGRAMS:
distclean-libLTLIBRARIES:
maintainer-clean-binPROGRAMS:
maintainer-clean-libLTLIBRARIES:
install-binPROGRAMS: $(bin_PROGRAMS)
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(bindir)
@list='$(bin_PROGRAMS)'; for p in $$list; do \
$(mkinstalldirs) $(DESTDIR)$(libdir)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
$(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \
$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \
else :; fi; \
done
uninstall-binPROGRAMS:
uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL)
list='$(bin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
list='$(lib_LTLIBRARIES)'; for p in $$list; do \
$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
done
.s.o:
@ -178,9 +177,8 @@ distclean-libtool:
maintainer-clean-libtool:
mdb-sql: $(mdb_sql_OBJECTS) $(mdb_sql_DEPENDENCIES)
@rm -f mdb-sql
$(LINK) $(mdb_sql_LDFLAGS) $(mdb_sql_OBJECTS) $(mdb_sql_LDADD) $(LIBS)
libmdbsql.la: $(libmdbsql_la_OBJECTS) $(libmdbsql_la_DEPENDENCIES)
$(LINK) -rpath $(libdir) $(libmdbsql_la_LDFLAGS) $(libmdbsql_la_OBJECTS) $(libmdbsql_la_LIBADD) $(LIBS)
.l.c:
$(LEX) $(AM_LFLAGS) $(LFLAGS) $< && mv $(LEX_OUTPUT_ROOT).c $@
.y.c:
@ -281,7 +279,7 @@ check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am: install-binPROGRAMS
install-exec-am: install-libLTLIBRARIES
install-exec: install-exec-am
install-data-am:
@ -290,14 +288,14 @@ install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-binPROGRAMS
uninstall-am: uninstall-libLTLIBRARIES
uninstall: uninstall-am
all-am: Makefile $(PROGRAMS)
all-am: Makefile $(LTLIBRARIES)
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(bindir)
$(mkinstalldirs) $(DESTDIR)$(libdir)
mostlyclean-generic:
@ -310,25 +308,25 @@ distclean-generic:
maintainer-clean-generic:
-test -z "lexerlparserhparserc" || rm -f lexerl parserh parserc
mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \
mostlyclean-am: mostlyclean-libLTLIBRARIES mostlyclean-compile \
mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-binPROGRAMS clean-compile clean-libtool clean-tags \
clean-am: clean-libLTLIBRARIES clean-compile clean-libtool clean-tags \
clean-depend clean-generic mostlyclean-am
clean: clean-am
distclean-am: distclean-binPROGRAMS distclean-compile distclean-libtool \
distclean-tags distclean-depend distclean-generic \
clean-am
distclean-am: distclean-libLTLIBRARIES distclean-compile \
distclean-libtool distclean-tags distclean-depend \
distclean-generic clean-am
-rm -f libtool
distclean: distclean-am
maintainer-clean-am: maintainer-clean-binPROGRAMS \
maintainer-clean-am: maintainer-clean-libLTLIBRARIES \
maintainer-clean-compile maintainer-clean-libtool \
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am
@ -337,20 +335,21 @@ maintainer-clean-am: maintainer-clean-binPROGRAMS \
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-libtool distclean-libtool \
clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
distclean-tags clean-tags maintainer-clean-tags distdir \
mostlyclean-depend distclean-depend clean-depend \
maintainer-clean-depend info-am info dvi-am dvi check check-am \
installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
.PHONY: mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \
distclean-compile clean-compile maintainer-clean-compile \
mostlyclean-libtool distclean-libtool clean-libtool \
maintainer-clean-libtool tags mostlyclean-tags distclean-tags \
clean-tags maintainer-clean-tags distdir mostlyclean-depend \
distclean-depend clean-depend maintainer-clean-depend info-am info \
dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
install-exec install-data-am install-data install-am install \
uninstall-am uninstall all-redirect all-am all installdirs \
mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
#YACC = yacc -d
dist-hook:
rm -f $(distdir)/parser.c $(distdir)/parser.h $(distdir)/lexer.c

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.2 2001/04/20 21:06:46 brianb Exp $
* $Header: /Users/brian/cvs/mdbtools/mdbtools/src/sql/Attic/lexer.c,v 1.3 2001/05/16 00:21:17 brianb Exp $
*/
#define FLEX_SCANNER
@ -455,12 +455,30 @@ char *yytext;
#line 1 "lexer.l"
#define INITIAL 0
#line 2 "lexer.l"
/* MDB Tools - A library for reading MS Access database file
* Copyright (C) 2000 Brian Bruns
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#include <string.h>
#include "mdbsql.h"
#include "parser.h"
extern MdbSQL *g_sql;
#line 464 "lex.yy.c"
#line 482 "lex.yy.c"
/* Macros after this point can all be overridden by user definitions in
* section 1.
@ -611,9 +629,9 @@ YY_DECL
register char *yy_cp = NULL, *yy_bp = NULL;
register int yy_act;
#line 9 "lexer.l"
#line 27 "lexer.l"
#line 617 "lex.yy.c"
#line 635 "lex.yy.c"
if ( yy_init )
{
@ -698,112 +716,112 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
#line 10 "lexer.l"
#line 28 "lexer.l"
{ return SELECT; }
YY_BREAK
case 2:
YY_RULE_SETUP
#line 11 "lexer.l"
#line 29 "lexer.l"
{ return FROM; }
YY_BREAK
case 3:
YY_RULE_SETUP
#line 12 "lexer.l"
#line 30 "lexer.l"
{ return CONNECT; }
YY_BREAK
case 4:
YY_RULE_SETUP
#line 13 "lexer.l"
#line 31 "lexer.l"
{ return DISCONNECT; }
YY_BREAK
case 5:
YY_RULE_SETUP
#line 14 "lexer.l"
#line 32 "lexer.l"
{ return TO; }
YY_BREAK
case 6:
YY_RULE_SETUP
#line 15 "lexer.l"
#line 33 "lexer.l"
{ return LIST; }
YY_BREAK
case 7:
YY_RULE_SETUP
#line 16 "lexer.l"
#line 34 "lexer.l"
{ return WHERE; }
YY_BREAK
case 8:
YY_RULE_SETUP
#line 17 "lexer.l"
#line 35 "lexer.l"
{ return AND; }
YY_BREAK
case 9:
YY_RULE_SETUP
#line 18 "lexer.l"
#line 36 "lexer.l"
{ return TABLES; }
YY_BREAK
case 10:
YY_RULE_SETUP
#line 19 "lexer.l"
#line 37 "lexer.l"
{ return TABLE; }
YY_BREAK
case 11:
YY_RULE_SETUP
#line 20 "lexer.l"
#line 38 "lexer.l"
{ return DESCRIBE; }
YY_BREAK
case 12:
YY_RULE_SETUP
#line 21 "lexer.l"
#line 39 "lexer.l"
{ return LTEQ; }
YY_BREAK
case 13:
YY_RULE_SETUP
#line 22 "lexer.l"
#line 40 "lexer.l"
{ return GTEQ; }
YY_BREAK
case 14:
YY_RULE_SETUP
#line 23 "lexer.l"
#line 41 "lexer.l"
{ return LIKE; }
YY_BREAK
case 15:
YY_RULE_SETUP
#line 24 "lexer.l"
#line 42 "lexer.l"
;
YY_BREAK
case 16:
YY_RULE_SETUP
#line 25 "lexer.l"
#line 43 "lexer.l"
{ yylval.name = strdup(yytext); return NAME; }
YY_BREAK
case 17:
YY_RULE_SETUP
#line 26 "lexer.l"
#line 44 "lexer.l"
{ yylval.name = strdup(yytext); return STRING; }
YY_BREAK
case 18:
YY_RULE_SETUP
#line 27 "lexer.l"
#line 45 "lexer.l"
{
yylval.name = strdup(yytext); return NUMBER;
}
YY_BREAK
case 19:
YY_RULE_SETUP
#line 30 "lexer.l"
#line 48 "lexer.l"
{ yylval.name = strdup(yytext); return PATH; }
YY_BREAK
case 20:
YY_RULE_SETUP
#line 31 "lexer.l"
#line 49 "lexer.l"
{ return yytext[0]; }
YY_BREAK
case 21:
YY_RULE_SETUP
#line 32 "lexer.l"
#line 50 "lexer.l"
ECHO;
YY_BREAK
#line 807 "lex.yy.c"
#line 825 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@ -1689,7 +1707,7 @@ int main()
return 0;
}
#endif
#line 32 "lexer.l"
#line 50 "lexer.l"
void yyerror(char *s)

View File

@ -1,4 +1,22 @@
%{
/* MDB Tools - A library for reading MS Access database file
* Copyright (C) 2000 Brian Bruns
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#include <string.h>
#include "mdbsql.h"
#include "parser.h"

View File

@ -1,3 +1,22 @@
/* MDB Tools - A library for reading MS Access database file
* Copyright (C) 2000 Brian Bruns
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#include "mdbsql.h"
#include <stdarg.h>
@ -15,6 +34,19 @@ va_list ap;
va_end(ap);
fprintf(stderr,"\n");
}
int mdb_sql_yyinput(char *buf, int need)
{
int cplen, have;
have = strlen(g_input_ptr);
cplen = need > have ? have : need;
if (cplen>0) {
memcpy(buf, g_input_ptr, cplen);
g_input_ptr += cplen;
}
return cplen;
}
MdbSQL *mdb_sql_init()
{
MdbSQL *sql;

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
#define NAME 257
#define PATH 258
#define NUMBER 259
#define STRING 260
#define STRING 259
#define NUMBER 260
#define SELECT 261
#define FROM 262
#define WHERE 263

View File

@ -1,4 +1,22 @@
%{
/* MDB Tools - A library for reading MS Access database file
* Copyright (C) 2000 Brian Bruns
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#include "mdbsql.h"
MdbSQL *g_sql;
@ -10,11 +28,17 @@ MdbSQL *g_sql;
int ival;
}
%token NAME PATH NUMBER STRING
%token <name> NAME PATH STRING NUMBER
%token SELECT FROM WHERE CONNECT DISCONNECT TO LIST TABLES WHERE AND
%token DESCRIBE TABLE
%token LTEQ GTEQ LIKE
%type <name> database
%type <name> constant
%type <ival> operator
%%
query:
@ -22,7 +46,7 @@ query:
mdb_sql_select(g_sql);
}
| CONNECT TO database {
mdb_sql_open(g_sql, $3.name); free($3.name);
mdb_sql_open(g_sql, $3); free($3);
}
| DISCONNECT {
mdb_sql_close(g_sql);
@ -47,28 +71,28 @@ sarg_list:
sarg:
NAME operator constant {
mdb_sql_add_sarg(g_sql, $1.name, $2.ival, $3.name);
free($1.name);
free($3.name);
mdb_sql_add_sarg(g_sql, $1, $2, $3);
free($1);
free($3);
}
| constant operator NAME {
mdb_sql_add_sarg(g_sql, $3.name, $2.ival, $1.name);
free($1.name);
free($3.name);
mdb_sql_add_sarg(g_sql, $3, $2, $1);
free($1);
free($3);
}
;
operator:
'=' { $$.ival = MDB_EQUAL; }
| '>' { $$.ival = MDB_GT; }
| '<' { $$.ival = MDB_LT; }
| LTEQ { $$.ival = MDB_LTEQ; }
| GTEQ { $$.ival = MDB_GTEQ; }
| LIKE { $$.ival = MDB_LIKE; }
'=' { $$ = MDB_EQUAL; }
| '>' { $$ = MDB_GT; }
| '<' { $$ = MDB_LT; }
| LTEQ { $$ = MDB_LTEQ; }
| GTEQ { $$ = MDB_GTEQ; }
| LIKE { $$ = MDB_LIKE; }
;
constant:
NUMBER { $$.name = $1.name; }
| STRING { $$.name = $1.name; }
NUMBER { $$ = $1; }
| STRING { $$ = $1; }
;
database:
@ -76,7 +100,7 @@ database:
| NAME
table:
NAME { mdb_sql_add_table(g_sql, $1.name); free($1.name); }
NAME { mdb_sql_add_table(g_sql, $1); free($1); }
;
column_list:
@ -86,7 +110,7 @@ column_list:
;
column:
NAME { mdb_sql_add_column(g_sql, $1.name); free($1.name); }
NAME { mdb_sql_add_column(g_sql, $1); free($1); }
;
%%

View File

@ -75,16 +75,17 @@ READLINE_LIBS = -lncurses -lreadline
VERSION = 0.3
YACC = bison -y
bin_PROGRAMS = mdb-export mdb-array mdb-schema mdb-tables mdb-parsecsv mdb-header prtable prcat prdata prkkd prdump
bin_PROGRAMS = mdb-export mdb-array mdb-schema mdb-tables mdb-parsecsv mdb-header mdb-sql prtable prcat prdata prkkd prdump
INCLUDES = -I$(top_srcdir)/include `glib-config --cflags`
LIBS = `glib-config --libs` $(READLINE_LIBS) -lfl
LDADD = ../libmdb/libmdb.la
LIBS = `glib-config --libs`
mdb_sql_LDADD = ../libmdb/libmdb.la ../sql/libmdbsql.la
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_CLEAN_FILES =
PROGRAMS = $(bin_PROGRAMS)
DEFS = -DPACKAGE=\"mdbtools\" -DVERSION=\"0.3\" -DYYTEXT_POINTER=1 -DHAVE_LIBMDB=1 -DHAVE_FCNTL_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_WORDEXP_H=1 -DHAVE_READLINE=1 -I. -I$(srcdir)
DEFS = -DPACKAGE=\"mdbtools\" -DVERSION=\"0.3\" -DYYTEXT_POINTER=1 -DHAVE_FCNTL_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_WORDEXP_H=1 -DHAVE_READLINE=1 -I. -I$(srcdir)
CPPFLAGS =
LDFLAGS =
mdb_export_SOURCES = mdb-export.c
@ -117,6 +118,10 @@ mdb_header_OBJECTS = mdb-header.o
mdb_header_LDADD = $(LDADD)
mdb_header_DEPENDENCIES = ../libmdb/libmdb.la
mdb_header_LDFLAGS =
mdb_sql_SOURCES = mdb-sql.c
mdb_sql_OBJECTS = mdb-sql.o
mdb_sql_DEPENDENCIES = ../libmdb/libmdb.la ../sql/libmdbsql.la
mdb_sql_LDFLAGS =
prtable_SOURCES = prtable.c
prtable_OBJECTS = prtable.o
prtable_LDADD = $(LDADD)
@ -155,11 +160,11 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/mdb-array.P .deps/mdb-export.P .deps/mdb-header.P \
.deps/mdb-parsecsv.P .deps/mdb-schema.P .deps/mdb-tables.P \
.deps/prcat.P .deps/prdata.P .deps/prdump.P .deps/prkkd.P \
.deps/prtable.P
SOURCES = mdb-export.c mdb-array.c mdb-schema.c mdb-tables.c mdb-parsecsv.c mdb-header.c prtable.c prcat.c prdata.c prkkd.c prdump.c
OBJECTS = mdb-export.o mdb-array.o mdb-schema.o mdb-tables.o mdb-parsecsv.o mdb-header.o prtable.o prcat.o prdata.o prkkd.o prdump.o
.deps/mdb-parsecsv.P .deps/mdb-schema.P .deps/mdb-sql.P \
.deps/mdb-tables.P .deps/prcat.P .deps/prdata.P .deps/prdump.P \
.deps/prkkd.P .deps/prtable.P
SOURCES = mdb-export.c mdb-array.c mdb-schema.c mdb-tables.c mdb-parsecsv.c mdb-header.c mdb-sql.c prtable.c prcat.c prdata.c prkkd.c prdump.c
OBJECTS = mdb-export.o mdb-array.o mdb-schema.o mdb-tables.o mdb-parsecsv.o mdb-header.o mdb-sql.o prtable.o prcat.o prdata.o prkkd.o prdump.o
all: all-redirect
.SUFFIXES:
@ -253,6 +258,10 @@ mdb-header: $(mdb_header_OBJECTS) $(mdb_header_DEPENDENCIES)
@rm -f mdb-header
$(LINK) $(mdb_header_LDFLAGS) $(mdb_header_OBJECTS) $(mdb_header_LDADD) $(LIBS)
mdb-sql: $(mdb_sql_OBJECTS) $(mdb_sql_DEPENDENCIES)
@rm -f mdb-sql
$(LINK) $(mdb_sql_LDFLAGS) $(mdb_sql_OBJECTS) $(mdb_sql_LDADD) $(LIBS)
prtable: $(prtable_OBJECTS) $(prtable_DEPENDENCIES)
@rm -f prtable
$(LINK) $(prtable_LDFLAGS) $(prtable_OBJECTS) $(prtable_LDADD) $(LIBS)

View File

@ -1,4 +1,5 @@
bin_PROGRAMS = mdb-export mdb-array mdb-schema mdb-tables mdb-parsecsv mdb-header prtable prcat prdata prkkd prdump
bin_PROGRAMS = mdb-export mdb-array mdb-schema mdb-tables mdb-parsecsv mdb-header mdb-sql prtable prcat prdata prkkd prdump
INCLUDES = -I$(top_srcdir)/include `glib-config --cflags`
LIBS = `glib-config --libs` $(READLINE_LIBS) @LEXLIB@
LDADD = ../libmdb/libmdb.la
LIBS = `glib-config --libs`
mdb_sql_LDADD = ../libmdb/libmdb.la ../sql/libmdbsql.la

View File

@ -75,10 +75,11 @@ READLINE_LIBS = @READLINE_LIBS@
VERSION = @VERSION@
YACC = @YACC@
bin_PROGRAMS = mdb-export mdb-array mdb-schema mdb-tables mdb-parsecsv mdb-header prtable prcat prdata prkkd prdump
bin_PROGRAMS = mdb-export mdb-array mdb-schema mdb-tables mdb-parsecsv mdb-header mdb-sql prtable prcat prdata prkkd prdump
INCLUDES = -I$(top_srcdir)/include `glib-config --cflags`
LIBS = `glib-config --libs` $(READLINE_LIBS) @LEXLIB@
LDADD = ../libmdb/libmdb.la
LIBS = `glib-config --libs`
mdb_sql_LDADD = ../libmdb/libmdb.la ../sql/libmdbsql.la
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_CLEAN_FILES =
PROGRAMS = $(bin_PROGRAMS)
@ -117,6 +118,10 @@ mdb_header_OBJECTS = mdb-header.o
mdb_header_LDADD = $(LDADD)
mdb_header_DEPENDENCIES = ../libmdb/libmdb.la
mdb_header_LDFLAGS =
mdb_sql_SOURCES = mdb-sql.c
mdb_sql_OBJECTS = mdb-sql.o
mdb_sql_DEPENDENCIES = ../libmdb/libmdb.la ../sql/libmdbsql.la
mdb_sql_LDFLAGS =
prtable_SOURCES = prtable.c
prtable_OBJECTS = prtable.o
prtable_LDADD = $(LDADD)
@ -155,11 +160,11 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/mdb-array.P .deps/mdb-export.P .deps/mdb-header.P \
.deps/mdb-parsecsv.P .deps/mdb-schema.P .deps/mdb-tables.P \
.deps/prcat.P .deps/prdata.P .deps/prdump.P .deps/prkkd.P \
.deps/prtable.P
SOURCES = mdb-export.c mdb-array.c mdb-schema.c mdb-tables.c mdb-parsecsv.c mdb-header.c prtable.c prcat.c prdata.c prkkd.c prdump.c
OBJECTS = mdb-export.o mdb-array.o mdb-schema.o mdb-tables.o mdb-parsecsv.o mdb-header.o prtable.o prcat.o prdata.o prkkd.o prdump.o
.deps/mdb-parsecsv.P .deps/mdb-schema.P .deps/mdb-sql.P \
.deps/mdb-tables.P .deps/prcat.P .deps/prdata.P .deps/prdump.P \
.deps/prkkd.P .deps/prtable.P
SOURCES = mdb-export.c mdb-array.c mdb-schema.c mdb-tables.c mdb-parsecsv.c mdb-header.c mdb-sql.c prtable.c prcat.c prdata.c prkkd.c prdump.c
OBJECTS = mdb-export.o mdb-array.o mdb-schema.o mdb-tables.o mdb-parsecsv.o mdb-header.o mdb-sql.o prtable.o prcat.o prdata.o prkkd.o prdump.o
all: all-redirect
.SUFFIXES:
@ -253,6 +258,10 @@ mdb-header: $(mdb_header_OBJECTS) $(mdb_header_DEPENDENCIES)
@rm -f mdb-header
$(LINK) $(mdb_header_LDFLAGS) $(mdb_header_OBJECTS) $(mdb_header_LDADD) $(LIBS)
mdb-sql: $(mdb_sql_OBJECTS) $(mdb_sql_DEPENDENCIES)
@rm -f mdb-sql
$(LINK) $(mdb_sql_LDFLAGS) $(mdb_sql_OBJECTS) $(mdb_sql_LDADD) $(LIBS)
prtable: $(prtable_OBJECTS) $(prtable_DEPENDENCIES)
@rm -f prtable
$(LINK) $(prtable_LDFLAGS) $(prtable_OBJECTS) $(prtable_LDADD) $(LIBS)