Annotation of researchv9/jtools/src/pi/expr.h, revision 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.