Annotation of coherent/a/usr/bob/korn/lex.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Source input, lexer and parser
        !             3:  */
        !             4: 
        !             5: /* $Header: lex.h,v 3.1 88/11/03 09:13:40 egisin Exp $ */
        !             6: 
        !             7: #define        IDENT   64
        !             8: 
        !             9: typedef struct source Source;
        !            10: struct source {
        !            11:        char   *str;            /* input pointer */
        !            12:        int     type;           /* input type */
        !            13:        union {
        !            14:                char  **strv;   /* string [] */
        !            15:                FILE   *file;   /* file */
        !            16:                struct tbl *tblp; /* alias */
        !            17:        } u;
        !            18:        int     line;           /* line number */
        !            19:        char   *file;           /* input file name */
        !            20:        int     echo;           /* echo input to shlout */
        !            21:        Source *next;           /* stacked source */
        !            22: };
        !            23: 
        !            24: /* Source.type values */
        !            25: #define        SEOF    0               /* input EOF */
        !            26: #define        STTY    1               /* terminal input */
        !            27: #define        SFILE   2               /* file input */
        !            28: #define        SSTRING 4               /* string */
        !            29: #define        SWSTR   3               /* string without \n */
        !            30: #define        SWORDS  5               /* string[] */
        !            31: #define        SWORDSEP 8              /* string[] seperator */
        !            32: #define        SALIAS  6               /* alias expansion */
        !            33: #define        SHIST   7               /* history expansion */
        !            34: 
        !            35: Source *pushs ARGS((int stype));       /* push Source */
        !            36: struct op *compile ARGS((Source *s));  /* compile tree */
        !            37: 
        !            38: /*
        !            39:  * states while lexing word
        !            40:  */
        !            41: #define        SBASE   0               /* outside any lexical constructs */
        !            42: #define        SWORD   6               /* implicit quoting for substitute() */
        !            43: #define        SSQUOTE 1               /* inside '' */
        !            44: #define        SDQUOTE 2               /* inside "" */
        !            45: #define        SBRACE  3               /* inside ${} */
        !            46: #define        SPAREN  4               /* inside $() */
        !            47: #define        SBQUOTE 5               /* inside `` */
        !            48: 
        !            49: Extern int     multiline;      /* \n changed to ; */
        !            50: 
        !            51: typedef union {
        !            52:        char    *cp;
        !            53:        char    **wp;
        !            54:        int     i;
        !            55:        struct  op *o;
        !            56: } YYSTYPE;
        !            57: 
        !            58: #define        IODEFAULT (-1)          /* token for default IO unit */
        !            59: 
        !            60: #define        LWORD   256
        !            61: #define        LOGAND  257
        !            62: #define        LOGOR   258
        !            63: #define        BREAK   259
        !            64: #define        IF      260
        !            65: #define        THEN    261
        !            66: #define        ELSE    262
        !            67: #define        ELIF    263
        !            68: #define        FI      264
        !            69: #define        CASE    265
        !            70: #define        ESAC    266
        !            71: #define        FOR     267
        !            72: #define        WHILE   268
        !            73: #define        UNTIL   269
        !            74: #define        DO      270
        !            75: #define        DONE    271
        !            76: #define        IN      272
        !            77: #define        FUNCTION 273
        !            78: #define        TIME    274
        !            79: #define        REDIR   275
        !            80: #define        MPAREN  276             /* () */
        !            81: #define        YYERRCODE 300
        !            82: 
        !            83: /* flags to yylex */
        !            84: #define        CONTIN  BIT(0)          /* skip new lines to complete command */
        !            85: #define        ONEWORD BIT(1)          /* single word for substitute() */
        !            86: #define        ALIAS   BIT(2)          /* recognize alias */
        !            87: #define        KEYWORD BIT(3)          /* recognize keywords */
        !            88: 
        !            89: #define        SYNTAXERR       zzerr()
        !            90: #define        HERES   10              /* max << in line */
        !            91: 
        !            92: Extern char    line [LINE+1];  /* input line */
        !            93: Extern Source *source;         /* yyparse/yylex source */
        !            94: Extern YYSTYPE yylval;         /* result from yylex */
        !            95: Extern int     yynerrs;
        !            96: Extern struct ioword *heres [HERES], **herep;
        !            97: Extern int     iounit;
        !            98: Extern char    ident [IDENT+1];
        !            99: 
        !           100: extern int     yylex ARGS((int flags));
        !           101: extern void    yyerror ARGS((Const char *msg));
        !           102: 
        !           103: #define        HISTORY 100             /* size of saved history */
        !           104: 
        !           105: extern char   *history [HISTORY];      /* saved commands */
        !           106: extern char  **histptr;        /* last history item */
        !           107: extern int     histpush;       /* number of pushed fc commands */
        !           108: 

unix.superglobalmegacorp.com

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