Recovered from cvs revision 2007-05-09 09:58:00
This commit is contained in:
parent
3fc43518d1
commit
1c373a9545
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: Awk.cpp,v 1.13 2007/05/07 09:30:28 bacon Exp $
|
||||
* $Id: Awk.cpp,v 1.14 2007/05/08 15:09:38 bacon Exp $
|
||||
*/
|
||||
|
||||
#include <ase/awk/Awk.hpp>
|
||||
@ -192,7 +192,7 @@ namespace ASE
|
||||
|
||||
size_t i, nargs = ase_awk_getnargs(run);
|
||||
|
||||
Value** args = new Value* [nargs];
|
||||
Value* args = new Value[nargs];
|
||||
|
||||
for (i = 0; i < nargs; i++)
|
||||
{
|
||||
@ -202,30 +202,27 @@ namespace ASE
|
||||
switch (v->type)
|
||||
{
|
||||
case ASE_AWK_VAL_INT:
|
||||
obj = new IntValue (
|
||||
((ase_awk_val_int_t*)v)->val);
|
||||
args[i].setInt (((ase_awk_val_int_t*)v)->val);
|
||||
break;
|
||||
|
||||
case ASE_AWK_VAL_REAL:
|
||||
obj = new RealValue (
|
||||
((ase_awk_val_real_t*)v)->val);
|
||||
args[i].setReal (((ase_awk_val_real_t*)v)->val);
|
||||
break;
|
||||
|
||||
case ASE_AWK_VAL_STR:
|
||||
obj = new StrValue (
|
||||
args[i].setStr (
|
||||
((ase_awk_val_str_t*)v)->buf,
|
||||
((ase_awk_val_str_t*)v)->len);
|
||||
break;
|
||||
|
||||
case ASE_AWK_VAL_NIL:
|
||||
obj = new NilValue ();
|
||||
args[i].setNil ();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Value* ret = (this->*handler) (nargs, args);
|
||||
|
||||
for (i = 0; i < nargs; i++) delete args[i];
|
||||
delete[] args;
|
||||
|
||||
if (ret == ASE_NULL) return -1;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: Awk.hpp,v 1.12 2007/05/07 09:30:28 bacon Exp $
|
||||
* $Id: Awk.hpp,v 1.13 2007/05/08 15:09:38 bacon Exp $
|
||||
*/
|
||||
|
||||
#ifndef _ASE_AWK_AWK_HPP_
|
||||
@ -112,42 +112,34 @@ namespace ASE
|
||||
class Value
|
||||
{
|
||||
public:
|
||||
};
|
||||
Value ();
|
||||
Value (long_t l);
|
||||
Value (real_t r);
|
||||
Value (char_t* ptr, size_t len);
|
||||
~Value ();
|
||||
|
||||
class NilValue: public Value
|
||||
{
|
||||
public:
|
||||
NilValue ();
|
||||
void setInt (long_t l);
|
||||
void setReal (real_t r);
|
||||
void setStr (char_t* ptr, size_t len);
|
||||
|
||||
char_t* toStr (size_t* len);
|
||||
long_t toInt ();
|
||||
real_t toReal ();
|
||||
|
||||
protected:
|
||||
};
|
||||
int type;
|
||||
|
||||
class StrValue: public Value
|
||||
{
|
||||
public:
|
||||
StrValue (const char_t* ptr, size_t len);
|
||||
union
|
||||
{
|
||||
long_t l;
|
||||
real_t r;
|
||||
|
||||
protected:
|
||||
char_t* ptr;
|
||||
size_t len;
|
||||
};
|
||||
|
||||
class RealValue: public Value
|
||||
{
|
||||
public:
|
||||
RealValue (real_t v);
|
||||
|
||||
protected:
|
||||
real_t value;
|
||||
};
|
||||
|
||||
class IntValue: public Value
|
||||
{
|
||||
public:
|
||||
IntValue (long_t v);
|
||||
|
||||
protected:
|
||||
long_t value;
|
||||
struct
|
||||
{
|
||||
char_t* ptr;
|
||||
size_t len;
|
||||
} s;
|
||||
} v;
|
||||
};
|
||||
|
||||
Awk ();
|
||||
|
Loading…
Reference in New Issue
Block a user