removed hawk::cap().
added some array value manipulation methods
This commit is contained in:
18
lib/Hawk.cpp
18
lib/Hawk.cpp
@ -912,6 +912,19 @@ int Hawk::Value::scaleArrayed (Run* r, hawk_ooi_t size)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hawk_ooi_t Hawk::Value::getArrayedLength () const
|
||||||
|
{
|
||||||
|
if (HAWK_RTX_GETVALTYPE(r->rtx, this->val) != HAWK_VAL_ARR) return -1;
|
||||||
|
return (hawk_ooi_t)HAWK_ARR_TALLY(((hawk_val_arr_t*)this->val)->arr);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
hawk_ooi_t Hawk::Value::getArrayedSize () const
|
||||||
|
{
|
||||||
|
if (HAWK_RTX_GETVALTYPE(r->rtx, this->val) != HAWK_VAL_ARR) return -1;
|
||||||
|
return (hawk_ooi_t)HAWK_ARR_SIZE(((hawk_val_arr_t*)this->val)->arr);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
int Hawk::Value::setArrayedVal (hawk_ooi_t idx, hawk_val_t* v)
|
int Hawk::Value::setArrayedVal (hawk_ooi_t idx, hawk_val_t* v)
|
||||||
{
|
{
|
||||||
@ -1548,6 +1561,11 @@ Hawk::Hawk (Mmgr* mmgr):
|
|||||||
this->_cmgr = hawk_get_cmgr_by_id(HAWK_CMGR_UTF8);
|
this->_cmgr = hawk_get_cmgr_by_id(HAWK_CMGR_UTF8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Hawk::~Hawk()
|
||||||
|
{
|
||||||
|
this->close();
|
||||||
|
}
|
||||||
|
|
||||||
const hawk_ooch_t* Hawk::getErrorString (hawk_errnum_t num) const
|
const hawk_ooch_t* Hawk::getErrorString (hawk_errnum_t num) const
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (this->hawk != HAWK_NULL);
|
HAWK_ASSERT (this->hawk != HAWK_NULL);
|
||||||
|
34
lib/Hawk.hpp
34
lib/Hawk.hpp
@ -832,6 +832,33 @@ public:
|
|||||||
/// The Value class wraps around #hawk_val_t to provide a more
|
/// The Value class wraps around #hawk_val_t to provide a more
|
||||||
/// comprehensive interface.
|
/// comprehensive interface.
|
||||||
///
|
///
|
||||||
|
/// An instance of Value must not outlive the associated run-time
|
||||||
|
/// context and its owning hawk instance. If the close() method is
|
||||||
|
/// called explicity on the owning hawk instance, you must ensure
|
||||||
|
/// that the related values are also destroyed before the call to
|
||||||
|
/// close().
|
||||||
|
///
|
||||||
|
/// The following will end up in a segmentation fault or the like.
|
||||||
|
/// HAWK::HawkStd hawk;
|
||||||
|
/// hawk.open();
|
||||||
|
/// HAWK::HawkStd::SourceString in("BEGIN{}");
|
||||||
|
/// hawk.parse(in, HAWK::Hawk::Source::NONE);
|
||||||
|
/// HAWK::Hawk::Value v(rtx);
|
||||||
|
/// v.setMbs("hello", 5);
|
||||||
|
/// hawk.close();
|
||||||
|
///
|
||||||
|
/// You don't call hawk.close() and rely on the destructor or
|
||||||
|
/// enclose 'v' in another nested scope.
|
||||||
|
/// HAWK::HawkStd hawk;
|
||||||
|
/// hawk.open();
|
||||||
|
/// HAWK::HawkStd::SourceString in("BEGIN{}");
|
||||||
|
/// hawk.parse(in, HAWK::Hawk::Source::NONE);
|
||||||
|
/// {
|
||||||
|
/// HAWK::Hawk::Value v(rtx);
|
||||||
|
/// v.setMbs("hello", 5);
|
||||||
|
/// }
|
||||||
|
/// hawk.close();
|
||||||
|
///
|
||||||
class HAWK_EXPORT Value
|
class HAWK_EXPORT Value
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -1082,6 +1109,9 @@ public:
|
|||||||
int scaleArrayed (hawk_ooi_t size);
|
int scaleArrayed (hawk_ooi_t size);
|
||||||
int scaleArrayed (Run* r, hawk_ooi_t size);
|
int scaleArrayed (Run* r, hawk_ooi_t size);
|
||||||
|
|
||||||
|
hawk_ooi_t getArrayedSize () const; // same value as hawk::size() for an array
|
||||||
|
hawk_ooi_t getArrayedLength () const; // same value as hawk::length() for an array
|
||||||
|
|
||||||
bool isArrayed () const;
|
bool isArrayed () const;
|
||||||
int getArrayed (
|
int getArrayed (
|
||||||
hawk_ooi_t idx, ///< array index
|
hawk_ooi_t idx, ///< array index
|
||||||
@ -1299,7 +1329,7 @@ public:
|
|||||||
|
|
||||||
/// The ~Hawk() function destroys an interpreter. Make sure to have
|
/// The ~Hawk() function destroys an interpreter. Make sure to have
|
||||||
/// called close() for finalization before the destructor is executed.
|
/// called close() for finalization before the destructor is executed.
|
||||||
virtual ~Hawk () {}
|
virtual ~Hawk ();
|
||||||
|
|
||||||
hawk_cmgr_t* getCmgr () const;
|
hawk_cmgr_t* getCmgr () const;
|
||||||
void setCmgr (hawk_cmgr_t* cmgr);
|
void setCmgr (hawk_cmgr_t* cmgr);
|
||||||
@ -1933,6 +1963,8 @@ public:
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
~HawkStd();
|
||||||
|
|
||||||
int open ();
|
int open ();
|
||||||
void close ();
|
void close ();
|
||||||
|
|
||||||
|
@ -131,6 +131,11 @@ static hawk_sio_t* open_sio_std (Hawk* hawk, HawkStd::Run* run, hawk_sio_std_t s
|
|||||||
return sio;
|
return sio;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HawkStd::~HawkStd ()
|
||||||
|
{
|
||||||
|
this->close();
|
||||||
|
}
|
||||||
|
|
||||||
int HawkStd::open ()
|
int HawkStd::open ()
|
||||||
{
|
{
|
||||||
int n = Hawk::open();
|
int n = Hawk::open();
|
||||||
@ -182,7 +187,7 @@ void HawkStd::close ()
|
|||||||
|
|
||||||
//
|
//
|
||||||
// HawkStd called hawk_stdmodstartup() after Hawk::open().
|
// HawkStd called hawk_stdmodstartup() after Hawk::open().
|
||||||
// It's logical to call hawk_stdmodshutdown() Hawk::close().
|
// It's logical to call hawk_stdmodshutdown() in Hawk::close().
|
||||||
// but Hawk::close() still needs to call some module's fini and
|
// but Hawk::close() still needs to call some module's fini and
|
||||||
// unload functions. So it must be done in HawkStd::uponClosing()
|
// unload functions. So it must be done in HawkStd::uponClosing()
|
||||||
// which is called after modules have been unloaded but while
|
// which is called after modules have been unloaded but while
|
||||||
|
33
lib/fnc.c
33
lib/fnc.c
@ -61,6 +61,7 @@ static hawk_fnc_t sysfnctab[] =
|
|||||||
|
|
||||||
/* string functions */
|
/* string functions */
|
||||||
{ {HAWK_T("gsub"), 4}, 0, { {2, 3, HAWK_T("xvr")}, hawk_fnc_gsub, 0 }, HAWK_NULL},
|
{ {HAWK_T("gsub"), 4}, 0, { {2, 3, HAWK_T("xvr")}, hawk_fnc_gsub, 0 }, HAWK_NULL},
|
||||||
|
/* TODO: gensub */
|
||||||
{ {HAWK_T("index"), 5}, 0, { {2, 3, HAWK_NULL}, hawk_fnc_index, 0 }, HAWK_NULL},
|
{ {HAWK_T("index"), 5}, 0, { {2, 3, HAWK_NULL}, hawk_fnc_index, 0 }, HAWK_NULL},
|
||||||
{ {HAWK_T("length"), 6}, 1, { {0, 1, HAWK_NULL}, fnc_length, 0 }, HAWK_NULL},
|
{ {HAWK_T("length"), 6}, 1, { {0, 1, HAWK_NULL}, fnc_length, 0 }, HAWK_NULL},
|
||||||
{ {HAWK_T("match"), 5}, 0, { {2, 3, HAWK_T("vxr")}, fnc_match, 0 }, HAWK_NULL},
|
{ {HAWK_T("match"), 5}, 0, { {2, 3, HAWK_T("vxr")}, fnc_match, 0 }, HAWK_NULL},
|
||||||
@ -704,36 +705,12 @@ int hawk_fnc_length (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi, int mode)
|
|||||||
case HAWK_VAL_MAP:
|
case HAWK_VAL_MAP:
|
||||||
/* map size */
|
/* map size */
|
||||||
len = HAWK_MAP_SIZE(((hawk_val_map_t*)v)->map);
|
len = HAWK_MAP_SIZE(((hawk_val_map_t*)v)->map);
|
||||||
switch (mode)
|
|
||||||
{
|
|
||||||
case 2: /* capacity */
|
|
||||||
len = hawk_map_getcapa(((hawk_val_map_t*)v)->map);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: /* size */
|
case HAWK_VAL_ARR:
|
||||||
case 0: /* length */
|
/* mode 0 - returns the number of set items instead of the last index + 1 */
|
||||||
default:
|
/* mode 1 - returns the last index + 1 */
|
||||||
len = HAWK_MAP_SIZE(((hawk_val_map_t*)v)->map);
|
len = (mode == 0)? HAWK_ARR_TALLY(((hawk_val_arr_t*)v)->arr): HAWK_ARR_SIZE(((hawk_val_arr_t*)v)->arr);
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HAWK_VAL_ARR: /* returns the number of set items instead of the last index + 1 */
|
|
||||||
switch (mode)
|
|
||||||
{
|
|
||||||
case 2: /* capacity */
|
|
||||||
len = HAWK_ARR_SIZE(((hawk_val_arr_t*)v)->arr);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 1: /* size */
|
|
||||||
len = HAWK_ARR_SIZE(((hawk_val_arr_t*)v)->arr);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0: /* length */
|
|
||||||
default:
|
|
||||||
len = HAWK_ARR_TALLY(((hawk_val_arr_t*)v)->arr);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HAWK_VAL_BCHR:
|
case HAWK_VAL_BCHR:
|
||||||
|
@ -339,12 +339,6 @@ static int fnc_gcrefs (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
|
|||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
static int fnc_cap (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
|
|
||||||
{
|
|
||||||
/* capacity */
|
|
||||||
return hawk_fnc_length (rtx, fi, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int fnc_size (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
|
static int fnc_size (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
|
||||||
{
|
{
|
||||||
/* similar to length, but it returns the ubound + 1 for the array */
|
/* similar to length, but it returns the ubound + 1 for the array */
|
||||||
@ -539,7 +533,6 @@ static hawk_mod_fnc_tab_t fnctab[] =
|
|||||||
/* keep this table sorted for binary search in query(). */
|
/* keep this table sorted for binary search in query(). */
|
||||||
{ HAWK_T("array"), { { 0, A_MAX, HAWK_NULL }, fnc_array, 0 } },
|
{ HAWK_T("array"), { { 0, A_MAX, HAWK_NULL }, fnc_array, 0 } },
|
||||||
{ HAWK_T("call"), { { 1, A_MAX, HAWK_T("vR") }, fnc_call, 0 } },
|
{ HAWK_T("call"), { { 1, A_MAX, HAWK_T("vR") }, fnc_call, 0 } },
|
||||||
{ HAWK_T("cap"), { { 1, 1, HAWK_NULL }, fnc_cap, 0 } },
|
|
||||||
{ HAWK_T("cmgr_exists"), { { 1, 1, HAWK_NULL }, fnc_cmgr_exists, 0 } },
|
{ HAWK_T("cmgr_exists"), { { 1, 1, HAWK_NULL }, fnc_cmgr_exists, 0 } },
|
||||||
{ HAWK_T("function_exists"), { { 1, 1, HAWK_NULL }, fnc_function_exists, 0 } },
|
{ HAWK_T("function_exists"), { { 1, 1, HAWK_NULL }, fnc_function_exists, 0 } },
|
||||||
{ HAWK_T("gc"), { { 0, 1, HAWK_NULL }, fnc_gc, 0 } },
|
{ HAWK_T("gc"), { { 0, 1, HAWK_NULL }, fnc_gc, 0 } },
|
||||||
|
@ -28,6 +28,10 @@ EXTRA_DIST = $(check_SCRIPTS) $(check_ERRORS) tap.inc err.sh \
|
|||||||
|
|
||||||
check_PROGRAMS = t-001 t-002 t-003 t-004 t-005 t-006 t-007 t-008 t-009
|
check_PROGRAMS = t-001 t-002 t-003 t-004 t-005 t-006 t-007 t-008 t-009
|
||||||
|
|
||||||
|
if ENABLE_CXX
|
||||||
|
check_PROGRAMS += t-101
|
||||||
|
endif
|
||||||
|
|
||||||
t_001_SOURCES = t-001.c tap.h
|
t_001_SOURCES = t-001.c tap.h
|
||||||
t_001_CPPFLAGS = $(CPPFLAGS_COMMON)
|
t_001_CPPFLAGS = $(CPPFLAGS_COMMON)
|
||||||
|
|
||||||
@ -79,6 +83,14 @@ t_009_CFLAGS = $(CFLAGS_COMMON)
|
|||||||
t_009_LDFLAGS = $(LDFLAGS_COMMON)
|
t_009_LDFLAGS = $(LDFLAGS_COMMON)
|
||||||
t_009_LDADD = $(LIBADD_COMMON)
|
t_009_LDADD = $(LIBADD_COMMON)
|
||||||
|
|
||||||
|
if ENABLE_CXX
|
||||||
|
t_101_SOURCES = t-101.cpp tap.h
|
||||||
|
t_101_CPPFLAGS = $(CPPFLAGS_COMMON)
|
||||||
|
t_101_CFLAGS = $(CFLAGS_COMMON)
|
||||||
|
t_101_LDFLAGS = $(LDFLAGS_COMMON)
|
||||||
|
t_101_LDADD = $(LIBADD_COMMON)
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/ac/tap-driver.sh
|
LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/ac/tap-driver.sh
|
||||||
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(check_ERRORS)
|
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(check_ERRORS)
|
||||||
|
@ -92,7 +92,8 @@ host_triplet = @host@
|
|||||||
@ENABLE_WIDE_CHAR_TRUE@am__append_1 = h-001.hawk h-002.hawk
|
@ENABLE_WIDE_CHAR_TRUE@am__append_1 = h-001.hawk h-002.hawk
|
||||||
check_PROGRAMS = t-001$(EXEEXT) t-002$(EXEEXT) t-003$(EXEEXT) \
|
check_PROGRAMS = t-001$(EXEEXT) t-002$(EXEEXT) t-003$(EXEEXT) \
|
||||||
t-004$(EXEEXT) t-005$(EXEEXT) t-006$(EXEEXT) t-007$(EXEEXT) \
|
t-004$(EXEEXT) t-005$(EXEEXT) t-006$(EXEEXT) t-007$(EXEEXT) \
|
||||||
t-008$(EXEEXT) t-009$(EXEEXT)
|
t-008$(EXEEXT) t-009$(EXEEXT) $(am__EXEEXT_1)
|
||||||
|
@ENABLE_CXX_TRUE@am__append_2 = t-101
|
||||||
subdir = t
|
subdir = t
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_sign.m4 \
|
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_sign.m4 \
|
||||||
@ -111,6 +112,7 @@ mkinstalldirs = $(install_sh) -d
|
|||||||
CONFIG_HEADER = $(top_builddir)/lib/hawk-cfg.h
|
CONFIG_HEADER = $(top_builddir)/lib/hawk-cfg.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES =
|
||||||
CONFIG_CLEAN_VPATH_FILES =
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
|
@ENABLE_CXX_TRUE@am__EXEEXT_1 = t-101$(EXEEXT)
|
||||||
am_t_001_OBJECTS = t_001-t-001.$(OBJEXT)
|
am_t_001_OBJECTS = t_001-t-001.$(OBJEXT)
|
||||||
t_001_OBJECTS = $(am_t_001_OBJECTS)
|
t_001_OBJECTS = $(am_t_001_OBJECTS)
|
||||||
t_001_LDADD = $(LDADD)
|
t_001_LDADD = $(LDADD)
|
||||||
@ -168,6 +170,13 @@ t_009_DEPENDENCIES = $(am__DEPENDENCIES_2)
|
|||||||
t_009_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
t_009_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(t_009_CFLAGS) $(CFLAGS) \
|
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(t_009_CFLAGS) $(CFLAGS) \
|
||||||
$(t_009_LDFLAGS) $(LDFLAGS) -o $@
|
$(t_009_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
|
am__t_101_SOURCES_DIST = t-101.cpp tap.h
|
||||||
|
@ENABLE_CXX_TRUE@am_t_101_OBJECTS = t_101-t-101.$(OBJEXT)
|
||||||
|
t_101_OBJECTS = $(am_t_101_OBJECTS)
|
||||||
|
@ENABLE_CXX_TRUE@t_101_DEPENDENCIES = $(am__DEPENDENCIES_2)
|
||||||
|
t_101_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
|
||||||
|
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
|
||||||
|
$(CXXFLAGS) $(t_101_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
AM_V_P = $(am__v_P_@AM_V@)
|
AM_V_P = $(am__v_P_@AM_V@)
|
||||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||||
am__v_P_0 = false
|
am__v_P_0 = false
|
||||||
@ -187,7 +196,8 @@ am__depfiles_remade = ./$(DEPDIR)/t_001-t-001.Po \
|
|||||||
./$(DEPDIR)/t_002-t-002.Po ./$(DEPDIR)/t_003-t-003.Po \
|
./$(DEPDIR)/t_002-t-002.Po ./$(DEPDIR)/t_003-t-003.Po \
|
||||||
./$(DEPDIR)/t_004-t-004.Po ./$(DEPDIR)/t_005-t-005.Po \
|
./$(DEPDIR)/t_004-t-004.Po ./$(DEPDIR)/t_005-t-005.Po \
|
||||||
./$(DEPDIR)/t_006-t-006.Po ./$(DEPDIR)/t_007-t-007.Po \
|
./$(DEPDIR)/t_006-t-006.Po ./$(DEPDIR)/t_007-t-007.Po \
|
||||||
./$(DEPDIR)/t_008-t-008.Po ./$(DEPDIR)/t_009-t-009.Po
|
./$(DEPDIR)/t_008-t-008.Po ./$(DEPDIR)/t_009-t-009.Po \
|
||||||
|
./$(DEPDIR)/t_101-t-101.Po
|
||||||
am__mv = mv -f
|
am__mv = mv -f
|
||||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||||
@ -207,12 +217,32 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@)
|
|||||||
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
|
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
|
||||||
am__v_CCLD_0 = @echo " CCLD " $@;
|
am__v_CCLD_0 = @echo " CCLD " $@;
|
||||||
am__v_CCLD_1 =
|
am__v_CCLD_1 =
|
||||||
|
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||||
|
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||||
|
LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
|
||||||
|
$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
|
||||||
|
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
|
||||||
|
$(AM_CXXFLAGS) $(CXXFLAGS)
|
||||||
|
AM_V_CXX = $(am__v_CXX_@AM_V@)
|
||||||
|
am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
|
||||||
|
am__v_CXX_0 = @echo " CXX " $@;
|
||||||
|
am__v_CXX_1 =
|
||||||
|
CXXLD = $(CXX)
|
||||||
|
CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
|
||||||
|
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
|
||||||
|
$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
|
AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
|
||||||
|
am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
|
||||||
|
am__v_CXXLD_0 = @echo " CXXLD " $@;
|
||||||
|
am__v_CXXLD_1 =
|
||||||
SOURCES = $(t_001_SOURCES) $(t_002_SOURCES) $(t_003_SOURCES) \
|
SOURCES = $(t_001_SOURCES) $(t_002_SOURCES) $(t_003_SOURCES) \
|
||||||
$(t_004_SOURCES) $(t_005_SOURCES) $(t_006_SOURCES) \
|
$(t_004_SOURCES) $(t_005_SOURCES) $(t_006_SOURCES) \
|
||||||
$(t_007_SOURCES) $(t_008_SOURCES) $(t_009_SOURCES)
|
$(t_007_SOURCES) $(t_008_SOURCES) $(t_009_SOURCES) \
|
||||||
|
$(t_101_SOURCES)
|
||||||
DIST_SOURCES = $(t_001_SOURCES) $(t_002_SOURCES) $(t_003_SOURCES) \
|
DIST_SOURCES = $(t_001_SOURCES) $(t_002_SOURCES) $(t_003_SOURCES) \
|
||||||
$(t_004_SOURCES) $(t_005_SOURCES) $(t_006_SOURCES) \
|
$(t_004_SOURCES) $(t_005_SOURCES) $(t_006_SOURCES) \
|
||||||
$(t_007_SOURCES) $(t_008_SOURCES) $(t_009_SOURCES)
|
$(t_007_SOURCES) $(t_008_SOURCES) $(t_009_SOURCES) \
|
||||||
|
$(am__t_101_SOURCES_DIST)
|
||||||
am__can_run_installinfo = \
|
am__can_run_installinfo = \
|
||||||
case $$AM_UPDATE_INFO_DIR in \
|
case $$AM_UPDATE_INFO_DIR in \
|
||||||
n|no|NO) false;; \
|
n|no|NO) false;; \
|
||||||
@ -662,6 +692,11 @@ t_009_CPPFLAGS = $(CPPFLAGS_COMMON)
|
|||||||
t_009_CFLAGS = $(CFLAGS_COMMON)
|
t_009_CFLAGS = $(CFLAGS_COMMON)
|
||||||
t_009_LDFLAGS = $(LDFLAGS_COMMON)
|
t_009_LDFLAGS = $(LDFLAGS_COMMON)
|
||||||
t_009_LDADD = $(LIBADD_COMMON)
|
t_009_LDADD = $(LIBADD_COMMON)
|
||||||
|
@ENABLE_CXX_TRUE@t_101_SOURCES = t-101.cpp tap.h
|
||||||
|
@ENABLE_CXX_TRUE@t_101_CPPFLAGS = $(CPPFLAGS_COMMON)
|
||||||
|
@ENABLE_CXX_TRUE@t_101_CFLAGS = $(CFLAGS_COMMON)
|
||||||
|
@ENABLE_CXX_TRUE@t_101_LDFLAGS = $(LDFLAGS_COMMON)
|
||||||
|
@ENABLE_CXX_TRUE@t_101_LDADD = $(LIBADD_COMMON)
|
||||||
LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/ac/tap-driver.sh
|
LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/ac/tap-driver.sh
|
||||||
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(check_ERRORS)
|
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(check_ERRORS)
|
||||||
TEST_EXTENSIONS = .hawk .err
|
TEST_EXTENSIONS = .hawk .err
|
||||||
@ -674,7 +709,7 @@ AM_ERR_LOG_FLAGS =
|
|||||||
all: all-am
|
all: all-am
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.SUFFIXES: .c .err .err$(EXEEXT) .hawk .hawk$(EXEEXT) .lo .log .o .obj .trs
|
.SUFFIXES: .c .cpp .err .err$(EXEEXT) .hawk .hawk$(EXEEXT) .lo .log .o .obj .trs
|
||||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
@for dep in $?; do \
|
@for dep in $?; do \
|
||||||
case '$(am__configure_deps)' in \
|
case '$(am__configure_deps)' in \
|
||||||
@ -745,6 +780,10 @@ t-009$(EXEEXT): $(t_009_OBJECTS) $(t_009_DEPENDENCIES) $(EXTRA_t_009_DEPENDENCIE
|
|||||||
@rm -f t-009$(EXEEXT)
|
@rm -f t-009$(EXEEXT)
|
||||||
$(AM_V_CCLD)$(t_009_LINK) $(t_009_OBJECTS) $(t_009_LDADD) $(LIBS)
|
$(AM_V_CCLD)$(t_009_LINK) $(t_009_OBJECTS) $(t_009_LDADD) $(LIBS)
|
||||||
|
|
||||||
|
t-101$(EXEEXT): $(t_101_OBJECTS) $(t_101_DEPENDENCIES) $(EXTRA_t_101_DEPENDENCIES)
|
||||||
|
@rm -f t-101$(EXEEXT)
|
||||||
|
$(AM_V_CXXLD)$(t_101_LINK) $(t_101_OBJECTS) $(t_101_LDADD) $(LIBS)
|
||||||
|
|
||||||
mostlyclean-compile:
|
mostlyclean-compile:
|
||||||
-rm -f *.$(OBJEXT)
|
-rm -f *.$(OBJEXT)
|
||||||
|
|
||||||
@ -760,6 +799,7 @@ distclean-compile:
|
|||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_007-t-007.Po@am__quote@ # am--include-marker
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_007-t-007.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_008-t-008.Po@am__quote@ # am--include-marker
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_008-t-008.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_009-t-009.Po@am__quote@ # am--include-marker
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_009-t-009.Po@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_101-t-101.Po@am__quote@ # am--include-marker
|
||||||
|
|
||||||
$(am__depfiles_remade):
|
$(am__depfiles_remade):
|
||||||
@$(MKDIR_P) $(@D)
|
@$(MKDIR_P) $(@D)
|
||||||
@ -917,6 +957,44 @@ t_009-t-009.obj: t-009.c
|
|||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(t_009_CPPFLAGS) $(CPPFLAGS) $(t_009_CFLAGS) $(CFLAGS) -c -o t_009-t-009.obj `if test -f 't-009.c'; then $(CYGPATH_W) 't-009.c'; else $(CYGPATH_W) '$(srcdir)/t-009.c'; fi`
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(t_009_CPPFLAGS) $(CPPFLAGS) $(t_009_CFLAGS) $(CFLAGS) -c -o t_009-t-009.obj `if test -f 't-009.c'; then $(CYGPATH_W) 't-009.c'; else $(CYGPATH_W) '$(srcdir)/t-009.c'; fi`
|
||||||
|
|
||||||
|
.cpp.o:
|
||||||
|
@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
|
||||||
|
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
|
||||||
|
@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
|
||||||
|
|
||||||
|
.cpp.obj:
|
||||||
|
@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
|
||||||
|
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
|
||||||
|
@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||||
|
|
||||||
|
.cpp.lo:
|
||||||
|
@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
|
||||||
|
@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
|
||||||
|
@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
|
||||||
|
|
||||||
|
t_101-t-101.o: t-101.cpp
|
||||||
|
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(t_101_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT t_101-t-101.o -MD -MP -MF $(DEPDIR)/t_101-t-101.Tpo -c -o t_101-t-101.o `test -f 't-101.cpp' || echo '$(srcdir)/'`t-101.cpp
|
||||||
|
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/t_101-t-101.Tpo $(DEPDIR)/t_101-t-101.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='t-101.cpp' object='t_101-t-101.o' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(t_101_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o t_101-t-101.o `test -f 't-101.cpp' || echo '$(srcdir)/'`t-101.cpp
|
||||||
|
|
||||||
|
t_101-t-101.obj: t-101.cpp
|
||||||
|
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(t_101_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT t_101-t-101.obj -MD -MP -MF $(DEPDIR)/t_101-t-101.Tpo -c -o t_101-t-101.obj `if test -f 't-101.cpp'; then $(CYGPATH_W) 't-101.cpp'; else $(CYGPATH_W) '$(srcdir)/t-101.cpp'; fi`
|
||||||
|
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/t_101-t-101.Tpo $(DEPDIR)/t_101-t-101.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='t-101.cpp' object='t_101-t-101.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(t_101_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o t_101-t-101.obj `if test -f 't-101.cpp'; then $(CYGPATH_W) 't-101.cpp'; else $(CYGPATH_W) '$(srcdir)/t-101.cpp'; fi`
|
||||||
|
|
||||||
mostlyclean-libtool:
|
mostlyclean-libtool:
|
||||||
-rm -f *.lo
|
-rm -f *.lo
|
||||||
|
|
||||||
@ -1204,6 +1282,13 @@ t-009.log: t-009$(EXEEXT)
|
|||||||
--log-file $$b.log --trs-file $$b.trs \
|
--log-file $$b.log --trs-file $$b.trs \
|
||||||
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
|
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
|
||||||
"$$tst" $(AM_TESTS_FD_REDIRECT)
|
"$$tst" $(AM_TESTS_FD_REDIRECT)
|
||||||
|
t-101.log: t-101$(EXEEXT)
|
||||||
|
@p='t-101$(EXEEXT)'; \
|
||||||
|
b='t-101'; \
|
||||||
|
$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
|
||||||
|
--log-file $$b.log --trs-file $$b.trs \
|
||||||
|
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
|
||||||
|
"$$tst" $(AM_TESTS_FD_REDIRECT)
|
||||||
.hawk.log:
|
.hawk.log:
|
||||||
@p='$<'; \
|
@p='$<'; \
|
||||||
$(am__set_b); \
|
$(am__set_b); \
|
||||||
@ -1319,6 +1404,7 @@ distclean: distclean-am
|
|||||||
-rm -f ./$(DEPDIR)/t_007-t-007.Po
|
-rm -f ./$(DEPDIR)/t_007-t-007.Po
|
||||||
-rm -f ./$(DEPDIR)/t_008-t-008.Po
|
-rm -f ./$(DEPDIR)/t_008-t-008.Po
|
||||||
-rm -f ./$(DEPDIR)/t_009-t-009.Po
|
-rm -f ./$(DEPDIR)/t_009-t-009.Po
|
||||||
|
-rm -f ./$(DEPDIR)/t_101-t-101.Po
|
||||||
-rm -f Makefile
|
-rm -f Makefile
|
||||||
distclean-am: clean-am distclean-compile distclean-generic \
|
distclean-am: clean-am distclean-compile distclean-generic \
|
||||||
distclean-tags
|
distclean-tags
|
||||||
@ -1373,6 +1459,7 @@ maintainer-clean: maintainer-clean-am
|
|||||||
-rm -f ./$(DEPDIR)/t_007-t-007.Po
|
-rm -f ./$(DEPDIR)/t_007-t-007.Po
|
||||||
-rm -f ./$(DEPDIR)/t_008-t-008.Po
|
-rm -f ./$(DEPDIR)/t_008-t-008.Po
|
||||||
-rm -f ./$(DEPDIR)/t_009-t-009.Po
|
-rm -f ./$(DEPDIR)/t_009-t-009.Po
|
||||||
|
-rm -f ./$(DEPDIR)/t_101-t-101.Po
|
||||||
-rm -f Makefile
|
-rm -f Makefile
|
||||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||||
|
|
||||||
|
46
t/t-101.cpp
Normal file
46
t/t-101.cpp
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
#include <Hawk.hpp>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "tap.h"
|
||||||
|
|
||||||
|
#define OK_X(test) OK(test, #test)
|
||||||
|
|
||||||
|
static void test1()
|
||||||
|
{
|
||||||
|
HAWK::HawkStd hawk;
|
||||||
|
HAWK::Hawk::Run* rtx;
|
||||||
|
int n;
|
||||||
|
|
||||||
|
n = hawk.open();
|
||||||
|
OK_X(n == 0);
|
||||||
|
|
||||||
|
HAWK::HawkStd::SourceString in("BEGIN{}");
|
||||||
|
rtx = hawk.parse(in, HAWK::Hawk::Source::NONE);
|
||||||
|
OK_X(rtx != HAWK_NULL);
|
||||||
|
|
||||||
|
HAWK::Hawk::Value v(rtx);
|
||||||
|
HAWK::Hawk::Value vi(rtx);
|
||||||
|
|
||||||
|
vi.setInt(1010);
|
||||||
|
OK_X(vi.getType() == HAWK_VAL_INT);
|
||||||
|
|
||||||
|
v.setMbs("hello", 5);
|
||||||
|
OK_X(v.getType() == HAWK_VAL_MBS);
|
||||||
|
|
||||||
|
v.setArrayedVal(4, vi);
|
||||||
|
OK_X(v.getType() == HAWK_VAL_ARR);
|
||||||
|
OK_X(v.getArrayedSize() == 5);
|
||||||
|
OK_X(v.getArrayedLength() == 1);
|
||||||
|
|
||||||
|
// i must not call hawk.close() to ensure that v is destroyed first.
|
||||||
|
//hawk.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
no_plan ();
|
||||||
|
|
||||||
|
test1();
|
||||||
|
|
||||||
|
return exit_status();
|
||||||
|
}
|
||||||
|
|
Reference in New Issue
Block a user