Recovered from cvs revision 2007-10-10 13:22:00
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: Awk.cpp,v 1.69 2007/10/08 09:43:15 bacon Exp $
|
||||
* $Id: Awk.cpp,v 1.70 2007/10/10 03:37:49 bacon Exp $
|
||||
*
|
||||
* {License}
|
||||
*/
|
||||
@ -935,16 +935,34 @@ const Awk::char_t* Awk::Run::getErrorMessage () const
|
||||
return ase_awk_getrunerrmsg (this->run);
|
||||
}
|
||||
|
||||
void Awk::Run::setError (
|
||||
ErrorCode code, size_t line, const char_t* arg, size_t len)
|
||||
void Awk::Run::setError (ErrorCode code)
|
||||
{
|
||||
ASE_ASSERT (this->run != ASE_NULL);
|
||||
ase_awk_setrunerror (this->run, code, 0, ASE_NULL, 0);
|
||||
}
|
||||
|
||||
ase_cstr_t x = { arg, len };
|
||||
void Awk::Run::setError (ErrorCode code, size_t line)
|
||||
{
|
||||
ASE_ASSERT (this->run != ASE_NULL);
|
||||
ase_awk_setrunerror (this->run, code, line, ASE_NULL, 0);
|
||||
}
|
||||
|
||||
void Awk::Run::setError (ErrorCode code, size_t line, const char_t* arg)
|
||||
{
|
||||
ASE_ASSERT (this->run != ASE_NULL);
|
||||
ase_cstr_t x = { arg, ase_strlen(arg) };
|
||||
ase_awk_setrunerror (this->run, code, line, &x, 1);
|
||||
}
|
||||
|
||||
void Awk::Run::setError (
|
||||
ErrorCode code, size_t line, const char_t* arg, size_t len)
|
||||
{
|
||||
ASE_ASSERT (this->run != ASE_NULL);
|
||||
ase_cstr_t x = { arg, len };
|
||||
ase_awk_setrunerror (this->run, code, line, &x, 1);
|
||||
}
|
||||
|
||||
void Awk::Run::setErrorWithMessage (
|
||||
ErrorCode code, size_t line, const char_t* msg)
|
||||
{
|
||||
ASE_ASSERT (this->run != ASE_NULL);
|
||||
@ -1063,8 +1081,22 @@ const Awk::char_t* Awk::getErrorMessage () const
|
||||
return this->errmsg;
|
||||
}
|
||||
|
||||
void Awk::setError (
|
||||
ErrorCode code, size_t line, const char_t* arg, size_t len)
|
||||
void Awk::setError (ErrorCode code)
|
||||
{
|
||||
setError (code, 0, ASE_NULL, 0);
|
||||
}
|
||||
|
||||
void Awk::setError (ErrorCode code, size_t line)
|
||||
{
|
||||
setError (code, line, ASE_NULL, 0);
|
||||
}
|
||||
|
||||
void Awk::setError (ErrorCode code, size_t line, const char_t* arg)
|
||||
{
|
||||
setError (code, line, arg, ase_strlen(arg));
|
||||
}
|
||||
|
||||
void Awk::setError (ErrorCode code, size_t line, const char_t* arg, size_t len)
|
||||
{
|
||||
if (awk != ASE_NULL)
|
||||
{
|
||||
@ -1082,8 +1114,7 @@ void Awk::setError (
|
||||
}
|
||||
}
|
||||
|
||||
void Awk::setError (
|
||||
ErrorCode code, size_t line, const char_t* msg)
|
||||
void Awk::setErrorWithMessage (ErrorCode code, size_t line, const char_t* msg)
|
||||
{
|
||||
if (awk != ASE_NULL)
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: Awk.hpp,v 1.70 2007/10/08 09:43:15 bacon Exp $
|
||||
* $Id: Awk.hpp,v 1.71 2007/10/10 03:37:49 bacon Exp $
|
||||
*
|
||||
* {License}
|
||||
*/
|
||||
@ -578,9 +578,13 @@ public:
|
||||
size_t getErrorLine () const;
|
||||
const char_t* getErrorMessage () const;
|
||||
|
||||
void setError (ErrorCode code, size_t line = 0,
|
||||
const char_t* arg = ASE_NULL, size_t len = 0);
|
||||
void setError (ErrorCode code, size_t line, const char_t* msg);
|
||||
void setError (ErrorCode code);
|
||||
void setError (ErrorCode code, size_t line);
|
||||
void setError (ErrorCode code, size_t line, const char_t* arg);
|
||||
void setError (ErrorCode code, size_t line, const char_t* arg, size_t len);
|
||||
|
||||
void setErrorWithMessage (
|
||||
ErrorCode code, size_t line, const char_t* msg);
|
||||
|
||||
/**
|
||||
* Sets the value of a global variable. The global variable
|
||||
@ -705,9 +709,13 @@ public:
|
||||
const char_t* getErrorMessage () const;
|
||||
|
||||
protected:
|
||||
void setError (ErrorCode code, size_t line = 0,
|
||||
const char_t* arg = ASE_NULL, size_t len = 0);
|
||||
void setError (ErrorCode code, size_t line, const char_t* msg);
|
||||
void setError (ErrorCode code);
|
||||
void setError (ErrorCode code, size_t line);
|
||||
void setError (ErrorCode code, size_t line, const char_t* arg);
|
||||
void setError (ErrorCode code, size_t line, const char_t* arg, size_t len);
|
||||
|
||||
void setErrorWithMessage (
|
||||
ErrorCode code, size_t line, const char_t* msg);
|
||||
|
||||
void clearError ();
|
||||
void retrieveError ();
|
||||
|
@ -17,7 +17,7 @@
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)\lib"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)\jni"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||
UseOfMFC="0"
|
||||
@ -54,10 +54,6 @@
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
PrecompiledHeaderFile=".\release/aseawk_jni.pch"
|
||||
AssemblerListingLocation=".\release/"
|
||||
ObjectFile=".\release/"
|
||||
ProgramDataBaseFileName=".\release/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
@ -79,9 +75,6 @@
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="$(OutDir)"
|
||||
ProgramDatabaseFile=".\../release/lib/aseawk_jni.pdb"
|
||||
ImportLibrary="release/aseawk_jni.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
@ -112,7 +105,7 @@
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)\lib"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)\jni"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||
UseOfMFC="0"
|
||||
@ -148,10 +141,6 @@
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
PrecompiledHeaderFile=".\debug/aseawk_jni.pch"
|
||||
AssemblerListingLocation=".\debug/"
|
||||
ObjectFile=".\debug/"
|
||||
ProgramDataBaseFileName=".\debug/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="4"
|
||||
@ -175,9 +164,6 @@
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="$(OutDir)"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\../debug/lib/aseawk_jni.pdb"
|
||||
ImportLibrary="debug/aseawk_jni.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
@ -208,7 +194,7 @@
|
||||
<Configuration
|
||||
Name="Debug MD|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)\jni"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||
UseOfMFC="0"
|
||||
@ -244,10 +230,6 @@
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
PrecompiledHeaderFile=".\debug/aseawk_jni.pch"
|
||||
AssemblerListingLocation=".\debug/"
|
||||
ObjectFile=".\debug/"
|
||||
ProgramDataBaseFileName=".\debug/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="4"
|
||||
@ -271,9 +253,6 @@
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="$(OutDir)"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\../debug/lib/aseawk_jni.pdb"
|
||||
ImportLibrary="debug/aseawk_jni.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: awk.h,v 1.16 2007/09/27 11:30:54 bacon Exp $
|
||||
* $Id: awk.h,v 1.17 2007/10/10 03:37:49 bacon Exp $
|
||||
*
|
||||
* {License}
|
||||
*/
|
||||
@ -199,7 +199,10 @@ enum ase_awk_option_t
|
||||
ASE_AWK_RESET = (1 << 15),
|
||||
|
||||
/* allows the assignment of a map value to a variable */
|
||||
ASE_AWK_MAPTOVAR = (1 << 16)
|
||||
ASE_AWK_MAPTOVAR = (1 << 16),
|
||||
|
||||
/* allows BEGIN, END, pattern-action blocks */
|
||||
ASE_AWK_PABLOCK = (1 << 17)
|
||||
};
|
||||
|
||||
/* error code */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: jni.c,v 1.15 2007/09/24 11:15:58 bacon Exp $
|
||||
* $Id: jni.c,v 1.16 2007/10/10 03:37:49 bacon Exp $
|
||||
*
|
||||
* {License}
|
||||
*/
|
||||
@ -34,7 +34,14 @@
|
||||
#define CLASS_EXTIO "ase/awk/Extio"
|
||||
#define FIELD_HANDLE "handle"
|
||||
|
||||
#define MSG_SIZE 256
|
||||
#if defined(_WIN32) && defined(_MSC_VER) && (_MSC_VER>=1400)
|
||||
#pragma warning(disable:4996)
|
||||
|
||||
#define time_t __time64_t
|
||||
#define time _time64
|
||||
#define localtime _localtime64
|
||||
#define gmtime _gmtime64
|
||||
#endif
|
||||
|
||||
enum
|
||||
{
|
||||
@ -1450,10 +1457,10 @@ static int __handle_bfn (
|
||||
return -1;
|
||||
}
|
||||
|
||||
tmp[0] = (jchar*)'b';
|
||||
tmp[1] = (jchar*)'f';
|
||||
tmp[2] = (jchar*)'n';
|
||||
tmp[3] = (jchar*)'_';
|
||||
tmp[0] = (jchar)'b';
|
||||
tmp[1] = (jchar)'f';
|
||||
tmp[2] = (jchar)'n';
|
||||
tmp[3] = (jchar)'_';
|
||||
for (i = 0; i < fnl; i++) tmp[i+4] = (jchar)fnm[i];
|
||||
name = (*env)->NewString (env, tmp, fnl+4);
|
||||
free (tmp);
|
||||
@ -1689,7 +1696,7 @@ static int __handle_bfn (
|
||||
|
||||
if (len > 0 && ASE_SIZEOF(jchar) != ASE_SIZEOF(ase_char_t))
|
||||
{
|
||||
ase_size_t i;
|
||||
jsize x;
|
||||
ase_char_t* tmp = (ase_char_t*)
|
||||
malloc (ASE_SIZEOF(ase_char_t)*len);
|
||||
if (tmp == ASE_NULL)
|
||||
@ -1700,7 +1707,7 @@ static int __handle_bfn (
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (i = 0; i < len; i++) tmp[i] = (ase_char_t)ptr[i];
|
||||
for (x = 0; x < len; x++) tmp[x] = (ase_char_t)ptr[x];
|
||||
v = ase_awk_makestrval (run, tmp, len);
|
||||
free (tmp);
|
||||
}
|
||||
@ -1771,7 +1778,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_addfunc (
|
||||
|
||||
if (len > 0 && ASE_SIZEOF(jchar) != ASE_SIZEOF(ase_char_t))
|
||||
{
|
||||
ase_size_t i;
|
||||
jsize x;
|
||||
ase_char_t* tmp = (ase_char_t*)
|
||||
malloc (ASE_SIZEOF(ase_char_t)*len);
|
||||
if (tmp == ASE_NULL)
|
||||
@ -1785,7 +1792,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_addfunc (
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < len; i++) tmp[i] = (ase_char_t)ptr[i];
|
||||
for (x = 0; x < len; x++) tmp[x] = (ase_char_t)ptr[x];
|
||||
n = (ase_awk_addfunc (awk, tmp, len, 0,
|
||||
min_args, max_args, ASE_NULL, __handle_bfn) == NULL)? -1: 0;
|
||||
free (tmp);
|
||||
@ -1848,7 +1855,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_delfunc (
|
||||
|
||||
if (len > 0 && ASE_SIZEOF(jchar) != ASE_SIZEOF(ase_char_t))
|
||||
{
|
||||
ase_size_t i;
|
||||
jsize x;
|
||||
ase_char_t* tmp = (ase_char_t*)
|
||||
malloc (ASE_SIZEOF(ase_char_t)*len);
|
||||
if (tmp == ASE_NULL)
|
||||
@ -1862,7 +1869,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_delfunc (
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < len; i++) tmp[i] = (ase_char_t)ptr[i];
|
||||
for (x = 0; x < len; x++) tmp[x] = (ase_char_t)ptr[x];
|
||||
n = ase_awk_delfunc (awk, tmp, len);
|
||||
free (tmp);
|
||||
}
|
||||
@ -2069,7 +2076,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_setword (
|
||||
|
||||
if (ol > 0 && ASE_SIZEOF(jchar) != ASE_SIZEOF(ase_char_t))
|
||||
{
|
||||
ase_size_t i;
|
||||
jsize x;
|
||||
ox = (ase_char_t*)malloc (ASE_SIZEOF(ase_char_t)*ol);
|
||||
if (ox == ASE_NULL)
|
||||
{
|
||||
@ -2084,13 +2091,13 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_setword (
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < ol; i++) ox[i] = (ase_char_t)op[i];
|
||||
for (x = 0; x < ol; x++) ox[x] = (ase_char_t)op[x];
|
||||
}
|
||||
else ox = (ase_char_t*)op;
|
||||
|
||||
if (nl > 0 && ASE_SIZEOF(jchar) != ASE_SIZEOF(ase_char_t))
|
||||
{
|
||||
ase_size_t i;
|
||||
jsize x;
|
||||
nx = (ase_char_t*) malloc (ASE_SIZEOF(ase_char_t)*nl);
|
||||
if (nx == ASE_NULL)
|
||||
{
|
||||
@ -2107,7 +2114,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_setword (
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < nl; i++) nx[i] = (ase_char_t)np[i];
|
||||
for (x = 0; x < nl; x++) nx[x] = (ase_char_t)np[x];
|
||||
}
|
||||
else nx = (ase_char_t*)np;
|
||||
|
||||
@ -2152,7 +2159,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_setfilename (
|
||||
|
||||
if (len > 0 && ASE_SIZEOF(jchar) != ASE_SIZEOF(ase_char_t))
|
||||
{
|
||||
ase_size_t i;
|
||||
jsize x;
|
||||
ase_char_t* tmp = (ase_char_t*)
|
||||
malloc (ASE_SIZEOF(ase_char_t)*len);
|
||||
if (tmp == ASE_NULL)
|
||||
@ -2167,7 +2174,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_setfilename (
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < len; i++) tmp[i] = (ase_char_t)ptr[i];
|
||||
for (x = 0; x < len; x++) tmp[x] = (ase_char_t)ptr[x];
|
||||
n = ase_awk_setfilename (run, tmp, len);
|
||||
free (tmp);
|
||||
}
|
||||
@ -2211,7 +2218,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_setofilename (
|
||||
|
||||
if (len > 0 && ASE_SIZEOF(jchar) != ASE_SIZEOF(ase_char_t))
|
||||
{
|
||||
ase_size_t i;
|
||||
jsize x;
|
||||
ase_char_t* tmp = (ase_char_t*)
|
||||
malloc (ASE_SIZEOF(ase_char_t)*len);
|
||||
if (tmp == ASE_NULL)
|
||||
@ -2226,7 +2233,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_setofilename (
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < len; i++) tmp[i] = (ase_char_t)ptr[i];
|
||||
for (x = 0; x < len; x++) tmp[x] = (ase_char_t)ptr[x];
|
||||
n = ase_awk_setofilename (run, tmp, len);
|
||||
free (tmp);
|
||||
}
|
||||
@ -2273,7 +2280,7 @@ JNIEXPORT jobject JNICALL Java_ase_awk_Awk_strtonum (
|
||||
|
||||
if (len > 0 && ASE_SIZEOF(jchar) != ASE_SIZEOF(ase_char_t))
|
||||
{
|
||||
ase_size_t i;
|
||||
jsize x;
|
||||
ase_char_t* tmp = (ase_char_t*)
|
||||
malloc (ASE_SIZEOF(ase_char_t)*len);
|
||||
if (tmp == ASE_NULL)
|
||||
@ -2287,7 +2294,7 @@ JNIEXPORT jobject JNICALL Java_ase_awk_Awk_strtonum (
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (i = 0; i < len; i++) tmp[i] = (ase_char_t)ptr[i];
|
||||
for (x = 0; x < len; x++) tmp[x] = (ase_char_t)ptr[x];
|
||||
n = ase_awk_strtonum (
|
||||
(ase_awk_run_t*)runid, tmp, len, &lv, &rv);
|
||||
free (tmp);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: parse.c,v 1.18 2007/09/25 15:27:54 bacon Exp $
|
||||
* $Id: parse.c,v 1.19 2007/10/10 03:37:49 bacon Exp $
|
||||
*
|
||||
* {License}
|
||||
*/
|
||||
@ -237,8 +237,8 @@ static kwent_t kwtab[] =
|
||||
{ ASE_T("in"), 2, TOKEN_IN, 0 },
|
||||
|
||||
/* top-level block starters */
|
||||
{ ASE_T("BEGIN"), 5, TOKEN_BEGIN, 0 },
|
||||
{ ASE_T("END"), 3, TOKEN_END, 0 },
|
||||
{ ASE_T("BEGIN"), 5, TOKEN_BEGIN, ASE_AWK_PABLOCK },
|
||||
{ ASE_T("END"), 3, TOKEN_END, ASE_AWK_PABLOCK },
|
||||
{ ASE_T("function"), 8, TOKEN_FUNCTION, 0 },
|
||||
{ ASE_T("func"), 4, TOKEN_FUNCTION, 0 },
|
||||
|
||||
@ -649,6 +649,13 @@ static ase_awk_t* parse_progunit (ase_awk_t* awk)
|
||||
else if (MATCH(awk,TOKEN_LBRACE))
|
||||
{
|
||||
/* patternless block */
|
||||
if ((awk->option & ASE_AWK_PABLOCK) == 0)
|
||||
{
|
||||
/* TODO: SET ERROR */
|
||||
SETERRTOK (awk, ASE_AWK_EFUNC);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
awk->parse.id.block = PARSE_ACTION_BLOCK;
|
||||
if (parse_pattern_block (
|
||||
awk, ASE_NULL, ase_false) == ASE_NULL) return ASE_NULL;
|
||||
@ -666,6 +673,13 @@ static ase_awk_t* parse_progunit (ase_awk_t* awk)
|
||||
*/
|
||||
ase_awk_nde_t* ptn;
|
||||
|
||||
if ((awk->option & ASE_AWK_PABLOCK) == 0)
|
||||
{
|
||||
/* TODO: SET ERROR */
|
||||
SETERRTOK (awk, ASE_AWK_EFUNC);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
awk->parse.id.block = PARSE_PATTERN;
|
||||
|
||||
ptn = parse_expression (awk, awk->token.line);
|
||||
|
Reference in New Issue
Block a user