1
0
mirror of https://github.com/RevCurtisP/C02.git synced 2024-06-08 06:29:32 +00:00
C02/src/expr.h
2020-09-24 12:12:39 -04:00

33 lines
1.4 KiB
C

/**********************************
* C02 Expession Parsing Routines *
**********************************/
enum adacts {ADNONE, ADLDYX, ADPUSH};
char term[255]; //Term parsed from equation
char oprstk[MAXTRM]; //Operator Stack
char trmstk[MAXTRM][VARLEN+1]; //Function/Index Terms Stack
int trmidx; //Next Index in Stack
int trmcnt; //Number of total terms in current expression
int chkadr(int adract, int alwstr); //Check for and Process Address or String
void chkidx(); //Check for, Parse, and Process Index
int prcftm(int alwint); //Process First Term
void prcptx(char *index); //Process Pointer Index
void prcvri(void); //Process Integer Variable
int prcivr(int alwint); //Process Integer Variable in Term
void prsadr(int adract); //Parse and Compile Address of Operator
void prsbop(void); //Parse Byte Operator
void prsval(int alwreg, int alwcon); //Parse Value
void prsfnc(char trmntr); //Parse function call
void prsfpr(char trmntr); //Parse Function Paraeters or Return
void prsidx(); //Parse Array Index
void prsptr(void); //Parse Pointer
int prstrm(int alwint, int alwptr); //Parse Term in Expression
void prsrxp(char trmntr); //Parse Rest of Expression
int prsxpf(char trmntr); //Parse Expression in Function Call
void prsxpr(char trmntr); //Parse Expression
void prsxpi(char trmntr, int asmxpr); //Parse Integer Expression