sed.h

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 88 行

H
88
字号
/* sed.h -- types and constants for the stream editor */

/* data area sizes used by both modules */
#define MAXBUF          8192    /* current line buffer size */
#define MAXAPPENDS      20      /* maximum number of appends */
#define MAXTAGS         9       /* tagged patterns are \1 to \9 */

/* constants for compiled-command representation */
#define EQCMD   0x01    /* = -- print current line number               */
#define ACMD    0x02    /* a -- append text after current line          */
#define BCMD    0x03    /* b -- branch to label                         */
#define CCMD    0x04    /* c -- change current line                     */
#define DCMD    0x05    /* d -- delete all of pattern space             */
#define CDCMD   0x06    /* D -- delete first line of pattern space      */
#define GCMD    0x07    /* g -- copy hold space to pattern space        */
#define CGCMD   0x08    /* G -- append hold space to pattern space      */
#define HCMD    0x09    /* h -- copy pattern space to hold space        */
#define CHCMD   0x0A    /* H -- append hold space to pattern space      */
#define ICMD    0x0B    /* i -- insert text before current line         */
#define LCMD    0x0C    /* l -- print pattern space in escaped form     */
#define NCMD    0x0D    /* n -- get next line into pattern space        */
#define CNCMD   0x0E    /* N -- append next line to pattern space       */
#define PCMD    0x0F    /* p -- print pattern space to output           */
#define CPCMD   0x10    /* P -- print first line of pattern space       */
#define QCMD    0x11    /* q -- exit the stream editor                  */
#define RCMD    0x12    /* r -- read in a file after current line       */
#define SCMD    0x13    /* s -- regular-expression substitute           */
#define TCMD    0x14    /* t -- branch on last substitute successful    */
#define CTCMD   0x15    /* T -- branch on last substitute failed        */
#define WCMD    0x16    /* w -- write pattern space to file             */
#define CWCMD   0x17    /* W -- write first line of pattern space       */
#define XCMD    0x18    /* x -- exhange pattern and hold spaces         */
#define YCMD    0x19    /* y -- transliterate text                      */

typedef struct cmd_t    sedcmd;         /* use this name for declarations */
struct cmd_t {                          /* compiled-command representation */
    char                *addr1;         /* first address for command */
    char                *addr2;         /* second address for command */
    union {
        char            *lhs;           /* s command lhs */
        sedcmd          *link;          /* label link */
    }                   u;
    char                command;        /* command code */
    char                *rhs;           /* s command replacement string */
    FILE                *fout;          /* associated output file descriptor */
    struct {
        unsigned        nthone  :11;    /* if !0 only nth replace */
        unsigned        allbut  : 1;    /* was negation specified? */
        unsigned        global  : 1;    /* was g postfix specified? */
        unsigned        print   : 2;    /* was p postfix specified? */
        unsigned        inrange : 1;    /* in an address range? */
    }                   flags;
};

#define BAD     ((char *) -1)           /* guaranteed not a string ptr */


/* address and regular expression compiled-form markers */
#define STAR    1       /* marker for Kleene star */
#define CCHR    2       /* non-newline character to be matched follows */
#define CDOT    4       /* dot wild-card marker */
#define CCL     6       /* character class follows */
#define CNL     8       /* match line start */
#define CDOL    10      /* match line end */
#define CBRA    12      /* tagged pattern start marker */
#define CKET    14      /* tagged pattern end marker */
#define CBACK   16      /* backslash-digit pair marker */
#define CLNUM   18      /* numeric-address index follows */
#define CEND    20      /* symbol for end-of-source */
#define CEOF    22      /* end-of-field mark */
#define MTYPE   32      /* multiple counts |'d into RE      \{...\}    */

extern void     execute( const char *file ); /* In sedexec.c */

/* The following are in sedcomp.c */
                                        /* main data areas */
extern char             linebuf[];      /* current-line buffer */
extern sedcmd           cmds[];         /* hold compiled commands */
extern long             linenum[];      /* numeric-addresses table */

                                        /* miscellaneous shared variables */
extern int              nflag;          /* -n option flag */
extern int              eargc;          /* scratch copy of argument count */
extern char const       bits[];         /* the bits table */

/* sed.h ends here */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?