|
|
1.1 ! root 1: #ifndef EXPR_H ! 2: #define EXPR_H ! 3: #ifndef UNIV_H ! 4: #include "univ.h" ! 5: #endif ! 6: #include "dtype.pub" ! 7: #include "op.h" ! 8: #include "format.pub" ! 9: >pri ! 10: ! 11: enum EDisc{ ! 12: E_UNARY = 1, ! 13: E_BINARY = 2, ! 14: E_LCONST = 3, ! 15: E_DCONST = 4, ! 16: E_ID = 5, ! 17: E_SYMNODE = 6, ! 18: }; ! 19: ! 20: char *OpName(Op); ! 21: > ! 22: ! 23: class Spy{ ! 24: friend Expr; ! 25: friend Phrase; ! 26: Bls b; ! 27: Spy() {} ! 28: }; ! 29: ! 30: class Expr : private PadRcv { ! 31: >pub ! 32: char pub_filler[4]; ! 33: >pri ! 34: friend Phrase; ! 35: EDisc edisc; ! 36: char *under(Expr*); ! 37: char *left(Expr*); ! 38: char *evalunary(Frame*); ! 39: char *evalbinary(Frame*); ! 40: char *evalindex(Frame*,Expr*,long); ! 41: char *evalcast(); ! 42: char *ascii(Frame*,int limit); ! 43: char *enumformat(); ! 44: char *utypeformat(Frame*, Bls&); ! 45: char *getval(Frame*); ! 46: char *evaldotarrow(Frame*); ! 47: char *evalcall(Frame*); ! 48: char *evalassign(Frame*); ! 49: char *invalidoperands(char* =0); ! 50: char *evaltextcomma(Frame*, Bls&); ! 51: char *doevaltext(Frame*, Bls&); ! 52: Expr *actual(int i); ! 53: char *eval(Frame*); ! 54: char *evalenv(Frame*); ! 55: Index castcarte(); ! 56: char *textunary(); ! 57: char *textbinary(); ! 58: char *evalrange(); ! 59: char *floaterror(); ! 60: char *evalflop(); ! 61: void catchfpe(); ! 62: char *enumid(Frame*); ! 63: static double *fp1; ! 64: static double *fp2; ! 65: static char *fpe; ! 66: > ! 67: PUBLIC(Expr,U_EXPR) ! 68: Expr(); ! 69: Expr(EDisc, Op, Expr*, Expr*, Cslfd, char*, int, Symbol*); ! 70: char *id; ! 71: Symbol *sym; ! 72: Expr *sub1; ! 73: Expr *sub2; ! 74: DType type; ! 75: Cslfd val; ! 76: long addr; ! 77: Spy *spy; ! 78: short bitaddr; ! 79: char op; ! 80: char evalerr; ! 81: char *evaltext(Frame*, Bls&); ! 82: char *text(); ! 83: Index carte(Frame*); ! 84: int format(); ! 85: void setspy(long); ! 86: void reformat(int,int=0); ! 87: }; ! 88: ! 89: Expr *E_Id(char*), ! 90: *E_Sym(Symbol*), ! 91: *E_Unary(Op,Expr*), ! 92: *E_Binary(Expr*,Op,Expr*), ! 93: *E_IConst(long); ! 94: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.