Annotation of researchv9/jtools/src/sam/parse.h, revision 1.1

1.1     ! root        1: typedef struct Addr Addr;
        !             2: struct Addr{
        !             3:        char    type;   /* # (char addr), l (line addr), / ? . $ + - , ; */
        !             4:        union{
        !             5:                Regexp  *aure;
        !             6:                Addr    *auprev;        /* left side of , and ; */
        !             7:        }au;
        !             8:        int     num;
        !             9:        Addr    *next;                  /* or right side of , and ; */
        !            10: };
        !            11: #define        are     au.aure
        !            12: #define        aprev   au.auprev
        !            13: typedef struct Cmd Cmd;
        !            14: struct Cmd{
        !            15:        Addr    *addr;                  /* address (range of text) */
        !            16:        Regexp  *re;                    /* regular expression for e.g. 'x' */
        !            17:        union{
        !            18:                Cmd     *cucmd;         /* target of x, g, {, etc. */
        !            19:                String  *cutext;        /* text of a, c, i; rhs of s */
        !            20:                Addr    *cuaddr;        /* address for m, t */
        !            21:        }cu;
        !            22:        Cmd     *next;                  /* pointer to next element in {} */
        !            23:        short   num;
        !            24:        ushort  flag;                   /* whatever */
        !            25:        ushort  cmdc;                   /* command character; 'x' etc. */
        !            26: };
        !            27: #define        ccmd    cu.cucmd
        !            28: #define        ctext   cu.cutext
        !            29: #define        caddr   cu.cuaddr
        !            30: extern struct cmdtab{
        !            31:        ushort  cmdc;           /* command character */
        !            32:        uchar   text;           /* takes a textual argument? */
        !            33:        uchar   regexp;         /* takes a regular expression? */
        !            34:        uchar   addr;           /* takes an address (m or t)? */
        !            35:        uchar   defcmd;         /* default command; 0==>none */
        !            36:        uchar   defaddr;        /* default address */
        !            37:        uchar   count;          /* takes a count e.g. s2/// */
        !            38:        char    *token;         /* takes text terminated by one of these */
        !            39:        int     (*fn)();        /* function to call with parse tree */
        !            40: }cmdtab[];
        !            41: enum Defaddr{  /* default addresses */
        !            42:        aNo,
        !            43:        aDot,
        !            44:        aAll,
        !            45: };
        !            46: extern Regexp  *getregexp();
        !            47: extern Addr    *newaddr();

unix.superglobalmegacorp.com

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