Annotation of researchv9/jtools/src/pi/expr.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.