added the Mmgr class and modifiled related classes

This commit is contained in:
2009-05-21 04:44:47 +00:00
parent 3ab1bfff92
commit b7f8bba219
23 changed files with 360 additions and 96 deletions

View File

@ -1,5 +1,5 @@
/*
* $Id: Awk.cpp 127 2009-05-07 13:15:04Z hyunghwan.chung $
* $Id: Awk.cpp 148 2009-05-20 10:44:47Z hyunghwan.chung $
*
Copyright 2006-2009 Chung, Hyung-Hwan.
@ -1065,21 +1065,12 @@ void* Awk::Run::getData () const
// Awk
//////////////////////////////////////////////////////////////////
Awk::Awk (): awk (QSE_NULL), functionMap (QSE_NULL),
Awk::Awk () throw (): awk (QSE_NULL), functionMap (QSE_NULL),
sourceIn (Source::READ), sourceOut (Source::WRITE),
errnum (ERR_NOERR), errlin (0), runCallback (false)
{
this->errmsg[0] = QSE_T('\0');
mmgr.alloc = allocMem;
mmgr.realloc = reallocMem;
mmgr.free = freeMem;
mmgr.data = this;
}
Awk::~Awk ()
{
}
Awk::operator Awk::awk_t* () const
@ -1193,7 +1184,7 @@ int Awk::open ()
prm.pow = pow;
prm.sprintf = sprintf;
awk = qse_awk_open (&mmgr, QSE_SIZEOF(xtn_t), &prm);
awk = qse_awk_open (this, QSE_SIZEOF(xtn_t), &prm);
if (awk == QSE_NULL)
{
setError (ERR_NOMEM);
@ -1754,21 +1745,6 @@ void Awk::onRunStatement (rtx_t* run, size_t line, void* data)
r->awk->onRunStatement (*r, line);
}
void* Awk::allocMem (void* data, size_t n)
{
return ((Awk*)data)->allocMem (n);
}
void* Awk::reallocMem (void* data, void* ptr, size_t n)
{
return ((Awk*)data)->reallocMem (ptr, n);
}
void Awk::freeMem (void* data, void* ptr)
{
((Awk*)data)->freeMem (ptr);
}
Awk::real_t Awk::pow (awk_t* awk, real_t x, real_t y)
{
xtn_t* xtn = (xtn_t*) QSE_XTN (awk);

View File

@ -5,8 +5,8 @@ AM_CPPFLAGS = -I$(top_srcdir)/include
lib_LTLIBRARIES = libqseawk.la
libqseawk_la_SOURCES = awk.c err.c tree.c parse.c run.c rec.c val.c fnc.c misc.c rio.c std.c awk.h rio.h val.h fnc.h misc.h parse.h run.h tree.h
libqseawk_la_LDFLAGS= -L../cmn -L../utl -version-info 1:0:0 -no-undefined
libqseawk_la_LIBADD= -lqsecmn -lqseutl
libqseawk_la_LDFLAGS = -L../cmn -L../utl -version-info 1:0:0 -no-undefined
libqseawk_la_LIBADD = -lqsecmn -lqseutl
if ENABLE_CXX
lib_LTLIBRARIES += libqseawk++.la

View File

@ -1,5 +1,5 @@
/*
* $Id: StdAwk.cpp 127 2009-05-07 13:15:04Z hyunghwan.chung $
* $Id: StdAwk.cpp 148 2009-05-20 10:44:47Z hyunghwan.chung $
*
Copyright 2006-2009 Chung, Hyung-Hwan.
@ -37,10 +37,6 @@
QSE_BEGIN_NAMESPACE(QSE)
/////////////////////////////////
StdAwk::StdAwk ()
{
}
#define ADDFNC(name,min,max,impl) \
do { \
if (addFunction (name, min, max, \
@ -396,17 +392,17 @@ int StdAwk::flushFile (File& io)
}
// memory allocation primitives
void* StdAwk::allocMem (size_t n)
void* StdAwk::allocMem (size_t n) throw ()
{
return ::malloc (n);
}
void* StdAwk::reallocMem (void* ptr, size_t n)
void* StdAwk::reallocMem (void* ptr, size_t n) throw ()
{
return ::realloc (ptr, n);
}
void StdAwk::freeMem (void* ptr)
void StdAwk::freeMem (void* ptr) throw ()
{
::free (ptr);
}

View File

@ -1,6 +1,6 @@
AUTOMAKE_OPTIONS = nostdinc
AM_CFLAGS = -I$(top_builddir)/include
AM_CPPFLAGS = -I$(top_builddir)/include
lib_LTLIBRARIES = libqsecmn.la
libqsecmn_la_SOURCES = \
@ -11,7 +11,7 @@ libqsecmn_la_SOURCES = \
tio.c tio_get.c tio_put.c \
fio.c pio.c sio.c \
time.c \
misc.c
misc.c
libqsecmn_la_LDFLAGS = -version-info 1:0:0 -no-undefined
if WIN32

View File

@ -202,7 +202,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = nostdinc
AM_CFLAGS = -I$(top_builddir)/include
AM_CPPFLAGS = -I$(top_builddir)/include
lib_LTLIBRARIES = libqsecmn.la
libqsecmn_la_SOURCES = \
syscall.h mem.h chr.h \
@ -212,7 +212,7 @@ libqsecmn_la_SOURCES = \
tio.c tio_get.c tio_put.c \
fio.c pio.c sio.c \
time.c \
misc.c
misc.c
libqsecmn_la_LDFLAGS = -version-info 1:0:0 -no-undefined
@WIN32_TRUE@libqsecmn_la_LIBADD = -lpsapi

View File

@ -1,5 +1,5 @@
AM_CFLAGS = -I$(top_builddir)/include
AM_CPPFLAGS = -I$(top_builddir)/include
lib_LTLIBRARIES = libqsesed.la
libqsesed_la_SOURCES = sed.c sed.h
@ -8,7 +8,7 @@ libqsesed_la_LIBADD = -lqsecmn -lqseutl
if ENABLE_CXX
lib_LTLIBRARIES += libqsesed++.la
libqsesed___la_SOURCES = Sed.cpp
libqsesed___la_SOURCES = Sed.cpp StdSed.cpp
libqsesed___la_LDFLAGS = -L. -L../cmn -L../utl -version-info 1:0:0 -no-undefined
libqsesed___la_LIBADD = -lqsesed -lqsecmn -lqseutl
endif

View File

@ -52,8 +52,8 @@ am__installdirs = "$(DESTDIR)$(libdir)"
libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES)
libqsesed___la_DEPENDENCIES =
am__libqsesed___la_SOURCES_DIST = Sed.cpp
@ENABLE_CXX_TRUE@am_libqsesed___la_OBJECTS = Sed.lo
am__libqsesed___la_SOURCES_DIST = Sed.cpp StdSed.cpp
@ENABLE_CXX_TRUE@am_libqsesed___la_OBJECTS = Sed.lo StdSed.lo
libqsesed___la_OBJECTS = $(am_libqsesed___la_OBJECTS)
libqsesed___la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
@ -217,12 +217,12 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AM_CFLAGS = -I$(top_builddir)/include
AM_CPPFLAGS = -I$(top_builddir)/include
lib_LTLIBRARIES = libqsesed.la $(am__append_1)
libqsesed_la_SOURCES = sed.c sed.h
libqsesed_la_LDFLAGS = -version-info 1:0:0 -no-undefined -L../cmn -L../utl
libqsesed_la_LIBADD = -lqsecmn -lqseutl
@ENABLE_CXX_TRUE@libqsesed___la_SOURCES = Sed.cpp
@ENABLE_CXX_TRUE@libqsesed___la_SOURCES = Sed.cpp StdSed.cpp
@ENABLE_CXX_TRUE@libqsesed___la_LDFLAGS = -L. -L../cmn -L../utl -version-info 1:0:0 -no-undefined
@ENABLE_CXX_TRUE@libqsesed___la_LIBADD = -lqsesed -lqsecmn -lqseutl
all: all-am
@ -297,6 +297,7 @@ distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Sed.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StdSed.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sed.Plo@am__quote@
.c.o:

View File

@ -17,22 +17,26 @@
*/
#include <qse/sed/Sed.hpp>
#include "sed.h"
#include <qse/utl/stdio.h>
#include <stdlib.h>
/////////////////////////////////
QSE_BEGIN_NAMESPACE(QSE)
/////////////////////////////////
Sed::Sed () throw () : sed (QSE_NULL)
int Sed::open () throw ()
{
}
sed = qse_sed_open (this, QSE_SIZEOF(Sed*));
if (sed == QSE_NULL)
{
// TODO: set error...
return -1;
}
Sed::~Sed () throw ()
{
close ();
}
int Sed::open () throw()
{
*(Sed**)QSE_XTN(sed) = this;
return 0;
}
void Sed::close () throw()
@ -44,8 +48,17 @@ void Sed::close () throw()
}
}
int Sed::compile () throw ()
{
return 0;
}
int Sed::execute () throw ()
{
return 0;
}
/////////////////////////////////
QSE_BEGIN_NAMESPACE(QSE)
QSE_END_NAMESPACE(QSE)
/////////////////////////////////

44
qse/lib/sed/StdSed.cpp Normal file
View File

@ -0,0 +1,44 @@
/*
* $Id: Sed.hpp 127 2009-05-07 13:15:04Z baconevi $
*
Copyright 2006-2009 Chung, Hyung-Hwan.
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.
*/
#include <qse/sed/StdSed.hpp>
#include <stdlib.h>
/////////////////////////////////
QSE_BEGIN_NAMESPACE(QSE)
/////////////////////////////////
void* StdSed::allocMem (qse_size_t n) throw ()
{
return ::malloc (n);
}
void* StdSed::reallocMem (void* ptr, qse_size_t n) throw ()
{
return ::realloc (ptr, n);
}
void StdSed::freeMem (void* ptr) throw ()
{
::free (ptr);
}
/////////////////////////////////
QSE_END_NAMESPACE(QSE)
/////////////////////////////////

View File

@ -1,5 +1,5 @@
AM_CFLAGS = -I$(top_builddir)/include
AM_CPPFLAGS = -I$(top_builddir)/include
lib_LTLIBRARIES = libqseutl.la
libqseutl_la_SOURCES = \

View File

@ -32,6 +32,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
@ENABLE_CXX_TRUE@am__append_1 = libqsesed++.la
subdir = lib/utl
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@ -50,6 +51,14 @@ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(libdir)"
libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES)
libqsesed___la_DEPENDENCIES =
am__libqsesed___la_SOURCES_DIST = Sed.cpp
@ENABLE_CXX_TRUE@am_libqsesed___la_OBJECTS = Sed.lo
libqsesed___la_OBJECTS = $(am_libqsesed___la_OBJECTS)
libqsesed___la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(CXXFLAGS) $(libqsesed___la_LDFLAGS) $(LDFLAGS) -o $@
@ENABLE_CXX_TRUE@am_libqsesed___la_rpath = -rpath $(libdir)
libqseutl_la_DEPENDENCIES =
am_libqseutl_la_OBJECTS = assert.lo http.lo main.lo stdio.lo tgp.lo
libqseutl_la_OBJECTS = $(am_libqseutl_la_OBJECTS)
@ -68,8 +77,18 @@ CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
SOURCES = $(libqseutl_la_SOURCES)
DIST_SOURCES = $(libqseutl_la_SOURCES)
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
SOURCES = $(libqsesed___la_SOURCES) $(libqseutl_la_SOURCES)
DIST_SOURCES = $(am__libqsesed___la_SOURCES_DIST) \
$(libqseutl_la_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@ -198,8 +217,8 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AM_CFLAGS = -I$(top_builddir)/include
lib_LTLIBRARIES = libqseutl.la
AM_CPPFLAGS = -I$(top_builddir)/include
lib_LTLIBRARIES = libqseutl.la $(am__append_1)
libqseutl_la_SOURCES = \
assert.c http.c main.c stdio.c \
tgp.c \
@ -207,10 +226,13 @@ libqseutl_la_SOURCES = \
libqseutl_la_LDFLAGS = -version-info 1:0:0 -no-undefined -L../cmn
libqseutl_la_LIBADD = -lqsecmn
@ENABLE_CXX_TRUE@libqsesed___la_SOURCES = Sed.cpp
@ENABLE_CXX_TRUE@libqsesed___la_LDFLAGS = -L. -L../cmn -L../utl -version-info 1:0:0 -no-undefined
@ENABLE_CXX_TRUE@libqsesed___la_LIBADD = -lqsesed -lqsecmn -lqseutl
all: all-am
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
.SUFFIXES: .c .cpp .lo .o .obj
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
@ -267,6 +289,8 @@ clean-libLTLIBRARIES:
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libqsesed++.la: $(libqsesed___la_OBJECTS) $(libqsesed___la_DEPENDENCIES)
$(libqsesed___la_LINK) $(am_libqsesed___la_rpath) $(libqsesed___la_OBJECTS) $(libqsesed___la_LIBADD) $(LIBS)
libqseutl.la: $(libqseutl_la_OBJECTS) $(libqseutl_la_DEPENDENCIES)
$(libqseutl_la_LINK) -rpath $(libdir) $(libqseutl_la_OBJECTS) $(libqseutl_la_LIBADD) $(LIBS)
@ -276,6 +300,7 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Sed.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/assert.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Plo@am__quote@
@ -303,6 +328,27 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
.cpp.o:
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
.cpp.obj:
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.cpp.lo:
@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo