Recovered from cvs revision 2007-10-19 03:50:00
This commit is contained in:
parent
060d42d19b
commit
3b74f61b7f
@ -1,36 +1,38 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: Argument.java,v 1.2 2007/10/17 14:38:28 bacon Exp $
|
* $Id: Argument.java,v 1.3 2007/10/18 14:51:04 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ase.awk;
|
package ase.awk;
|
||||||
|
|
||||||
public class Argument
|
public class Argument
|
||||||
{
|
{
|
||||||
protected Context ctx;
|
protected long runid;
|
||||||
protected long value;
|
protected long valid;
|
||||||
|
|
||||||
Argument (Context ctx)
|
Argument (long runid, long valid)
|
||||||
{
|
{
|
||||||
this.ctx = ctx;
|
this.runid = runid;
|
||||||
|
this.valid = valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
long getIntValue ()
|
long getIntValue ()
|
||||||
{
|
{
|
||||||
return getintval (ctx.getId(), value);
|
return getintval (this.runid, this.valid);
|
||||||
}
|
}
|
||||||
|
|
||||||
double getRealValue ()
|
double getRealValue ()
|
||||||
{
|
{
|
||||||
return 0.0;
|
return getrealval (this.runid, this.valid);
|
||||||
}
|
}
|
||||||
|
|
||||||
String getStringValue ()
|
String getStringValue () throws Exception
|
||||||
{
|
{
|
||||||
return null;
|
return getstrval (this.runid, this.valid);
|
||||||
}
|
}
|
||||||
|
|
||||||
Argument getIndexed (String idx)
|
Argument getIndexed (String idx)
|
||||||
{
|
{
|
||||||
|
// TODO:..
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,5 +43,5 @@ public class Argument
|
|||||||
|
|
||||||
protected native long getintval (long runid, long valid);
|
protected native long getintval (long runid, long valid);
|
||||||
protected native double getrealval (long runid, long valid);
|
protected native double getrealval (long runid, long valid);
|
||||||
protected native String getstrval (long runid, long valid);
|
protected native String getstrval (long runid, long valid) throws Exception;
|
||||||
}
|
}
|
||||||
|
119
ase/awk/Awk.java
119
ase/awk/Awk.java
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: Awk.java,v 1.23 2007/10/17 14:38:28 bacon Exp $
|
* $Id: Awk.java,v 1.25 2007/10/18 14:51:04 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -62,49 +62,75 @@ public abstract class Awk
|
|||||||
/* == just in case == */
|
/* == just in case == */
|
||||||
protected void finalize () throws Throwable
|
protected void finalize () throws Throwable
|
||||||
{
|
{
|
||||||
if (this.awkid != 0) close ();
|
close ();
|
||||||
super.finalize ();
|
super.finalize ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* == native methods == */
|
public void close ()
|
||||||
private native void open () throws Exception;
|
{
|
||||||
public native void close ();
|
if (this.awkid != 0)
|
||||||
public native void parse () throws Exception;
|
{
|
||||||
public native void run (String main, String[] args) throws Exception;
|
close (this.awkid);
|
||||||
public native void stop ();
|
this.awkid = 0;
|
||||||
private native int getmaxdepth (int id);
|
}
|
||||||
private native void setmaxdepth (int id, int depth);
|
}
|
||||||
private native int getoption ();
|
|
||||||
private native void setoption (int opt);
|
public void parse () throws Exception
|
||||||
private native boolean getdebug ();
|
{
|
||||||
private native void setdebug (boolean debug);
|
parse (this.awkid);
|
||||||
private native void setword (String ow, String nw);
|
}
|
||||||
private native void addfunc (String name, int min_args, int max_args) throws Exception;
|
|
||||||
private native void delfunc (String name) throws Exception;
|
public void run (String main, String[] args) throws Exception
|
||||||
native void setfilename (long runid, String name) throws Exception;
|
{
|
||||||
native void setofilename (long runid, String name) throws Exception;
|
run (this.awkid, main, args);
|
||||||
private native Object strtonum (long runid, String str) throws Exception;
|
}
|
||||||
private native String valtostr (long runid, Object obj) throws Exception;
|
|
||||||
protected native String strftime (String fmt, long sec);
|
|
||||||
protected native String strfgmtime (String fmt, long sec);
|
|
||||||
protected native int system (String cmd);
|
|
||||||
|
|
||||||
/* == simpler run methods == */
|
|
||||||
public void run (String main) throws Exception
|
public void run (String main) throws Exception
|
||||||
{
|
{
|
||||||
run (main, null);
|
run (this.awkid, main, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void run (String[] args) throws Exception
|
public void run (String[] args) throws Exception
|
||||||
{
|
{
|
||||||
run (null, args);
|
run (this.awkid, null, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void run () throws Exception
|
public void run () throws Exception
|
||||||
{
|
{
|
||||||
run (null, null);
|
run (this.awkid, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void stop () throws Exception
|
||||||
|
{
|
||||||
|
stop (this.awkid);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* == native methods == */
|
||||||
|
private native void open () throws Exception;
|
||||||
|
protected native void close (long awkid);
|
||||||
|
protected native void parse (long awkid) throws Exception;
|
||||||
|
protected native void run (long awkid, String main, String[] args) throws Exception;
|
||||||
|
protected native void stop (long awkid) throws Exception;
|
||||||
|
protected native int getmaxdepth (long awkid, int id) throws Exception;
|
||||||
|
protected native void setmaxdepth (long awkid, int id, int depth) throws Exception;
|
||||||
|
protected native int getoption (long awkid) throws Exception;
|
||||||
|
protected native void setoption (long awkid, int opt) throws Exception;
|
||||||
|
protected native boolean getdebug (long awkid) throws Exception;
|
||||||
|
protected native void setdebug (long awkid, boolean debug) throws Exception;
|
||||||
|
protected native void setword (long awkid, String ow, String nw) throws Exception;
|
||||||
|
|
||||||
|
|
||||||
|
protected native void addfunc (String name, int min_args, int max_args) throws Exception;
|
||||||
|
protected native void delfunc (String name) throws Exception;
|
||||||
|
native void setfilename (long runid, String name) throws Exception;
|
||||||
|
native void setofilename (long runid, String name) throws Exception;
|
||||||
|
protected native Object strtonum (long runid, String str) throws Exception;
|
||||||
|
protected native String valtostr (long runid, Object obj) throws Exception;
|
||||||
|
protected native String strftime (String fmt, long sec);
|
||||||
|
protected native String strfgmtime (String fmt, long sec);
|
||||||
|
protected native int system (String cmd);
|
||||||
|
|
||||||
|
|
||||||
/* == intrinsic functions == */
|
/* == intrinsic functions == */
|
||||||
public void addFunction (String name, int min_args, int max_args) throws Exception
|
public void addFunction (String name, int min_args, int max_args) throws Exception
|
||||||
{
|
{
|
||||||
@ -236,51 +262,52 @@ public abstract class Awk
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* == depth limiting == */
|
/* == depth limiting == */
|
||||||
public int getMaxDepth (int id)
|
public int getMaxDepth (int id) throws Exception
|
||||||
{
|
{
|
||||||
return getmaxdepth (id);
|
return getmaxdepth (this.awkid, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMaxDepth (int ids, int depth)
|
public void setMaxDepth (int ids, int depth) throws Exception
|
||||||
{
|
{
|
||||||
setmaxdepth (ids, depth);
|
setmaxdepth (this.awkid, ids, depth);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* == option == */
|
/* == option == */
|
||||||
public int getOption ()
|
public int getOption () throws Exception
|
||||||
{
|
{
|
||||||
return getoption ();
|
return getoption (this.awkid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOption (int opt)
|
public void setOption (int opt) throws Exception
|
||||||
{
|
{
|
||||||
setoption (opt);
|
setoption (this.awkid, opt);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* == debug == */
|
/* == debug == */
|
||||||
public boolean getDebug ()
|
public boolean getDebug () throws Exception
|
||||||
{
|
{
|
||||||
return getdebug ();
|
return getdebug (this.awkid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDebug (boolean debug)
|
public void setDebug (boolean debug) throws Exception
|
||||||
{
|
{
|
||||||
setdebug (debug);
|
setdebug (this.awkid, debug);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setWord (String ow, String nw)
|
/* == word replacement == */
|
||||||
|
public void setWord (String ow, String nw) throws Exception
|
||||||
{
|
{
|
||||||
setword (ow, nw);
|
setword (this.awkid, ow, nw);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void unsetWord (String ow)
|
public void unsetWord (String ow) throws Exception
|
||||||
{
|
{
|
||||||
setword (ow, null);
|
setword (this.awkid, ow, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void unsetAllWords ()
|
public void unsetAllWords () throws Exception
|
||||||
{
|
{
|
||||||
setword (null, null);
|
setword (this.awkid, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* == source code management == */
|
/* == source code management == */
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: StdAwk.java,v 1.15 2007/10/15 16:10:10 bacon Exp $
|
* $Id: StdAwk.java,v 1.16 2007/10/18 14:51:04 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -333,8 +333,12 @@ public abstract class StdAwk extends Awk
|
|||||||
/* == arithmetic built-in functions */
|
/* == arithmetic built-in functions */
|
||||||
public Object sin (Context ctx, String name, Object[] args) throws Exception
|
public Object sin (Context ctx, String name, Object[] args) throws Exception
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
double x = builtinFunctionArgumentToDouble (ctx, args[0]);
|
double x = builtinFunctionArgumentToDouble (ctx, args[0]);
|
||||||
return new Double (Math.sin(x));
|
return new Double (Math.sin(x));
|
||||||
|
*/
|
||||||
|
Argument x = (Argument)args[0];
|
||||||
|
return new Double (Math.sin(x.getIntValue()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object cos (Context ctx, String name, Object[] args) throws Exception
|
public Object cos (Context ctx, String name, Object[] args) throws Exception
|
||||||
|
319
ase/awk/jni.c
319
ase/awk/jni.c
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: jni.c,v 1.27 2007/10/17 14:38:28 bacon Exp $
|
* $Id: jni.c,v 1.29 2007/10/18 14:51:04 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -39,6 +39,7 @@
|
|||||||
#define CLASS_EXCEPTION "ase/awk/Exception"
|
#define CLASS_EXCEPTION "ase/awk/Exception"
|
||||||
#define CLASS_EXTIO "ase/awk/Extio"
|
#define CLASS_EXTIO "ase/awk/Extio"
|
||||||
#define CLASS_CONTEXT "ase/awk/Context"
|
#define CLASS_CONTEXT "ase/awk/Context"
|
||||||
|
#define CLASS_ARGUMENT "ase/awk/Argument"
|
||||||
#define FIELD_AWKID "awkid"
|
#define FIELD_AWKID "awkid"
|
||||||
#define FIELD_RUNID "runid"
|
#define FIELD_RUNID "runid"
|
||||||
|
|
||||||
@ -102,6 +103,7 @@ struct run_data_t
|
|||||||
jclass double_class;
|
jclass double_class;
|
||||||
jclass object_class;
|
jclass object_class;
|
||||||
jclass context_class;
|
jclass context_class;
|
||||||
|
jclass argument_class;
|
||||||
|
|
||||||
jmethodID integer_init;
|
jmethodID integer_init;
|
||||||
jmethodID long_init;
|
jmethodID long_init;
|
||||||
@ -109,6 +111,7 @@ struct run_data_t
|
|||||||
jmethodID float_init;
|
jmethodID float_init;
|
||||||
jmethodID double_init;
|
jmethodID double_init;
|
||||||
jmethodID context_init;
|
jmethodID context_init;
|
||||||
|
jmethodID argument_init;
|
||||||
|
|
||||||
jmethodID integer_value;
|
jmethodID integer_value;
|
||||||
jmethodID long_value;
|
jmethodID long_value;
|
||||||
@ -488,37 +491,26 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_open (JNIEnv* env, jobject obj)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_close (JNIEnv* env, jobject obj)
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_close (JNIEnv* env, jobject obj, jlong awkid)
|
||||||
{
|
{
|
||||||
jclass class;
|
|
||||||
jfieldID awkid;
|
|
||||||
ase_awk_t* awk;
|
ase_awk_t* awk;
|
||||||
|
awk_data_t* tmp;
|
||||||
|
|
||||||
|
awk = (ase_awk_t*)awkid;
|
||||||
|
/* don't like to throw an exception for close.
|
||||||
|
* i find doing so very irritating, especially when it
|
||||||
|
* should be called in an exception handler */
|
||||||
|
if (awk == NULL) return;
|
||||||
|
|
||||||
#if defined(_WIN32) && defined(_DEBUG)
|
#if defined(_WIN32) && defined(_DEBUG)
|
||||||
OutputDebugStringW (L"<<<CLOSING AWK>>>\n");
|
OutputDebugStringW (L"<<<CLOSING AWK>>>\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
class = (*env)->GetObjectClass(env, obj);
|
tmp = (awk_data_t*)ase_awk_getcustomdata (awk);
|
||||||
awkid = (*env)->GetFieldID (env, class, FIELD_AWKID, "J");
|
|
||||||
(*env)->DeleteLocalRef (env, class);
|
|
||||||
if (awkid == NULL)
|
|
||||||
{
|
|
||||||
/* internal error. no awkid field
|
|
||||||
* NoSuchFieldError, ExceptionInitializerError,
|
|
||||||
* OutOfMemoryError might have occurred */
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
awk = (ase_awk_t*) (*env)->GetLongField (env, obj, awkid);
|
|
||||||
if (awk != NULL)
|
|
||||||
{
|
|
||||||
/* the awkid is not NULL. close it */
|
|
||||||
awk_data_t* tmp = (awk_data_t*)ase_awk_getcustomdata (awk);
|
|
||||||
#if defined(_WIN32) && defined(__DMC__)
|
#if defined(_WIN32) && defined(__DMC__)
|
||||||
HANDLE heap = tmp->heap;
|
HANDLE heap = tmp->heap;
|
||||||
#endif
|
#endif
|
||||||
ase_awk_close (awk);
|
ase_awk_close (awk);
|
||||||
(*env)->SetLongField (env, obj, awkid, (jlong)0);
|
|
||||||
|
|
||||||
#if defined(_WIN32) && defined(__DMC__)
|
#if defined(_WIN32) && defined(__DMC__)
|
||||||
awk_free (heap, tmp);
|
awk_free (heap, tmp);
|
||||||
@ -526,7 +518,6 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_close (JNIEnv* env, jobject obj)
|
|||||||
#else
|
#else
|
||||||
awk_free (NULL, tmp);
|
awk_free (NULL, tmp);
|
||||||
#endif
|
#endif
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(_WIN32) && defined(_DEBUG)
|
#if defined(_WIN32) && defined(_DEBUG)
|
||||||
OutputDebugStringW (L"<<<CLOSED AWK>>>\n");
|
OutputDebugStringW (L"<<<CLOSED AWK>>>\n");
|
||||||
@ -534,30 +525,38 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_close (JNIEnv* env, jobject obj)
|
|||||||
_CrtDumpMemoryLeaks ();
|
_CrtDumpMemoryLeaks ();
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_parse (JNIEnv* env, jobject obj)
|
#define EXCEPTION_ON_NULL_AWK(awk) \
|
||||||
{
|
if (awk == NULL) \
|
||||||
jclass class;
|
{ \
|
||||||
jfieldID handle;
|
throw_exception ( \
|
||||||
|
env, \
|
||||||
|
ase_awk_geterrstr(ASE_NULL, ASE_AWK_ENOPER), \
|
||||||
|
ASE_AWK_ENOPER, \
|
||||||
|
0); \
|
||||||
|
return; \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define EXCEPTION_ON_NULL_AWK_RETURNING(awk,ret) \
|
||||||
|
if (awk == NULL) \
|
||||||
|
{ \
|
||||||
|
throw_exception ( \
|
||||||
|
env, \
|
||||||
|
ase_awk_geterrstr(ASE_NULL, ASE_AWK_ENOPER), \
|
||||||
|
ASE_AWK_ENOPER, \
|
||||||
|
0); \
|
||||||
|
return ret; \
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_parse (JNIEnv* env, jobject obj, jlong awkid)
|
||||||
|
{
|
||||||
ase_awk_t* awk;
|
ase_awk_t* awk;
|
||||||
ase_awk_srcios_t srcios;
|
ase_awk_srcios_t srcios;
|
||||||
srcio_data_t srcio_data;
|
srcio_data_t srcio_data;
|
||||||
|
|
||||||
class = (*env)->GetObjectClass (env, obj);
|
awk = (ase_awk_t*) awkid;
|
||||||
handle = (*env)->GetFieldID (env, class, FIELD_AWKID, "J");
|
EXCEPTION_ON_NULL_AWK (awk);
|
||||||
(*env)->DeleteLocalRef (env, class);
|
|
||||||
if (handle == NULL)
|
|
||||||
{
|
|
||||||
/* internal error. no handle field
|
|
||||||
* NoSuchFieldError, ExceptionInitializerError,
|
|
||||||
* OutOfMemoryError might have occurred */
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
awk = (ase_awk_t*) (*env)->GetLongField (env, obj, handle);
|
|
||||||
|
|
||||||
srcio_data.env = env;
|
srcio_data.env = env;
|
||||||
srcio_data.obj = obj;
|
srcio_data.obj = obj;
|
||||||
@ -587,6 +586,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_parse (JNIEnv* env, jobject obj)
|
|||||||
(*env)->DeleteLocalRef (env, run_data.string_class); \
|
(*env)->DeleteLocalRef (env, run_data.string_class); \
|
||||||
(*env)->DeleteLocalRef (env, run_data.object_class); \
|
(*env)->DeleteLocalRef (env, run_data.object_class); \
|
||||||
(*env)->DeleteLocalRef (env, run_data.context_class); \
|
(*env)->DeleteLocalRef (env, run_data.context_class); \
|
||||||
|
(*env)->DeleteLocalRef (env, run_data.argument_class); \
|
||||||
if (run_data.context_object != NULL) \
|
if (run_data.context_object != NULL) \
|
||||||
(*env)->DeleteLocalRef (env, run_data.context_object); \
|
(*env)->DeleteLocalRef (env, run_data.context_object); \
|
||||||
} while (0)
|
} while (0)
|
||||||
@ -651,35 +651,21 @@ static void on_run_end (ase_awk_run_t* run, int errnum, void* custom)
|
|||||||
(*env)->SetLongField (env, run_data->context_object, runid, (jlong)0);
|
(*env)->SetLongField (env, run_data->context_object, runid, (jlong)0);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_run (JNIEnv* env, jobject obj, jstring mfn, jobjectArray args)
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_run (JNIEnv* env, jobject obj, jlong awkid, jstring mfn, jobjectArray args)
|
||||||
{
|
{
|
||||||
jclass class;
|
|
||||||
jfieldID handle;
|
|
||||||
|
|
||||||
ase_awk_t* awk;
|
ase_awk_t* awk;
|
||||||
ase_awk_runcbs_t runcbs;
|
ase_awk_runcbs_t runcbs;
|
||||||
ase_awk_runios_t runios;
|
ase_awk_runios_t runios;
|
||||||
runio_data_t runio_data;
|
runio_data_t runio_data;
|
||||||
run_data_t run_data;
|
run_data_t run_data;
|
||||||
ase_char_t* mmm;
|
ase_char_t* mmm;
|
||||||
|
ase_awk_runarg_t* runarg = NULL;
|
||||||
|
|
||||||
ase_size_t len, i;
|
ase_size_t len, i;
|
||||||
const jchar* ptr;
|
const jchar* ptr;
|
||||||
|
|
||||||
ase_awk_runarg_t* runarg = NULL;
|
awk = (ase_awk_t*) awkid;
|
||||||
|
EXCEPTION_ON_NULL_AWK (awk);
|
||||||
class = (*env)->GetObjectClass (env, obj);
|
|
||||||
handle = (*env)->GetFieldID (env, class, FIELD_AWKID, "J");
|
|
||||||
(*env)->DeleteLocalRef (env, class);
|
|
||||||
if (handle == 0)
|
|
||||||
{
|
|
||||||
/* internal error. no handle field
|
|
||||||
* NoSuchFieldError, ExceptionInitializerError,
|
|
||||||
* OutOfMemoryError might have occurred */
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
awk = (ase_awk_t*) (*env)->GetLongField (env, obj, handle);
|
|
||||||
|
|
||||||
run_data.env = env;
|
run_data.env = env;
|
||||||
run_data.obj = obj;
|
run_data.obj = obj;
|
||||||
@ -693,6 +679,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_run (JNIEnv* env, jobject obj, jstring m
|
|||||||
run_data.double_class = (*env)->FindClass (env, "java/lang/Double");
|
run_data.double_class = (*env)->FindClass (env, "java/lang/Double");
|
||||||
run_data.object_class = (*env)->FindClass (env, "java/lang/Object");
|
run_data.object_class = (*env)->FindClass (env, "java/lang/Object");
|
||||||
run_data.context_class = (*env)->FindClass (env, CLASS_CONTEXT);
|
run_data.context_class = (*env)->FindClass (env, CLASS_CONTEXT);
|
||||||
|
run_data.argument_class = (*env)->FindClass (env, CLASS_ARGUMENT);
|
||||||
|
|
||||||
ASE_ASSERT (run_data.string_class != NULL);
|
ASE_ASSERT (run_data.string_class != NULL);
|
||||||
ASE_ASSERT (run_data.integer_class != NULL);
|
ASE_ASSERT (run_data.integer_class != NULL);
|
||||||
@ -702,6 +689,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_run (JNIEnv* env, jobject obj, jstring m
|
|||||||
ASE_ASSERT (run_data.double_class != NULL);
|
ASE_ASSERT (run_data.double_class != NULL);
|
||||||
ASE_ASSERT (run_data.object_class != NULL);
|
ASE_ASSERT (run_data.object_class != NULL);
|
||||||
ASE_ASSERT (run_data.context_class != NULL);
|
ASE_ASSERT (run_data.context_class != NULL);
|
||||||
|
ASE_ASSERT (run_data.argument_class != NULL);
|
||||||
|
|
||||||
run_data.integer_init = (*env)->GetMethodID (
|
run_data.integer_init = (*env)->GetMethodID (
|
||||||
env, run_data.integer_class, "<init>", "(I)V");
|
env, run_data.integer_class, "<init>", "(I)V");
|
||||||
@ -715,6 +703,8 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_run (JNIEnv* env, jobject obj, jstring m
|
|||||||
env, run_data.double_class, "<init>", "(D)V");
|
env, run_data.double_class, "<init>", "(D)V");
|
||||||
run_data.context_init = (*env)->GetMethodID (
|
run_data.context_init = (*env)->GetMethodID (
|
||||||
env, run_data.context_class, "<init>", "(Lase/awk/Awk;)V");
|
env, run_data.context_class, "<init>", "(Lase/awk/Awk;)V");
|
||||||
|
run_data.argument_init = (*env)->GetMethodID (
|
||||||
|
env, run_data.argument_class, "<init>", "(JJ)V");
|
||||||
|
|
||||||
ASE_ASSERT (run_data.integer_init != NULL);
|
ASE_ASSERT (run_data.integer_init != NULL);
|
||||||
ASE_ASSERT (run_data.long_init != NULL);
|
ASE_ASSERT (run_data.long_init != NULL);
|
||||||
@ -722,6 +712,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_run (JNIEnv* env, jobject obj, jstring m
|
|||||||
ASE_ASSERT (run_data.float_init != NULL);
|
ASE_ASSERT (run_data.float_init != NULL);
|
||||||
ASE_ASSERT (run_data.double_init != NULL);
|
ASE_ASSERT (run_data.double_init != NULL);
|
||||||
ASE_ASSERT (run_data.context_init != NULL);
|
ASE_ASSERT (run_data.context_init != NULL);
|
||||||
|
ASE_ASSERT (run_data.argument_init != NULL);
|
||||||
|
|
||||||
run_data.integer_value = (*env)->GetMethodID (
|
run_data.integer_value = (*env)->GetMethodID (
|
||||||
env, run_data.integer_class, "intValue", "()I");
|
env, run_data.integer_class, "intValue", "()I");
|
||||||
@ -955,25 +946,11 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_run (JNIEnv* env, jobject obj, jstring m
|
|||||||
DELETE_CLASS_REFS (env, run_data);
|
DELETE_CLASS_REFS (env, run_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_stop (JNIEnv* env, jobject obj)
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_stop (JNIEnv* env, jobject obj, jlong awkid)
|
||||||
{
|
{
|
||||||
jclass class;
|
ase_awk_t* awk = (ase_awk_t*)awkid;
|
||||||
jfieldID handle;
|
EXCEPTION_ON_NULL_AWK (awk);
|
||||||
ase_awk_t* awk;
|
ase_awk_stopall (awk);
|
||||||
|
|
||||||
class = (*env)->GetObjectClass(env, obj);
|
|
||||||
handle = (*env)->GetFieldID (env, class, FIELD_AWKID, "J");
|
|
||||||
(*env)->DeleteLocalRef (env, class);
|
|
||||||
if (handle == NULL)
|
|
||||||
{
|
|
||||||
/* internal error. no handle field
|
|
||||||
* NoSuchFieldError, ExceptionInitializerError,
|
|
||||||
* OutOfMemoryError might have occurred */
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
awk = (ase_awk_t*) (*env)->GetLongField (env, obj, handle);
|
|
||||||
if (awk != NULL) ase_awk_stopall (awk);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static ase_ssize_t java_open_source (JNIEnv* env, jobject obj, int mode)
|
static ase_ssize_t java_open_source (JNIEnv* env, jobject obj, int mode)
|
||||||
@ -1718,6 +1695,11 @@ static int handle_bfn (
|
|||||||
{
|
{
|
||||||
v = ase_awk_getarg (run, i);
|
v = ase_awk_getarg (run, i);
|
||||||
|
|
||||||
|
arg = (*env)->NewObject (env,
|
||||||
|
run_data->argument_class,
|
||||||
|
run_data->argument_init, (jlong)run, (jlong)v);
|
||||||
|
|
||||||
|
#if 0
|
||||||
arg = NULL;
|
arg = NULL;
|
||||||
|
|
||||||
if (v->type == ASE_AWK_VAL_INT)
|
if (v->type == ASE_AWK_VAL_INT)
|
||||||
@ -1768,8 +1750,9 @@ static int handle_bfn (
|
|||||||
env, (jchar*)((ase_awk_val_str_t*)v)->buf, len);
|
env, (jchar*)((ase_awk_val_str_t*)v)->buf, len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (v->type != ASE_AWK_VAL_NIL && arg == NULL)
|
if (/*v->type != ASE_AWK_VAL_NIL && */arg == NULL)
|
||||||
{
|
{
|
||||||
if ((*env)->ExceptionOccurred (env))
|
if ((*env)->ExceptionOccurred (env))
|
||||||
{
|
{
|
||||||
@ -2099,155 +2082,60 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_delfunc (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jint JNICALL Java_ase_awk_Awk_getmaxdepth (
|
JNIEXPORT jint JNICALL Java_ase_awk_Awk_getmaxdepth (JNIEnv* env, jobject obj, jlong awkid, jint id)
|
||||||
JNIEnv* env, jobject obj, jint id)
|
|
||||||
{
|
{
|
||||||
jclass class;
|
ase_awk_t* awk = (ase_awk_t*)awkid;
|
||||||
jfieldID handle;
|
EXCEPTION_ON_NULL_AWK_RETURNING (awk, 0);
|
||||||
ase_awk_t* awk;
|
|
||||||
|
|
||||||
class = (*env)->GetObjectClass(env, obj);
|
|
||||||
handle = (*env)->GetFieldID (env, class, FIELD_AWKID, "J");
|
|
||||||
(*env)->DeleteLocalRef (env, class);
|
|
||||||
if (handle == NULL) return 0; /* should never happen */
|
|
||||||
|
|
||||||
awk = (ase_awk_t*) (*env)->GetLongField (env, obj, handle);
|
|
||||||
return (jint)ase_awk_getmaxdepth (awk, id);
|
return (jint)ase_awk_getmaxdepth (awk, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_setmaxdepth (
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_setmaxdepth (JNIEnv* env, jobject obj, jlong awkid, jint ids, jint depth)
|
||||||
JNIEnv* env, jobject obj, jint ids, jint depth)
|
|
||||||
{
|
{
|
||||||
jclass class;
|
ase_awk_t* awk = (ase_awk_t*)awkid;
|
||||||
jfieldID handle;
|
EXCEPTION_ON_NULL_AWK (awk);
|
||||||
ase_awk_t* awk;
|
|
||||||
|
|
||||||
class = (*env)->GetObjectClass(env, obj);
|
|
||||||
handle = (*env)->GetFieldID (env, class, FIELD_AWKID, "J");
|
|
||||||
(*env)->DeleteLocalRef (env, class);
|
|
||||||
if (handle == NULL)
|
|
||||||
{
|
|
||||||
/* internal error. no handle field
|
|
||||||
* NoSuchFieldError, ExceptionInitializerError,
|
|
||||||
* OutOfMemoryError might have occurred */
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
awk = (ase_awk_t*) (*env)->GetLongField (env, obj, handle);
|
|
||||||
ase_awk_setmaxdepth (awk, ids, depth);
|
ase_awk_setmaxdepth (awk, ids, depth);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jint JNICALL Java_ase_awk_Awk_getoption (
|
JNIEXPORT jint JNICALL Java_ase_awk_Awk_getoption (JNIEnv* env, jobject obj, jlong awkid)
|
||||||
JNIEnv* env, jobject obj)
|
|
||||||
{
|
{
|
||||||
jclass class;
|
ase_awk_t* awk = (ase_awk_t*)awkid;
|
||||||
jfieldID handle;
|
EXCEPTION_ON_NULL_AWK_RETURNING (awk, 0);
|
||||||
ase_awk_t* awk;
|
|
||||||
|
|
||||||
class = (*env)->GetObjectClass(env, obj);
|
|
||||||
handle = (*env)->GetFieldID (env, class, FIELD_AWKID, "J");
|
|
||||||
(*env)->DeleteLocalRef (env, class);
|
|
||||||
if (handle == NULL)
|
|
||||||
{
|
|
||||||
/* internal error. no handle field
|
|
||||||
* NoSuchFieldError, ExceptionInitializerError,
|
|
||||||
* OutOfMemoryError might have occurred */
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
awk = (ase_awk_t*) (*env)->GetLongField (env, obj, handle);
|
|
||||||
return ase_awk_getoption (awk);
|
return ase_awk_getoption (awk);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_setoption (
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_setoption (JNIEnv* env, jobject obj, jlong awkid, jint options)
|
||||||
JNIEnv* env, jobject obj, jint options)
|
|
||||||
{
|
{
|
||||||
jclass class;
|
ase_awk_t* awk = (ase_awk_t*)awkid;
|
||||||
jfieldID handle;
|
EXCEPTION_ON_NULL_AWK (awk);
|
||||||
ase_awk_t* awk;
|
|
||||||
|
|
||||||
class = (*env)->GetObjectClass(env, obj);
|
|
||||||
handle = (*env)->GetFieldID (env, class, FIELD_AWKID, "J");
|
|
||||||
(*env)->DeleteLocalRef (env, class);
|
|
||||||
if (handle == NULL)
|
|
||||||
{
|
|
||||||
/* internal error. no handle field
|
|
||||||
* NoSuchFieldError, ExceptionInitializerError,
|
|
||||||
* OutOfMemoryError might have occurred */
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
awk = (ase_awk_t*) (*env)->GetLongField (env, obj, handle);
|
|
||||||
ase_awk_setoption (awk, (int)options);
|
ase_awk_setoption (awk, (int)options);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jboolean JNICALL Java_ase_awk_Awk_getdebug (
|
JNIEXPORT jboolean JNICALL Java_ase_awk_Awk_getdebug (JNIEnv* env, jobject obj, jlong awkid)
|
||||||
JNIEnv* env, jobject obj)
|
|
||||||
{
|
{
|
||||||
jclass class;
|
ase_awk_t* awk = (ase_awk_t*)awkid;
|
||||||
jfieldID handle;
|
EXCEPTION_ON_NULL_AWK_RETURNING (awk, JNI_FALSE);
|
||||||
ase_awk_t* awk;
|
|
||||||
|
|
||||||
class = (*env)->GetObjectClass(env, obj);
|
|
||||||
handle = (*env)->GetFieldID (env, class, FIELD_AWKID, "J");
|
|
||||||
(*env)->DeleteLocalRef (env, class);
|
|
||||||
if (handle == NULL)
|
|
||||||
{
|
|
||||||
/* internal error. no handle field
|
|
||||||
* NoSuchFieldError, ExceptionInitializerError,
|
|
||||||
* OutOfMemoryError might have occurred */
|
|
||||||
return JNI_FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
awk = (ase_awk_t*) (*env)->GetLongField (env, obj, handle);
|
|
||||||
return ((awk_data_t*)ase_awk_getcustomdata(awk))->debug? JNI_TRUE: JNI_FALSE;
|
return ((awk_data_t*)ase_awk_getcustomdata(awk))->debug? JNI_TRUE: JNI_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_setdebug (
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_setdebug (
|
||||||
JNIEnv* env, jobject obj, jboolean debug)
|
JNIEnv* env, jobject obj, jlong awkid, jboolean debug)
|
||||||
{
|
{
|
||||||
jclass class;
|
ase_awk_t* awk = (ase_awk_t*)awkid;
|
||||||
jfieldID handle;
|
EXCEPTION_ON_NULL_AWK (awk);
|
||||||
ase_awk_t* awk;
|
|
||||||
|
|
||||||
class = (*env)->GetObjectClass(env, obj);
|
|
||||||
handle = (*env)->GetFieldID (env, class, FIELD_AWKID, "J");
|
|
||||||
(*env)->DeleteLocalRef (env, class);
|
|
||||||
if (handle == NULL)
|
|
||||||
{
|
|
||||||
/* internal error. no handle field
|
|
||||||
* NoSuchFieldError, ExceptionInitializerError,
|
|
||||||
* OutOfMemoryError might have occurred */
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
awk = (ase_awk_t*) (*env)->GetLongField (env, obj, handle);
|
|
||||||
((awk_data_t*)ase_awk_getcustomdata(awk))->debug = debug;
|
((awk_data_t*)ase_awk_getcustomdata(awk))->debug = debug;
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_setword (
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_setword (
|
||||||
JNIEnv* env, jobject obj, jstring ow, jstring nw)
|
JNIEnv* env, jobject obj, jlong awkid, jstring ow, jstring nw)
|
||||||
{
|
{
|
||||||
jclass class;
|
|
||||||
jfieldID handle;
|
|
||||||
ase_awk_t* awk;
|
ase_awk_t* awk;
|
||||||
const jchar* op = NULL, * np = NULL;
|
const jchar* op = NULL, * np = NULL;
|
||||||
jsize ol = 0, nl = 0;
|
jsize ol = 0, nl = 0;
|
||||||
ase_char_t* ox, * nx;
|
ase_char_t* ox, * nx;
|
||||||
jint r;
|
jint r;
|
||||||
|
|
||||||
class = (*env)->GetObjectClass(env, obj);
|
awk = (ase_awk_t*) awkid;
|
||||||
handle = (*env)->GetFieldID (env, class, FIELD_AWKID, "J");
|
EXCEPTION_ON_NULL_AWK (awk);
|
||||||
(*env)->DeleteLocalRef (env, class);
|
|
||||||
if (handle == NULL)
|
|
||||||
{
|
|
||||||
/* internal error. no handle field
|
|
||||||
* NoSuchFieldError, ExceptionInitializerError,
|
|
||||||
* OutOfMemoryError might have occurred */
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
awk = (ase_awk_t*) (*env)->GetLongField (env, obj, handle);
|
|
||||||
|
|
||||||
if (ow != NULL)
|
if (ow != NULL)
|
||||||
{
|
{
|
||||||
@ -2941,20 +2829,51 @@ JNIEXPORT jdouble JNICALL Java_ase_awk_Argument_getrealval (JNIEnv* env, jobject
|
|||||||
|
|
||||||
JNIEXPORT jstring JNICALL Java_ase_awk_Argument_getstrval (JNIEnv* env, jobject obj, long runid, long valid)
|
JNIEXPORT jstring JNICALL Java_ase_awk_Argument_getstrval (JNIEnv* env, jobject obj, long runid, long valid)
|
||||||
{
|
{
|
||||||
int n;
|
ase_awk_run_t* run = (ase_awk_run_t*)runid;
|
||||||
|
ase_awk_val_t* val = (ase_awk_val_t*)valid;
|
||||||
|
ase_awk_t* awk = ase_awk_getrunawk (run);
|
||||||
|
|
||||||
ase_char_t* str;
|
ase_char_t* str;
|
||||||
ase_size_t len;
|
ase_size_t len;
|
||||||
jstring ret;
|
jstring ret = NULL;
|
||||||
|
|
||||||
str = ase_awk_valtostr (
|
str = ase_awk_valtostr (
|
||||||
(ase_awk_run_t*)runid, (ase_awk_val_t*)valid,
|
run, val, ASE_AWK_VALTOSTR_CLEAR, ASE_NULL, &len);
|
||||||
ASE_AWK_VALTOSTR_CLEAR, ASE_NULL,&len);
|
if (str == ASE_NULL) goto no_mem;
|
||||||
if (str == ASE_NULL) return ASE_NULL;
|
|
||||||
|
|
||||||
// TODO: convert string properly....
|
if (len > 0 && ASE_SIZEOF(jchar) != ASE_SIZEOF(ase_char_t))
|
||||||
|
{
|
||||||
|
jchar* tmp;
|
||||||
|
ase_size_t i;
|
||||||
|
|
||||||
|
tmp = (jchar*) ase_awk_malloc (awk, ASE_SIZEOF(jchar)*len);
|
||||||
|
if (tmp == NULL)
|
||||||
|
{
|
||||||
|
ase_awk_free (awk, str);
|
||||||
|
goto no_mem;
|
||||||
|
}
|
||||||
|
for (i = 0; i < len; i++) tmp[i] = (jchar)str[i];
|
||||||
|
ret = (*env)->NewString (env, tmp, len);
|
||||||
|
ase_awk_free (awk, tmp);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
ret = (*env)->NewString (env, (jchar*)str, len);
|
ret = (*env)->NewString (env, (jchar*)str, len);
|
||||||
ase_awk_free (ase_awk_getrunawk((ase_awk_run_t*)runid), str);
|
}
|
||||||
|
|
||||||
|
ase_awk_free (awk, str);
|
||||||
|
|
||||||
|
if (ret == NULL)
|
||||||
|
{
|
||||||
|
if (is_debug(awk)) (*env)->ExceptionDescribe (env);
|
||||||
|
(*env)->ExceptionClear (env);
|
||||||
|
no_mem:
|
||||||
|
throw_exception (
|
||||||
|
env,
|
||||||
|
ase_awk_geterrstr(ASE_NULL, ASE_AWK_ENOMEM),
|
||||||
|
ASE_AWK_ENOMEM,
|
||||||
|
0);
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: clear exception if any...
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: jni.h,v 1.7 2007/10/17 14:38:28 bacon Exp $
|
* $Id: jni.h,v 1.8 2007/10/18 11:14:48 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -18,11 +18,11 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_open (JNIEnv* env, jobject obj);
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_open (JNIEnv* env, jobject obj);
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_close (JNIEnv* env, jobject obj);
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_close (JNIEnv* env, jobject obj, jlong awkid);
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_parse (JNIEnv* env, jobject obj);
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_parse (JNIEnv* env, jobject obj, jlong awkid);
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_run (
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_run (
|
||||||
JNIEnv* env, jobject obj, jstring mfn, jobjectArray args);
|
JNIEnv* env, jobject obj, jlong awkid, jstring mfn, jobjectArray args);
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_stop (JNIEnv* env, jobject obj);
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_stop (JNIEnv* env, jobject obj, jlong awkid);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_addfunc (
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_addfunc (
|
||||||
JNIEnv* env, jobject obj, jstring name, jint min_args, jint max_args);
|
JNIEnv* env, jobject obj, jstring name, jint min_args, jint max_args);
|
||||||
@ -30,22 +30,22 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_delfunc (
|
|||||||
JNIEnv* env, jobject obj, jstring name);
|
JNIEnv* env, jobject obj, jstring name);
|
||||||
|
|
||||||
JNIEXPORT jint JNICALL Java_ase_awk_Awk_getmaxdepth (
|
JNIEXPORT jint JNICALL Java_ase_awk_Awk_getmaxdepth (
|
||||||
JNIEnv* env, jobject obj, jint id);
|
JNIEnv* env, jobject obj, jlong awkid, jint id);
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_setmaxdepth (
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_setmaxdepth (
|
||||||
JNIEnv* env, jobject obj, jint ids, jint depth);
|
JNIEnv* env, jobject obj, jlong awkid, jint ids, jint depth);
|
||||||
|
|
||||||
JNIEXPORT jint JNICALL Java_ase_awk_Awk_getoption (
|
JNIEXPORT jint JNICALL Java_ase_awk_Awk_getoption (
|
||||||
JNIEnv* env, jobject obj);
|
JNIEnv* env, jobject obj, jlong awkid);
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_setoption (
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_setoption (
|
||||||
JNIEnv* env, jobject obj, jint options);
|
JNIEnv* env, jobject obj, jlong awkid, jint options);
|
||||||
|
|
||||||
JNIEXPORT jboolean JNICALL Java_ase_awk_Awk_getdebug (
|
JNIEXPORT jboolean JNICALL Java_ase_awk_Awk_getdebug (
|
||||||
JNIEnv* env, jobject obj);
|
JNIEnv* env, jobject obj, jlong awkid);
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_setdebug (
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_setdebug (
|
||||||
JNIEnv* env, jobject obj, jboolean debug);
|
JNIEnv* env, jobject obj, jlong awkid, jboolean debug);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_setword (
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_setword (
|
||||||
JNIEnv* env, jobject obj, jstring ow, jstring nw);
|
JNIEnv* env, jobject obj, jlong awkid, jstring ow, jstring nw);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_ase_awk_Awk_setfilename (
|
JNIEXPORT void JNICALL Java_ase_awk_Awk_setfilename (
|
||||||
JNIEnv* env, jobject obj, jlong runid, jstring name);
|
JNIEnv* env, jobject obj, jlong runid, jstring name);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: AseAwk.java,v 1.12 2007/10/15 16:10:10 bacon Exp $
|
* $Id: AseAwk.java,v 1.13 2007/10/18 14:51:04 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@ -223,7 +223,8 @@ public class AseAwk extends StdAwk
|
|||||||
|
|
||||||
String ow = arg.substring (0, idx);
|
String ow = arg.substring (0, idx);
|
||||||
String nw = arg.substring (idx+1);
|
String nw = arg.substring (idx+1);
|
||||||
awk.setWord (ow, nw);
|
try { awk.setWord (ow, nw); }
|
||||||
|
catch (Exception e) {/* don't care */}
|
||||||
mode = 0;
|
mode = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: AseAwkPanel.java,v 1.4 2007/10/15 16:10:10 bacon Exp $
|
* $Id: AseAwkPanel.java,v 1.5 2007/10/18 14:51:04 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@ -399,10 +399,16 @@ public class AseAwkPanel extends Panel
|
|||||||
|
|
||||||
awk.parse ();
|
awk.parse ();
|
||||||
awk.run ();
|
awk.run ();
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (ase.awk.Exception e)
|
catch (ase.awk.Exception e)
|
||||||
{
|
{
|
||||||
|
int line = e.getLine();
|
||||||
|
if (line <= 0)
|
||||||
showMessage ("An exception occurred - " + e.getMessage());
|
showMessage ("An exception occurred - " + e.getMessage());
|
||||||
|
else
|
||||||
|
showMessage ("An exception occurred - " + e.getMessage() + " at line " + line);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
|
Loading…
Reference in New Issue
Block a user