Recovered from cvs revision 2007-05-03 15:14:00

This commit is contained in:
hyung-hwan 2007-05-04 00:14:00 +00:00
parent 6114d3ec90
commit 6f28e48ff9
4 changed files with 125 additions and 19 deletions

View File

@ -1,23 +1,18 @@
/* /*
* $Id: Awk.cpp,v 1.2 2007/05/01 12:39:22 bacon Exp $ * $Id: Awk.cpp,v 1.4 2007/05/02 15:07:33 bacon Exp $
*/ */
#include <ase/awk/Awk.hpp> #include <ase/awk/Awk.hpp>
namespace ASE namespace ASE
{ {
Awk::Awk (): awk (ASE_NULL) Awk::Awk (): awk (ASE_NULL)
{ {
} }
Awk::~Awk () Awk::~Awk ()
{ {
if (awk != ASE_NULL) close ();
{
ase_awk_close (awk);
awk = ASE_NULL;
}
} }
int Awk::parse () int Awk::parse ()
@ -27,18 +22,76 @@ namespace ASE
/*awk = ase_awk_open (*/ /*awk = ase_awk_open (*/
} }
ase_awk_srcios_t srcios;
srcios.in = sourceReader;
srcios.out = sourceWriter;
srcios.custom_data = this;
return ase_awk_parse (awk, ASE_NULL); return ase_awk_parse (awk, ASE_NULL);
} }
int Awk::run (/*const ase_char_t* main*/) int Awk::run (const ase_char_t* main, const ase_char_t** args)
{ {
if (awk == ASE_NULL) if (awk == ASE_NULL)
{ {
// TODO: SET ERROR INFO
return -1;
} }
//return ase_awk_run (awk, main); //return ase_awk_run (awk, main);
return 0; return 0;
} }
void Awk::close ()
{
if (awk != ASE_NULL)
{
ase_awk_close (awk);
awk = ASE_NULL;
}
} }
ase_ssize_t Awk::sourceReader (
int cmd, void* arg, ase_char_t* data, ase_size_t count)
{
ASE::Awk* awk = (ASE::Awk*)arg;
if (cmd == ASE_AWK_IO_OPEN)
{
return awk->openSource (ASE::Awk::SOURCE_READ);
}
else if (cmd == ASE_AWK_IO_CLOSE)
{
return awk->closeSource (ASE::Awk::SOURCE_READ);
}
else if (cmd == ASE_AWK_IO_READ)
{
return awk->readSource (data, count);
}
return -1;
}
ase_ssize_t Awk::sourceWriter (
int cmd, void* arg, ase_char_t* data, ase_size_t count)
{
ASE::Awk* awk = (ASE::Awk*)arg;
if (cmd == ASE_AWK_IO_OPEN)
{
return awk->openSource (ASE::Awk::SOURCE_WRITE);
}
else if (cmd == ASE_AWK_IO_CLOSE)
{
return awk->closeSource (ASE::Awk::SOURCE_WRITE);
}
else if (cmd == ASE_AWK_IO_WRITE)
{
return awk->writeSource (data, count);
}
return -1;
}
}

View File

@ -1,5 +1,5 @@
/* /*
* $Id: Awk.hpp,v 1.1 2007/04/30 05:47:33 bacon Exp $ * $Id: Awk.hpp,v 1.3 2007/05/02 15:07:33 bacon Exp $
*/ */
#ifndef _ASE_AWK_AWK_HPP_ #ifndef _ASE_AWK_AWK_HPP_
@ -14,10 +14,31 @@ namespace ASE
{ {
public: public:
Awk (); Awk ();
~Awk (); virtual ~Awk ();
int parse (); int parse ();
int run (); int run (const ase_char_t* main, const ase_char_t** args);
void close ();
enum SourceMode
{
SOURCE_READ,
SOURCE_WRITE
};
protected:
virtual int openSource (SourceMode mode) = 0;
virtual int closeSource (SourceMode mode) = 0;
virtual ase_ssize_t readSource (
ase_char_t* buf, ase_size_t len) = 0;
virtual ase_ssize_t writeSource (
ase_char_t* buf, ase_size_t len) = 0;
static ase_ssize_t sourceReader (
int cmd, void* arg, ase_char_t* data, ase_size_t count);
static ase_ssize_t sourceWriter (
int cmd, void* arg, ase_char_t* data, ase_size_t count);
private: private:
ase_awk_t* awk; ase_awk_t* awk;

View File

@ -1,5 +1,5 @@
# #
# $Id: makefile.in,v 1.3 2007/04/30 05:47:33 bacon Exp $ # $Id: makefile.in,v 1.4 2007/05/02 15:07:33 bacon Exp $
# #
NAME = aseawk NAME = aseawk
@ -51,9 +51,7 @@ OBJ_FILES_LIB = \
OBJ_FILES_JNI = $(TMP_DIR)/jni.o OBJ_FILES_JNI = $(TMP_DIR)/jni.o
OBJ_FILES_LIB_CXX = \ OBJ_FILES_LIB_CXX = $(TMP_DIR)/cxx/Awk.o
$(OBJ_FILES_LIB) \
$(TMP_DIR)/cxx/Awk.o
OBJ_FILES_SO = $(OBJ_FILES_LIB:.o=.lo) $(OBJ_FILES_JNI:.o=.lo) OBJ_FILES_SO = $(OBJ_FILES_LIB:.o=.lo) $(OBJ_FILES_JNI:.o=.lo)
@ -77,7 +75,7 @@ $(OUT_FILE_JNI): $(TMP_DIR) $(OBJ_FILES_JNI) $(OBJ_FILES_JAR) $(OUT_FILE_LIB)
$(LIBTOOL_LINK) $(CC) -rpath $(TOP_INSTALLDIR)/lib -version-info 1:0:0 -o $(OUT_FILE_JNI) $(OBJ_FILES_SO) -lm -L$(OUT_DIR) -l$(NAME) -lasecmn -laseutl $(LIBTOOL_LINK) $(CC) -rpath $(TOP_INSTALLDIR)/lib -version-info 1:0:0 -o $(OUT_FILE_JNI) $(OBJ_FILES_SO) -lm -L$(OUT_DIR) -l$(NAME) -lasecmn -laseutl
$(JAR) -Mcvf $(OUT_FILE_JAR) -C $(TMP_DIR) ase $(JAR) -Mcvf $(OUT_FILE_JAR) -C $(TMP_DIR) ase
$(OUT_FILE_LIB_CXX): $(TMP_DIR_CXX) $(OUT_DIR) $(OBJ_FILES_LIB_CXX) $(OUT_FILE_LIB_CXX): $(TMP_DIR_CXX) $(OUT_DIR) $(OUT_FILE_LIB) $(OBJ_FILES_LIB_CXX)
$(AR) cr $(OUT_FILE_LIB_CXX) $(OBJ_FILES_LIB_CXX) $(AR) cr $(OUT_FILE_LIB_CXX) $(OBJ_FILES_LIB_CXX)
if [ "$(RANLIB)" = "ranlib" ]; then ranlib $(OUT_FILE_LIB_CXX); fi if [ "$(RANLIB)" = "ranlib" ]; then ranlib $(OUT_FILE_LIB_CXX); fi
@ -135,7 +133,7 @@ $(TMP_DIR)/ase/awk/Extio.class:
$(TMP_DIR)/ase/awk/Exception.class: $(TMP_DIR)/ase/awk/Exception.class:
$(JAVAC) -classpath ../.. -d $(TMP_DIR) Exception.java $(JAVAC) -classpath ../.. -d $(TMP_DIR) Exception.java
$(TMP_DIR)/cxx/Awk.o: $(TMP_DIR)/cxx/Awk.o: Awk.cpp Awk.hpp
$(CXX) $(CXXFLAGS) -o $@ -c Awk.cpp $(CXX) $(CXXFLAGS) -o $@ -c Awk.cpp
$(OUT_DIR): $(OUT_DIR):

34
ase/test/awk/Awk.cpp Normal file
View File

@ -0,0 +1,34 @@
/*
* $Id: Awk.cpp,v 1.1 2007/05/02 15:07:33 bacon Exp $
*/
#include <ase/awk/Awk.h>
class TestAwk: public ASE::Awk
{
int openSource (SourceMode mode)
{
return 1;
}
int closeSource (SourceMode mode)
{
return 0;
}
ase_ssize_t readSource (ase_char_t* buf, ase_size_t count)
{
return 0;
}
ase_ssize_t writeSource (ase_char_t* buf, ase_size_t count);
{
return 0;
}
};
int main ()
{
}