langevaluate.c File Reference

#include "frontier.h"
#include "standard.h"
#include "memory.h"
#include "fileloop.h"
#include "strings.h"
#include "lang.h"
#include "langinternal.h"
#include "langexternal.h"
#include "langsystem7.h"
#include "oplist.h"
#include "ops.h"

Include dependency graph for langevaluate.c:

Go to the source code of this file.

Data Structures

struct  typaraminfo

Defines

#define fltryerrorstackcode   false
#define newparams
#define nope   ((byte) -1)

Functions

void langseterrorline (hdltreenode hnode)
static boolean evaluateloop (hdltreenode hloop, tyvaluerecord *valtree)
static boolean evaluateforloop (hdltreenode hloop, tyvaluerecord val1, tyvaluerecord val2, long inc, tyvaluerecord *valtree)
static boolean evaluateforinloop (hdltreenode hloop, tyvaluerecord vlist, tyvaluerecord *valtree)
static boolean fileloopguts (hdltreenode htree, ptrfilespec fsfolder, bigstring bsidentifier, long ctlevels, tyvaluerecord *valtree)
static boolean evaluatefileloop (hdltreenode hloop, tyvaluerecord *valtree)
static boolean evaluatecase (hdltreenode hcase, tyvaluerecord *valtree)
static long langgetlexicalrefcon (void)
static boolean evaluatewith (hdltreenode hwith, tyvaluerecord *valtree)
static boolean langtryerror (bigstring bsmsg, ptrvoid refcon)
static boolean evaluatetry (hdltreenode htry, tyvaluerecord *valtree)
static boolean langaddlocals (hdltreenode hnode)
static boolean langaddhandler (hdltreenode hnode)
static boolean needassignmentresult (hdltreenode hp)
static boolean evaltree (hdltreenode htree, tyvaluerecord *valtree)
boolean evaluatetree (hdltreenode htree, tyvaluerecord *valtree)
boolean evaluatelist (hdltreenode hfirst, tyvaluerecord *val)

Variables

byte bscontainername [] = "_container"
static byte nametryerrorval [] = "tryerror"
Handle tryerror = nil
Handle tryerrorstack = nil
static typaraminfo paraminfolist [cttreetypes]


Define Documentation

#define fltryerrorstackcode   false
 

Definition at line 44 of file langevaluate.c.

#define newparams
 

Definition at line 1368 of file langevaluate.c.

#define nope   ((byte) -1)
 

Definition at line 1377 of file langevaluate.c.


Function Documentation

static boolean evaltree hdltreenode  htree,
tyvaluerecord valtree
[static]
 

Definition at line 1507 of file langevaluate.c.

References addop, addressofop, addressofvalue(), addvalue(), addvalueop, andandop, andandvalue(), arrayop, arrayvalue(), assert, assignop, assignvalue(), badfieldoperationerror, badrangeoperationerror, beginswithop, beginswithvalue(), bracketop, breakop, bundleop, caseop, coercetoboolean(), constop, containsop, containsvalue(), continueop, copyvaluedata(), copyvaluerecord(), decrpostop, decrpreop, dereferenceop, dereferencevalue(), divideop, dividevalue(), dividevalueop, dotop, dotvalue(), endswithop, endswithvalue(), EQop, EQvalue(), evaluatecase(), evaluatefileloop(), evaluateforinloop(), evaluateforloop(), evaluatelist(), evaluateloop(), evaluateosascript(), evaluatetree(), evaluatetry(), evaluatewith(), exemptfromtmpstack(), externalreturnerror, externalvaluetype, fieldop, fileloopop, flbreak, flcontinue, fllangerror, fllangexternalvalueprotect, flreturn, tyvaluerecord::fltmpdata, fordownloopop, forinloopop, forloopop, functionop, functionvalue(), GEop, GEvalue(), GTop, GTvalue(), h, htree, identifierop, idvalue(), ifop, incrementvalue(), incrpostop, incrpreop, info, initvalue(), isosascriptnode(), langaddhandler(), langaddlocals(), langbadexternaloperror(), langerror(), langlongparamerror(), langseterrorline(), LEop, LEvalue(), listop, localop, loopop, LTop, LTvalue(), makelistvalue(), makerecordvalue(), modifyassignvalue(), modop, moduleop, modvalue(), multiplyop, multiplyvalue(), multiplyvalueop, needassignmentresult(), NEop, NEvalue(), nil, noop, notop, notvalue(), novaluetype, ororop, ororvalue(), osascriptop, paraminfolist, pushtmpstackvalue(), rangeop, recordop, returnop, setbooleanvalue(), subtractop, subtractvalue(), subtractvalueop, tryop, unaryminusvalue(), unaryop, unexpectedopcodeerror, tyvaluerecord::valuetype, withop, and zerostring.

Referenced by evaluatetree().

Here is the call graph for this function:

static boolean evaluatecase hdltreenode  hcase,
tyvaluerecord valtree
[static]
 

Definition at line 683 of file langevaluate.c.

References assert, cleartmpstack(), copyvaluerecord(), tyvaluerecord::data, disposevaluerecord(), EQvalue(), evaluatelist(), evaluatetree(), exemptfromtmpstack(), tyvaluedata::flvalue, h, tytreenode::link, nil, tytreenode::param2, and setbooleanvalue().

Referenced by evaltree().

Here is the call graph for this function:

static boolean evaluatefileloop hdltreenode  hloop,
tyvaluerecord valtree
[static]
 

Definition at line 609 of file langevaluate.c.

References assert, bigstring, coercetofilespec(), coercetolong(), copystring(), evaluatetree(), fileloopguts(), flbreak, h, langgetidentifier(), langseterrorline(), and nil.

Referenced by evaltree().

Here is the call graph for this function:

static boolean evaluateforinloop hdltreenode  hloop,
tyvaluerecord  vlist,
tyvaluerecord valtree
[static]
 

Definition at line 296 of file langevaluate.c.

References addressvaluetype, assert, assignvalue(), bigstring, cleartmpstack(), coercetolist(), disposetmpvalue(), evaluatelist(), exemptfromtmpstack(), fl, flbreak, flcontinue, flreturn, getaddressvalue(), h, hashgetiteminfo(), hnode, langdebuggercall(), langexternalvaltotable(), langgetlistitem(), langgetlistsize(), langgetspecialtable(), langhashtablelookup(), langparamerror(), langsearchpathlookup(), nil, tytreenode::param2, setaddressvalue(), unknownidentifiererror, and tyvaluerecord::valuetype.

Referenced by evaltree().

Here is the call graph for this function:

static boolean evaluateforloop hdltreenode  hloop,
tyvaluerecord  val1,
tyvaluerecord  val2,
long  inc,
tyvaluerecord valtree
[static]
 

Definition at line 210 of file langevaluate.c.

References assert, assignvalue(), cleartmpstack(), coercetolong(), copyvaluerecord(), evaluatelist(), flbreak, flcontinue, flreturn, h, langdebuggercall(), tytreenode::param3, setlongvalue(), x1, and x2.

Referenced by evaltree().

Here is the call graph for this function:

boolean evaluatelist hdltreenode  hfirst,
tyvaluerecord val
 

Definition at line 1916 of file langevaluate.c.

References bigstring, h, hmagictable, langcheckstackspace(), localop, moduleop, nil, and setbooleanvalue().

Referenced by evaltree(), evaluatecase(), evaluateforinloop(), evaluateforloop(), evaluateloop(), evaluatetry(), evaluatewith(), fileloopguts(), langcallscriptwithaddress(), langfunctioncall(), langrun(), langruncode(), and langrunscriptcode().

Here is the call graph for this function:

static boolean evaluateloop hdltreenode  hloop,
tyvaluerecord valtree
[static]
 

Definition at line 154 of file langevaluate.c.

References assert, cleartmpstack(), coercetoboolean(), evaluatelist(), evaluatetree(), flbreak, flcontinue, flreturn, h, langdebuggercall(), and nil.

Referenced by evaltree().

Here is the call graph for this function:

boolean evaluatetree hdltreenode  htree,
tyvaluerecord valtree
 

Definition at line 1896 of file langevaluate.c.

References evaltree(), fllangerror, htree, and langcheckstackspace().

Referenced by andandvalue(), dereferencevalue(), evaltree(), evaluatecase(), evaluatecomparison(), evaluatefield(), evaluatefileloop(), evaluateloop(), evaluateobject(), evaluateparam(), evaluatereadonlyparam(), evaluatesimplekey(), getclassvalue(), langaddlocals(), langgetdotparams(), langgetidentifier(), langipcbuildsubroutineevent(), makelistvalue(), ororvalue(), osacreatemodulecontext(), parsearrayreference(), and stringtolist().

Here is the call graph for this function:

static boolean evaluatetry hdltreenode  htry,
tyvaluerecord valtree
[static]
 

Definition at line 1145 of file langevaluate.c.

References assert, disposehandle(), tylangcallbacks::errormessagecallback, evaluatelist(), fllangerror, h, langcallbacks, langtryerror(), nil, opdisposelist(), and tryerrorstack.

Referenced by evaltree().

Here is the call graph for this function:

static boolean evaluatewith hdltreenode  hwith,
tyvaluerecord valtree
[static]
 

Definition at line 862 of file langevaluate.c.

References badwithstatementerror, bigstring, bscontainername, chainhashtable(), copystring(), disposehashtable(), disposevaluerecord(), error, evaluatelist(), evaluateobjspec(), exemptfromtmpstack(), tyhashtable::fllocaltable, h, hashtableassign(), hmagictable, hnode, isobjspectree(), langexternalvaltotable(), langgetdottedsymbolval(), langgetlexicalrefcon(), langgetwithvaluename(), langlongparamerror(), langparamerror(), tytreenode::link, newhashtable(), nil, tytreenode::param1, setaddressvalue(), toomanywithtableserror, unchainhashtable(), and zerostring.

Referenced by evaltree().

Here is the call graph for this function:

static boolean fileloopguts hdltreenode  htree,
ptrfilespec  fsfolder,
bigstring  bsidentifier,
long  ctlevels,
tyvaluerecord valtree
[static]
 

Definition at line 520 of file langevaluate.c.

References assert, cleartmpstack(), diskinitloop(), evaluatelist(), exemptfromtmpstack(), fileendloop(), fileinitloop(), filenextloop(), flbreak, flcontinue, flreturn, h, htree, isemptystring, langdebuggercall(), langsetsymbolval(), nil, and setfilespecvalue().

Referenced by evaluatefileloop().

Here is the call graph for this function:

static boolean langaddhandler hdltreenode  hnode  )  [static]
 

Definition at line 1293 of file langevaluate.c.

References bigstring, bundle, tyvaluedata::codevalue, codevaluetype, tyvaluerecord::data, tyvaluerecord::fltmpdata, h, hashinsert(), hashsymbolexists(), hnode, initvalue(), langgetidentifier(), langgetlexicalrefcon(), langparamerror(), langseterrorline(), tyvaluedata::longvalue, longvaluetype, and multiplesymbolerror.

Referenced by evaltree().

Here is the call graph for this function:

static boolean langaddlocals hdltreenode  hnode  )  [static]
 

Definition at line 1202 of file langevaluate.c.

References assignlocalop, bigstring, cleartmpstack(), copyvaluedata(), evaluatetree(), exemptfromtmpstack(), externalassignerror, externalvaluetype, fllangexternalvalueprotect, tyvaluerecord::fltmpdata, hashinsert(), hashsetlocality(), hashsymbolexists(), initvalue(), langbadexternaloperror(), langdebuggercall(), langgetidentifier(), langparamerror(), langseterrorline(), tytreenode::link, multiplesymbolerror, nil, novaluetype, and tyvaluerecord::valuetype.

Referenced by evaltree().

Here is the call graph for this function:

static long langgetlexicalrefcon void   )  [static]
 

Definition at line 808 of file langevaluate.c.

References cterrorcallbacks, langcallbacks, nil, and tylangcallbacks::scripterrorstack.

Referenced by evaluatewith(), and langaddhandler().

void langseterrorline hdltreenode  hnode  ) 
 

Definition at line 68 of file langevaluate.c.

References ctscanchars, ctscanlines, herrornode, hnode, and langerrorenabled().

Referenced by dotvalue(), evaltree(), evaluateelement(), evaluatefileloop(), evaluateparam(), evaluateproperty(), evaluatereadonlyparam(), langaddfuncparams(), langaddhandler(), langaddlocals(), langgetdotparams(), langgetentrypoint(), and langgetnodecode().

Here is the call graph for this function:

static boolean langtryerror bigstring  bsmsg,
ptrvoid  refcon
[static]
 

Definition at line 1122 of file langevaluate.c.

References assert, newtexthandle(), and nil.

Referenced by evaluatetry().

Here is the call graph for this function:

static boolean needassignmentresult hdltreenode  hp  )  [static]
 

Definition at line 1345 of file langevaluate.c.

References nil.

Referenced by evaltree().


Variable Documentation

byte bscontainername[] = "_container"
 

Definition at line 58 of file langevaluate.c.

Referenced by evaluatewith(), and getdefaultcontainer().

byte nametryerrorval[] = "tryerror" [static]
 

Definition at line 60 of file langevaluate.c.

typaraminfo paraminfolist[cttreetypes] [static]
 

Definition at line 1379 of file langevaluate.c.

Referenced by evaltree().

Handle tryerror = nil
 

Definition at line 977 of file langevaluate.c.

Referenced by copythreadglobals(), and swapinthreadglobals().

Handle tryerrorstack = nil
 

Definition at line 979 of file langevaluate.c.

Referenced by copythreadglobals(), evaluatetry(), and swapinthreadglobals().


Generated on Sat Jun 3 05:29:58 2006 for frontierkernel 10.1.10a by  doxygen 1.4.6