G:/ScriptBasic/source/expression.c File Reference

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "errcodes.h"
#include "report.h"
#include "lexer.h"
#include "sym.h"
#include "expression.h"
#include "myalloc.h"
#include "syntax.h"
#include "ipreproc.h"

Go to the source code of this file.

Defines

#define new_eNODE()   _new_eNODE(pEx)
#define new_eNODE_l()   _new_eNODE_l(pEx,NULL,0L)
#define new_eNODE_lL()   _new_eNODE_l(pEx,pszFileName,lLineNumber)
#define new_SymbolUF()   _new_SymbolUF(pEx)
#define new_SymbolVAR(y)   _new_SymbolVAR(pEx,y)
#define new_SymbolLABEL()   _new_SymbolLABEL(pEx)
#define ex_PopLabel(y)   _ex_PopLabel(pEx,y)
#define ex_CleanLabelStack()   _ex_CleanLabelStack(pEx)
#define LOCAL_VAR   1
#define GLOBAL_VAR   0
#define LexemeLineNumber   lex_LineNumber(pEx->pLex)
#define LexemeFileName   lex_FileName(pEx->pLex)
#define NextLexeme   lex_NextLexeme(pEx->pLex);
#define LexemeType   (lex_EOF(pEx->pLex) ? 0 : lex_Type(pEx->pLex))
#define LexemeCode   lex_Code(pEx->pLex)
#define LexemeChar   lex_Char(pEx->pLex)
#define LexemeStrLen   lex_StrLen(pEx->pLex)
#define LexemeString   lex_String(pEx->pLex)
#define LexemeDouble   lex_Double(pEx->pLex)
#define LexemeLong   lex_Long(pEx->pLex)
#define LexemeInt   lex_Int(pEx->pLex)
#define LexemeSymbol   lex_Symbol(pEx->pLex)
#define WeAreLocal   (pEx->iWeAreLocal)
#define WeAreNotLocal   (!pEx->iWeAreLocal)
#define DeclareVars   (pEx->iDeclareVars)
#define DefaultLocal   (pEx->iDefaultLocal)
#define COUNT_STRING_LEN   (pEx->cbStringTable += sizeof(long));
#define CALL_PREPROCESSOR(X, Y)   if( pEx->pPREP && pEx->pPREP->n )ipreproc_Process(pEx->pPREP,X,Y)
#define REPORT(x1, x2, x3, x4)   do{if( pEx->report )pEx->report(pEx->reportptr,x1,x2,x3,REPORT_ERROR,&(pEx->iErrorCounter),x4,&(pEx->fErrorFlags));}while(0)
#define OPCODE   (p->OpCode)
#define ABORT   goto SYNTAX_FAILURE_DO_CLEANUP
#define ARGUMENT   pArgument->Parameter.CommandArgument.Argument
#define ASSERT_NON_NULL(x)   if( (x) == NULL ){ *piFailure = EX_ERROR_MEMORY_LOW; ABORT; }
#define NewArgument
#define ex_PushLabel(y, z)   _ex_PushLabel(pEx,y,z,pMyMemorySegment)
#define ex_SwapMemorySegment()
#define ABORT   do{ *piFailure = EX_ERROR_SYNTAX;return NULL; }while(0)
#define FABORT   do{ *piFailure = EX_ERROR_SYNTAX_FATAL;return NULL; }while(0)
#define ARGUMENT   pArgument->Parameter.CommandArgument.Argument
#define ASSERT_NON_NULL(x)   if( (x) == NULL ){ *piFailure = EX_ERROR_MEMORY_LOW; ABORT; }
#define NewArgument

Functions

static isinset (int ch, char *string)
static void _ex_printVAR (char *name, void *value, void *f)
void ex_DumpVariables (SymbolTable q, FILE *fp)
static void _ex_pprint (FILE *f, peNODE p, peXobject pEx, int tab)
void _ex_pprint_l (FILE *f, peNODE_l p, peXobject pEx, int tab)
int expression_PushNameSpace (peXobject pEx)
static void CUL_callback (char *LabelName, void *pL, void *f)
void ex_CheckUndefinedLabels (peXobject pEx)
void ex_CleanNameSpaceStack (peXobject pEx)
int expression_PopNameSpace (peXobject pEx)
int ex_PushWaitingLabel (peXobject pEx, pSymbolLABEL pLbl)
pSymbolLABEL ex_PopWaitingLabel (peXobject pEx)
int _ex_PushLabel (peXobject pEx, pSymbolLABEL pLbl, long Type, void *pMemorySegment)
pSymbolLABEL _ex_PopLabel (peXobject pEx, long *pAcceptedType)
void _ex_CleanLabelStack (peXobject pEx)
pSymbolLABEL _new_SymbolLABEL (peXobject pEx)
pSymbolVAR _new_SymbolVAR (peXobject pEx, int iLocal)
pSymbolUF _new_SymbolUF (peXobject pEx)
peNODE _new_eNODE (peXobject pEx)
peNODE_l _new_eNODE_l (peXobject pEx, char *pszFileName, long lLineNumber)
void ex_free (peXobject pEx)
int ex_init (peXobject pEx)
void ex_CleanNamePath (char *s)
int ex_ConvertName (char *s, char *Buffer, size_t cbBuffer, peXobject pEx)
pBFun ex_IsBFun (peXobject pEx)
unsigned long ex_IsUnop (peXobject pEx)
unsigned long ex_IsBinop (peXobject pEx, unsigned long precedence)
peNODE_l ex_LeftValueList (peXobject pEx)
peNODE_l ex_ExpressionList (peXobject pEx)
int ex_Local (peXobject pEx)
int ex_LocalList (peXobject pEx)
int ex_Global (peXobject pEx)
int ex_GlobalList (peXobject pEx)
void ** ex_LookupUserFunction (peXobject pEx, int iInsert)
void ** ex_LookupGlobalVariable (peXobject pEx, int iInsert)
void ** ex_LookupLocallyDeclaredGlobalVariable (peXobject pEx)
void ** ex_LookupLocalVariable (peXobject pEx, int iInsert)
peNODE ex_Tag (peXobject pEx)
peNODE ex_Expression_i (peXobject pEx, int i)
void ex_Expression_r (peXobject pEx, peNODE *Result)
int ex_IsSymbolValidLval (peXobject pEx)
peNODE ex_LeftValue (peXobject pEx)
int ex_PredeclareGlobalLongConst (peXobject pEx, char *pszConstName, long lConstValue)
peNODE ex_IsCommandThis (peXobject pEx, pLineSyntax p, int *piFailure)
void ex_Command_r (peXobject pEx, peNODE *Result, int *piFailure)
int ex_Command_l (peXobject pEx, peNODE_l *Result)
void ex_pprint (FILE *f, peXobject pEx)
int ex_Pragma (peXobject pEx, char *pszPragma)
peNODE ex_IsCommandCALL (peXobject pEx, pLineSyntax p, int *piFailure)
peNODE ex_IsCommandOPEN (peXobject pEx, pLineSyntax p, int *piFailure)
peNODE ex_IsCommandSLIF (peXobject pEx, pLineSyntax p, int *piFailure)
peNODE ex_IsCommandIF (peXobject pEx, pLineSyntax p, int *piFailure)
peNODE ex_IsCommandLET (peXobject pEx, pLineSyntax p, int *piFailure)


Define Documentation

#define ABORT   do{ *piFailure = EX_ERROR_SYNTAX;return NULL; }while(0)
 

Definition at line 3229 of file expression.c.

#define ABORT   goto SYNTAX_FAILURE_DO_CLEANUP
 

Definition at line 3229 of file expression.c.

Referenced by ex_IsCommandCALL(), ex_IsCommandIF(), ex_IsCommandLET(), ex_IsCommandOPEN(), ex_IsCommandSLIF(), and ex_IsCommandThis().

#define ARGUMENT   pArgument->Parameter.CommandArgument.Argument
 

Definition at line 3231 of file expression.c.

#define ARGUMENT   pArgument->Parameter.CommandArgument.Argument
 

Definition at line 3231 of file expression.c.

Referenced by ex_IsCommandCALL(), ex_IsCommandIF(), ex_IsCommandLET(), ex_IsCommandOPEN(), and ex_IsCommandThis().

#define ASSERT_NON_NULL  )     if( (x) == NULL ){ *piFailure = EX_ERROR_MEMORY_LOW; ABORT; }
 

Definition at line 3232 of file expression.c.

#define ASSERT_NON_NULL  )     if( (x) == NULL ){ *piFailure = EX_ERROR_MEMORY_LOW; ABORT; }
 

Definition at line 3232 of file expression.c.

#define CALL_PREPROCESSOR X,
 )     if( pEx->pPREP && pEx->pPREP->n )ipreproc_Process(pEx->pPREP,X,Y)
 

Definition at line 424 of file expression.c.

#define COUNT_STRING_LEN   (pEx->cbStringTable += sizeof(long));
 

Definition at line 422 of file expression.c.

Referenced by ex_IsCommandOPEN(), ex_IsCommandThis(), and ex_Tag().

#define DeclareVars   (pEx->iDeclareVars)
 

Definition at line 419 of file expression.c.

Referenced by ex_Global(), ex_LeftValue(), ex_Pragma(), and ex_Tag().

#define DefaultLocal   (pEx->iDefaultLocal)
 

Definition at line 420 of file expression.c.

Referenced by ex_LeftValue(), ex_Pragma(), and ex_Tag().

 
#define ex_CleanLabelStack  )     _ex_CleanLabelStack(pEx)
 

Definition at line 401 of file expression.c.

Referenced by ex_Command_l().

#define ex_PopLabel y   )     _ex_PopLabel(pEx,y)
 

Definition at line 400 of file expression.c.

Referenced by _ex_CleanLabelStack(), and ex_IsCommandThis().

#define ex_PushLabel y,
 )     _ex_PushLabel(pEx,y,z,pMyMemorySegment)
 

Referenced by ex_IsCommandThis().

 
#define ex_SwapMemorySegment  ) 
 

Value:

do{ pSwapMemorySegment  = pEx->pMemorySegment; \
                                   pEx->pMemorySegment = pMyMemorySegment;    \
                                   pMyMemorySegment    = pSwapMemorySegment; }while(0)

#define FABORT   do{ *piFailure = EX_ERROR_SYNTAX_FATAL;return NULL; }while(0)
 

Definition at line 3230 of file expression.c.

Referenced by ex_IsCommandCALL(), ex_IsCommandIF(), ex_IsCommandLET(), and ex_IsCommandOPEN().

#define GLOBAL_VAR   0
 

Definition at line 403 of file expression.c.

Referenced by ex_Global(), ex_LeftValue(), and ex_Tag().

#define LexemeChar   lex_Char(pEx->pLex)
 

Definition at line 410 of file expression.c.

Referenced by ex_Command_l(), ex_ExpressionList(), ex_GlobalList(), ex_IsCommandCALL(), ex_IsCommandThis(), ex_LeftValue(), ex_LeftValueList(), ex_LocalList(), and ex_Tag().

#define LexemeCode   lex_Code(pEx->pLex)
 

Definition at line 409 of file expression.c.

Referenced by ex_IsBFun(), ex_IsBinop(), ex_IsCommandCALL(), ex_IsCommandIF(), ex_IsCommandLET(), ex_IsCommandOPEN(), ex_IsCommandThis(), ex_IsUnop(), and ex_Tag().

#define LexemeDouble   lex_Double(pEx->pLex)
 

Definition at line 413 of file expression.c.

Referenced by ex_IsCommandThis().

#define LexemeFileName   lex_FileName(pEx->pLex)
 

Definition at line 406 of file expression.c.

Referenced by _ex_CleanLabelStack(), _ex_PopLabel(), ex_CleanNameSpaceStack(), ex_Command_l(), ex_Global(), ex_IsCommandCALL(), ex_LeftValue(), ex_Local(), ex_Pragma(), and ex_Tag().

#define LexemeInt   lex_Int(pEx->pLex)
 

Definition at line 415 of file expression.c.

#define LexemeLineNumber   lex_LineNumber(pEx->pLex)
 

Definition at line 405 of file expression.c.

Referenced by _ex_CleanLabelStack(), _ex_PopLabel(), ex_CleanNameSpaceStack(), ex_Command_l(), ex_Global(), ex_IsCommandCALL(), ex_LeftValue(), ex_Local(), ex_Pragma(), and ex_Tag().

#define LexemeLong   lex_Long(pEx->pLex)
 

Definition at line 414 of file expression.c.

Referenced by ex_IsCommandThis().

#define LexemeString   lex_String(pEx->pLex)
 

Definition at line 412 of file expression.c.

#define LexemeStrLen   lex_StrLen(pEx->pLex)
 

Definition at line 411 of file expression.c.

Referenced by ex_IsCommandThis().

#define LexemeSymbol   lex_Symbol(pEx->pLex)
 

Definition at line 416 of file expression.c.

Referenced by ex_Global(), ex_IsCommandCALL(), ex_IsCommandOPEN(), ex_IsCommandThis(), ex_IsSymbolValidLval(), ex_LeftValue(), ex_Local(), and ex_Tag().

#define LexemeType   (lex_EOF(pEx->pLex) ? 0 : lex_Type(pEx->pLex))
 

Definition at line 408 of file expression.c.

Referenced by ex_Command_l(), ex_ExpressionList(), ex_Global(), ex_GlobalList(), ex_IsBFun(), ex_IsBinop(), ex_IsCommandCALL(), ex_IsCommandIF(), ex_IsCommandLET(), ex_IsCommandOPEN(), ex_IsCommandThis(), ex_IsUnop(), ex_LeftValue(), ex_LeftValueList(), ex_Local(), ex_LocalList(), and ex_Tag().

#define LOCAL_VAR   1
 

Definition at line 402 of file expression.c.

Referenced by ex_LeftValue(), ex_Local(), and ex_Tag().

 
#define new_eNODE  )     _new_eNODE(pEx)
 

Definition at line 394 of file expression.c.

Referenced by ex_Expression_i(), ex_IsCommandCALL(), ex_IsCommandOPEN(), ex_LeftValue(), and ex_Tag().

 
#define new_eNODE_l  )     _new_eNODE_l(pEx,NULL,0L)
 

Definition at line 395 of file expression.c.

Referenced by ex_Expression_i(), ex_ExpressionList(), ex_LeftValue(), ex_LeftValueList(), and ex_Tag().

 
#define new_eNODE_lL  )     _new_eNODE_l(pEx,pszFileName,lLineNumber)
 

Definition at line 396 of file expression.c.

Referenced by ex_Command_l().

 
#define new_SymbolLABEL  )     _new_SymbolLABEL(pEx)
 

Definition at line 399 of file expression.c.

Referenced by ex_IsCommandIF(), and ex_IsCommandThis().

 
#define new_SymbolUF  )     _new_SymbolUF(pEx)
 

Definition at line 397 of file expression.c.

Referenced by ex_IsCommandCALL(), ex_IsCommandThis(), and ex_Tag().

#define new_SymbolVAR y   )     _new_SymbolVAR(pEx,y)
 

Definition at line 398 of file expression.c.

Referenced by ex_Global(), ex_LeftValue(), ex_Local(), and ex_Tag().

#define NewArgument
 

Value:

if( (*ppArgument = new_eNODE()) == NULL ){\
                       *piFailure = EX_ERROR_MEMORY_LOW;\
                       return NULL;\
                       }else{\
                       pArgument = *ppArgument;\
                       ppArgument = &(pArgument->Parameter.CommandArgument.next);\
                       *ppArgument = NULL;\
                       }

Definition at line 3234 of file expression.c.

#define NewArgument
 

Value:

if( (*ppArgument = new_eNODE()) == NULL ){\
                       *piFailure = EX_ERROR_MEMORY_LOW;\
                       ABORT;\
                       }else{\
                       pArgument = *ppArgument;\
                       ppArgument = &(pArgument->Parameter.CommandArgument.next);\
                       *ppArgument = NULL;\
                       }

Definition at line 3234 of file expression.c.

Referenced by ex_IsCommandCALL(), ex_IsCommandIF(), ex_IsCommandLET(), ex_IsCommandOPEN(), and ex_IsCommandThis().

#define NextLexeme   lex_NextLexeme(pEx->pLex);
 

Definition at line 407 of file expression.c.

Referenced by ex_Command_l(), ex_Expression_i(), ex_ExpressionList(), ex_Global(), ex_GlobalList(), ex_IsCommandCALL(), ex_IsCommandIF(), ex_IsCommandLET(), ex_IsCommandOPEN(), ex_IsCommandThis(), ex_LeftValue(), ex_LeftValueList(), ex_Local(), ex_LocalList(), and ex_Tag().

#define OPCODE   (p->OpCode)
 

Referenced by _ex_pprint(), COMMAND_EXTERNAL(), COMMAND_FUNCTIONARG(), if(), and while().

#define REPORT x1,
x2,
x3,
x4   )     do{if( pEx->report )pEx->report(pEx->reportptr,x1,x2,x3,REPORT_ERROR,&(pEx->iErrorCounter),x4,&(pEx->fErrorFlags));}while(0)
 

Definition at line 426 of file expression.c.

#define WeAreLocal   (pEx->iWeAreLocal)
 

Definition at line 417 of file expression.c.

Referenced by ex_Global(), ex_LeftValue(), and ex_Tag().

#define WeAreNotLocal   (!pEx->iWeAreLocal)
 

Definition at line 418 of file expression.c.

Referenced by ex_LeftValue(), ex_Local(), and ex_Tag().


Function Documentation

void _ex_CleanLabelStack peXobject  pEx  ) 
 

Definition at line 882 of file expression.c.

References ex_PopLabel, LexemeFileName, LexemeLineNumber, NULL, and REPORT.

pSymbolLABEL _ex_PopLabel peXobject  pEx,
long *  pAcceptedType
 

Definition at line 839 of file expression.c.

References i, LexemeFileName, LexemeLineNumber, NULL, p, q, and REPORT.

static void _ex_pprint FILE *  f,
peNODE  p,
peXobject  pEx,
int  tab
[static]
 

Definition at line 467 of file expression.c.

References _ex_pprint_l(), i, j, lex_SymbolicName(), NULL, OPCODE, and q.

Referenced by _ex_pprint_l(), and ex_pprint().

void _ex_pprint_l FILE *  f,
peNODE_l  p,
peXobject  pEx,
int  tab
 

Definition at line 458 of file expression.c.

References _ex_pprint().

Referenced by _ex_pprint().

static void _ex_printVAR char *  name,
void *  value,
void *  f
[static]
 

Definition at line 433 of file expression.c.

References fp, and p.

Referenced by ex_DumpVariables().

int _ex_PushLabel peXobject  pEx,
pSymbolLABEL  pLbl,
long  Type,
void *  pMemorySegment
 

Definition at line 787 of file expression.c.

References alloc_Alloc(), NULL, and p.

Referenced by ex_IsCommandIF().

peNODE _new_eNODE peXobject  pEx  ) 
 

Definition at line 1030 of file expression.c.

References alloc_Alloc(), NULL, and p.

peNODE_l _new_eNODE_l peXobject  pEx,
char *  pszFileName,
long  lLineNumber
 

Definition at line 1069 of file expression.c.

References alloc_Alloc(), NULL, and p.

pSymbolLABEL _new_SymbolLABEL peXobject  pEx  ) 
 

Definition at line 936 of file expression.c.

References alloc_Alloc(), NULL, and p.

pSymbolUF _new_SymbolUF peXobject  pEx  ) 
 

Definition at line 999 of file expression.c.

References alloc_Alloc(), NULL, and p.

pSymbolVAR _new_SymbolVAR peXobject  pEx,
int  iLocal
 

Definition at line 965 of file expression.c.

References alloc_Alloc(), NULL, and p.

static void CUL_callback char *  LabelName,
void *  pL,
void *  f
[static]
 

Definition at line 631 of file expression.c.

References REPORT.

Referenced by ex_CheckUndefinedLabels().

void ex_CheckUndefinedLabels peXobject  pEx  ) 
 

Definition at line 652 of file expression.c.

References CUL_callback(), and sym_TraverseSymbolTable().

Referenced by ex_Command_l().

void ex_CleanNamePath char *  s  ) 
 

Definition at line 1258 of file expression.c.

References i, and j.

Referenced by ex_ConvertName().

void ex_CleanNameSpaceStack peXobject  pEx  ) 
 

Definition at line 670 of file expression.c.

References alloc_Free(), LexemeFileName, LexemeLineNumber, NULL, p, and REPORT.

Referenced by ex_Command_l().

int ex_Command_l peXobject  pEx,
peNODE_l *  Result
 

Definition at line 3131 of file expression.c.

References CALL_PREPROCESSOR, ex_CheckUndefinedLabels(), ex_CleanLabelStack, ex_CleanNameSpaceStack(), ex_Command_r(), ex_PopWaitingLabel(), LexemeChar, LexemeFileName, LexemeLineNumber, LexemeType, new_eNODE_lL, NextLexeme, pszFileName, and REPORT.

Referenced by HttpExtensionProc(), main(), and scriba_DoSyntaxAnalysis().

void ex_Command_r peXobject  pEx,
peNODE *  Result,
int *  piFailure
 

Definition at line 3093 of file expression.c.

References i, lex_RestorePosition(), lex_SavePosition(), and p.

Referenced by ex_Command_l().

int ex_ConvertName char *  s,
char *  Buffer,
size_t  cbBuffer,
peXobject  pEx
 

Definition at line 1299 of file expression.c.

References ex_CleanNamePath(), i, and strcpy().

Referenced by ex_Global(), ex_IsCommandCALL(), ex_IsCommandThis(), ex_LeftValue(), ex_Local(), and ex_Tag().

void ex_DumpVariables SymbolTable  q,
FILE *  fp
 

Definition at line 447 of file expression.c.

References _ex_printVAR(), and sym_TraverseSymbolTable().

peNODE ex_Expression_i peXobject  pEx,
int  i
 

Definition at line 2127 of file expression.c.

References ex_IsBinop(), ex_Tag(), new_eNODE, new_eNODE_l, NextLexeme, NULL, and q.

Referenced by ex_Expression_r(), ex_ExpressionList(), and ex_Tag().

void ex_Expression_r peXobject  pEx,
peNODE *  Result
 

Definition at line 2167 of file expression.c.

References ex_Expression_i().

Referenced by ex_IsCommandIF(), ex_IsCommandLET(), ex_IsCommandOPEN(), and ex_IsCommandThis().

peNODE_l ex_ExpressionList peXobject  pEx  ) 
 

Definition at line 1468 of file expression.c.

References ex_Expression_i(), LexemeChar, LexemeType, new_eNODE_l, NextLexeme, NULL, q, and r.

Referenced by ex_IsCommandCALL(), ex_IsCommandThis(), ex_LeftValue(), and ex_Tag().

void ex_free peXobject  pEx  ) 
 

Definition at line 1107 of file expression.c.

References alloc_FinishSegment(), and NULL.

Referenced by ex_init(), HttpExtensionProc(), main(), and scriba_PurgeSyntaxerMemory().

int ex_Global peXobject  pEx  ) 
 

Definition at line 1565 of file expression.c.

References alloc_Alloc(), alloc_Free(), DeclareVars, ex_ConvertName(), GLOBAL_VAR, LexemeFileName, LexemeLineNumber, LexemeSymbol, LexemeType, new_SymbolVAR, NextLexeme, NULL, REPORT, sym_LookupSymbol(), and WeAreLocal.

Referenced by ex_GlobalList(), and ex_IsCommandThis().

int ex_GlobalList peXobject  pEx  ) 
 

Definition at line 1643 of file expression.c.

References ex_Global(), LexemeChar, LexemeType, and NextLexeme.

Referenced by ex_IsCommandThis().

int ex_init peXobject  pEx  ) 
 

Definition at line 1132 of file expression.c.

References alloc_Alloc(), alloc_InitSegment(), ex_free(), ex_PredeclareGlobalLongConst(), i, lex_StartIteration(), NULL, strcpy(), and sym_NewSymbolTable().

Referenced by HttpExtensionProc(), main(), and scriba_DoSyntaxAnalysis().

pBFun ex_IsBFun peXobject  pEx  ) 
 

Definition at line 1380 of file expression.c.

References LexemeCode, LexemeType, NULL, and p.

Referenced by ex_Tag().

unsigned long ex_IsBinop peXobject  pEx,
unsigned long  precedence
 

Definition at line 1421 of file expression.c.

References LexemeCode, LexemeType, and p.

Referenced by ex_Expression_i().

peNODE ex_IsCommandCALL peXobject  pEx,
pLineSyntax  p,
int *  piFailure
 

Definition at line 3307 of file expression.c.

References ABORT, ARGUMENT, ex_ConvertName(), ex_ExpressionList(), ex_LookupUserFunction(), FABORT, lex_EOF(), lex_RestorePosition(), lex_SavePosition(), LexemeChar, LexemeCode, LexemeFileName, LexemeLineNumber, LexemeSymbol, LexemeType, new_eNODE, new_SymbolUF, NewArgument, NextLexeme, q, and REPORT.

peNODE ex_IsCommandIF peXobject  pEx,
pLineSyntax  p,
int *  piFailure
 

Definition at line 3586 of file expression.c.

References _ex_PushLabel(), ABORT, ARGUMENT, ex_Expression_r(), FABORT, LexemeCode, LexemeType, new_SymbolLABEL, NewArgument, and NextLexeme.

peNODE ex_IsCommandLET peXobject  pEx,
pLineSyntax  p,
int *  piFailure
 

Definition at line 3668 of file expression.c.

References ABORT, ARGUMENT, ex_Expression_r(), ex_LeftValue(), FABORT, LexemeCode, LexemeType, NewArgument, and NextLexeme.

peNODE ex_IsCommandOPEN peXobject  pEx,
pLineSyntax  p,
int *  piFailure
 

Definition at line 3459 of file expression.c.

References ABORT, alloc_Alloc(), ARGUMENT, COUNT_STRING_LEN, ex_Expression_r(), FABORT, lex_SymbolicName(), LexemeCode, LexemeSymbol, LexemeType, new_eNODE, NewArgument, NextLexeme, q, sLen, and strcpy().

peNODE ex_IsCommandSLIF peXobject  pEx,
pLineSyntax  p,
int *  piFailure
 

Definition at line 3566 of file expression.c.

References ABORT.

peNODE ex_IsCommandThis peXobject  pEx,
pLineSyntax  p,
int *  piFailure
 

Definition at line 2446 of file expression.c.

References ABORT, alloc_Alloc(), alloc_Free(), alloc_InitSegment(), ARGUMENT, ASSERT_NON_NULL, CALL_PREPROCESSOR, COUNT_STRING_LEN, ex_ConvertName(), ex_Expression_r(), ex_ExpressionList(), ex_Global(), ex_GlobalList(), ex_LeftValue(), ex_LeftValueList(), ex_Local(), ex_LocalList(), ex_LookupUserFunction(), ex_PopLabel, ex_Pragma(), ex_PushLabel, ex_PushWaitingLabel(), lex_SymbolicName(), LexemeChar, LexemeCode, LexemeDouble, LexemeLong, LexemeStrLen, LexemeSymbol, LexemeType, memcpy(), new_SymbolLABEL, new_SymbolUF, NewArgument, NextLexeme, NULL, sLen, sprintf(), strcpy(), sym_LookupSymbol(), and sym_NewSymbolTable().

int ex_IsSymbolValidLval peXobject  pEx  ) 
 

Definition at line 2192 of file expression.c.

References alloc_Alloc(), alloc_Free(), fs, LexemeSymbol, NULL, s, strcpy(), and sym_LookupSymbol().

Referenced by ex_LeftValue().

unsigned long ex_IsUnop peXobject  pEx  ) 
 

Definition at line 1401 of file expression.c.

References LexemeCode, LexemeType, and p.

Referenced by ex_Tag().

peNODE ex_LeftValue peXobject  pEx  ) 
 

Definition at line 2267 of file expression.c.

References DeclareVars, DefaultLocal, ex_ConvertName(), ex_ExpressionList(), ex_IsSymbolValidLval(), ex_LookupGlobalVariable(), ex_LookupLocallyDeclaredGlobalVariable(), ex_LookupLocalVariable(), GLOBAL_VAR, LexemeChar, LexemeFileName, LexemeLineNumber, LexemeSymbol, LexemeType, LOCAL_VAR, new_eNODE, new_eNODE_l, new_SymbolVAR, NextLexeme, NULL, q, r, REPORT, WeAreLocal, and WeAreNotLocal.

Referenced by ex_IsCommandLET(), ex_IsCommandThis(), and ex_LeftValueList().

peNODE_l ex_LeftValueList peXobject  pEx  ) 
 

Definition at line 1443 of file expression.c.

References ex_LeftValue(), LexemeChar, LexemeType, new_eNODE_l, NextLexeme, NULL, q, and r.

Referenced by ex_IsCommandThis().

int ex_Local peXobject  pEx  ) 
 

Definition at line 1494 of file expression.c.

References alloc_Alloc(), alloc_Free(), ex_ConvertName(), LexemeFileName, LexemeLineNumber, LexemeSymbol, LexemeType, LOCAL_VAR, new_SymbolVAR, NextLexeme, NULL, REPORT, sym_LookupSymbol(), and WeAreNotLocal.

Referenced by ex_IsCommandThis(), and ex_LocalList().

int ex_LocalList peXobject  pEx  ) 
 

Definition at line 1535 of file expression.c.

References ex_Local(), LexemeChar, LexemeType, and NextLexeme.

Referenced by ex_IsCommandThis().

void** ex_LookupGlobalVariable peXobject  pEx,
int  iInsert
 

Definition at line 1700 of file expression.c.

References alloc_Alloc(), alloc_Free(), and sym_LookupSymbol().

Referenced by ex_LeftValue(), and ex_Tag().

void** ex_LookupLocallyDeclaredGlobalVariable peXobject  pEx  ) 
 

Definition at line 1733 of file expression.c.

References alloc_Alloc(), alloc_Free(), and sym_LookupSymbol().

Referenced by ex_LeftValue(), and ex_Tag().

void** ex_LookupLocalVariable peXobject  pEx,
int  iInsert
 

Definition at line 1760 of file expression.c.

References alloc_Alloc(), alloc_Free(), and sym_LookupSymbol().

Referenced by ex_LeftValue(), and ex_Tag().

void** ex_LookupUserFunction peXobject  pEx,
int  iInsert
 

Definition at line 1674 of file expression.c.

References alloc_Alloc(), alloc_Free(), and sym_LookupSymbol().

Referenced by ex_IsCommandCALL(), ex_IsCommandThis(), and ex_Tag().

pSymbolLABEL ex_PopWaitingLabel peXobject  pEx  ) 
 

Definition at line 768 of file expression.c.

References NULL.

Referenced by ex_Command_l().

void ex_pprint FILE *  f,
peXobject  pEx
 

Definition at line 3219 of file expression.c.

References _ex_pprint(), and q.

int ex_Pragma peXobject  pEx,
char *  pszPragma
 

Definition at line 3260 of file expression.c.

References DeclareVars, DefaultLocal, LexemeFileName, LexemeLineNumber, and REPORT.

Referenced by ex_IsCommandThis().

int ex_PredeclareGlobalLongConst peXobject  pEx,
char *  pszConstName,
long  lConstValue
 

Definition at line 2387 of file expression.c.

References alloc_Alloc(), alloc_Free(), NULL, and sym_LookupSymbol().

Referenced by ex_init().

int ex_PushWaitingLabel peXobject  pEx,
pSymbolLABEL  pLbl
 

Definition at line 721 of file expression.c.

Referenced by ex_IsCommandThis().

peNODE ex_Tag peXobject  pEx  ) 
 

Definition at line 1798 of file expression.c.

References alloc_Alloc(), alloc_Free(), COUNT_STRING_LEN, DeclareVars, DefaultLocal, ex_ConvertName(), ex_Expression_i(), ex_ExpressionList(), ex_IsBFun(), ex_IsUnop(), ex_LookupGlobalVariable(), ex_LookupLocallyDeclaredGlobalVariable(), ex_LookupLocalVariable(), ex_LookupUserFunction(), GLOBAL_VAR, LexemeChar, LexemeCode, LexemeFileName, LexemeLineNumber, LexemeSymbol, LexemeType, LOCAL_VAR, memcpy(), new_eNODE, new_eNODE_l, new_SymbolUF, new_SymbolVAR, NextLexeme, NULL, q, r, REPORT, s, sym_LookupSymbol(), WeAreLocal, and WeAreNotLocal.

Referenced by ex_Expression_i().

int expression_PopNameSpace peXobject  pEx  ) 
 

Definition at line 699 of file expression.c.

References alloc_Free(), NULL, p, and strcpy().

int expression_PushNameSpace peXobject  pEx  ) 
 

Definition at line 607 of file expression.c.

References alloc_Alloc(), alloc_Free(), NULL, p, and strcpy().

static isinset int  ch,
char *  string
[static]
 

Definition at line 428 of file expression.c.

Referenced by lex_ReadInput().


Generated on Sun Mar 12 23:56:34 2006 for ScriptBasic by  doxygen 1.4.6-NO