diff --git a/ase/awk/awk.h b/ase/awk/awk.h index 584a95a0..e86c8f06 100644 --- a/ase/awk/awk.h +++ b/ase/awk/awk.h @@ -1,5 +1,5 @@ /* - * $Id: awk.h,v 1.182 2007-01-07 07:30:39 bacon Exp $ + * $Id: awk.h,v 1.183 2007-01-10 14:33:35 bacon Exp $ */ #ifndef _ASE_AWK_AWK_H_ @@ -228,14 +228,13 @@ enum ASE_AWK_EAGAIN, /* resource temporarily unavailable */ ASE_AWK_EEXIST, /* file or data exists */ ASE_AWK_EFTBIG, /* file or data too big */ - ASE_AWK_EINTER, /* operation interrupted */ ASE_AWK_ETBUSY, /* system too busy */ ASE_AWK_EISDIR, /* is a directory */ ASE_AWK_EIOERR, /* i/o error */ + ASE_AWK_EINTERN, /* internal error */ ASE_AWK_ERUNTIME, /* run-time error */ ASE_AWK_ERUNNING, /* there are running instances */ - ASE_AWK_ETOOMANYRUNS, /* too many running instances */ ASE_AWK_ERECUR, /* recursion too deep */ ASE_AWK_ESYSFNS, /* system functions not proper */ @@ -302,7 +301,6 @@ enum ASE_AWK_EPRINTFARG, /* printf must have one or more arguments */ /* run time error */ - ASE_AWK_EINTERN, /* internal error */ ASE_AWK_EDIVBY0, /* divide by zero */ ASE_AWK_EOPERAND, /* invalid operand */ ASE_AWK_EPOSIDX, /* wrong position index */ diff --git a/ase/awk/err.c b/ase/awk/err.c index 87671caf..4bf85fd3 100644 --- a/ase/awk/err.c +++ b/ase/awk/err.c @@ -1,5 +1,5 @@ /* - * $Id: err.c,v 1.69 2007-01-03 09:51:51 bacon Exp $ + * $Id: err.c,v 1.70 2007-01-10 14:33:36 bacon Exp $ */ #include @@ -69,14 +69,13 @@ const ase_char_t* ase_awk_geterrstr (int errnum) ASE_T("resource temporarily unavailable"), ASE_T("file or data exists"), ASE_T("file or data too big"), - ASE_T("operation interrupted"), ASE_T("system too busy"), ASE_T("is a directory"), ASE_T("i/o error"), + ASE_T("internal error that should never have happened"), ASE_T("general run-time error"), ASE_T("one or more running instances"), - ASE_T("too many running instances"), ASE_T("recursion too deep"), ASE_T("system functions not provided or not proper"), @@ -142,7 +141,6 @@ const ase_char_t* ase_awk_geterrstr (int errnum) ASE_T("getline expected"), ASE_T("printf requires one or more arguments"), - ASE_T("internal error that should never have happened"), ASE_T("divide by zero"), ASE_T("invalid operand"), ASE_T("wrong position index"), diff --git a/ase/awk/run.c b/ase/awk/run.c index 4b5665f3..85c67490 100644 --- a/ase/awk/run.c +++ b/ase/awk/run.c @@ -1,5 +1,5 @@ /* - * $Id: run.c,v 1.319 2007-01-03 09:51:52 bacon Exp $ + * $Id: run.c,v 1.320 2007-01-10 14:33:00 bacon Exp $ */ #include @@ -1310,6 +1310,7 @@ static int __run_main ( ase_awk_nde_call_t nde; nde.type = ASE_AWK_NDE_AFN; + nde.line = 0; nde.next = ASE_NULL; nde.what.afn.name.ptr = (ase_char_t*)main; nde.what.afn.name.len = ase_awk_strlen(main); @@ -5237,8 +5238,14 @@ static ase_awk_val_t* __eval_afn (ase_awk_run_t* run, ase_awk_nde_t* nde) call->what.afn.name.ptr, call->what.afn.name.len); if (pair == ASE_NULL) { + run->awk->sysfns.sprintf ( + run->errmsg, ASE_COUNTOF(run->errmsg), + ASE_T("function '%.*s' not found"), + call->what.afn.name.len, + call->what.afn.name.ptr); + ase_awk_setrunerror ( - run, ASE_AWK_EFNNONE, nde->line, ASE_NULL); + run, ASE_AWK_EFNNONE, nde->line, run->errmsg); return ASE_NULL; } diff --git a/ase/com/ase.idl b/ase/com/ase.idl index 11f5c361..aab91bba 100644 --- a/ase/com/ase.idl +++ b/ase/com/ase.idl @@ -1,5 +1,5 @@ /* - * $Id: ase.idl,v 1.9 2007-01-10 14:30:44 bacon Exp $ + * $Id: ase.idl,v 1.10 2007-01-10 14:32:20 bacon Exp $ */ import "oaidl.idl"; @@ -125,8 +125,11 @@ interface IAwk : IDispatch HRESULT MaxDepthForRexMatch([out, retval] int *pVal); [propput, id(24), helpstring("property MaxDepthForRexMatch")] HRESULT MaxDepthForRexMatch([in] int newVal); - [propget, id(25), helpstring("property EntryPoint")] HRESULT EntryPoint([out, retval] BSTR *pVal); - [propput, id(25), helpstring("property EntryPoint")] HRESULT EntryPoint([in] BSTR newVal); + + [propget, id(25), helpstring("property EntryPoint")] + HRESULT EntryPoint([out, retval] BSTR *pVal); + [propput, id(25), helpstring("property EntryPoint")] + HRESULT EntryPoint([in] BSTR newVal); }; /* ASELib */ diff --git a/ase/test/com/AwkForm.frm b/ase/test/com/AwkForm.frm index 12fbf81d..2746bceb 100644 --- a/ase/test/com/AwkForm.frm +++ b/ase/test/com/AwkForm.frm @@ -9,13 +9,12 @@ Begin VB.Form AwkForm ScaleHeight = 7635 ScaleWidth = 10335 StartUpPosition = 3 'Windows Default - Begin VB.ComboBox EntryFunction + Begin VB.ComboBox EntryPoint Height = 315 ItemData = "AwkForm.frx":0000 - Left = 1320 - List = "AwkForm.frx":000A + Left = 1080 + List = "AwkForm.frx":0007 TabIndex = 9 - Text = "None" Top = 120 Width = 3495 End @@ -101,7 +100,7 @@ Begin VB.Form AwkForm Width = 4935 End Begin VB.Label Label5 - Caption = "Entry Function:" + Caption = "Entry Point:" Height = 255 Left = 120 TabIndex = 10 @@ -168,14 +167,15 @@ Private Sub Execute_Click() Awk.MaxDepthForBlockParse = 20 Awk.MaxDepthForBlockRun = 30 - Awk.MaxDepthForExpressionParse = 20 - Awk.MaxDepthForExpressionRun = 30 + Awk.MaxDepthForExprParse = 20 + Awk.MaxDepthForExprRun = 30 'Awk.MaxDepthForRexBuild = 10 'Awk.MaxDepthForRexMatch = 10 If Awk.Parse() = -1 Then MsgBox "PARSE ERROR [" + Str(Awk.ErrorLine) + "]" + Awk.ErrorMessage Else + Awk.EntryPoint = Trim(EntryPoint.Text) If Awk.Run() = -1 Then MsgBox "RUN ERROR [" + Str(Awk.ErrorLine) + "]" + Awk.ErrorMessage End If