Home | History | Annotate | Download | only in mod_sed
      1  0     jyri /*
      2  0     jyri  * Copyright (c) 2005, 2008 Sun Microsystems, Inc. All Rights Reserved.
      3  0     jyri  * Use is subject to license terms.
      4  0     jyri  *
      5  0     jyri  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
      6  0     jyri  *	  All Rights Reserved
      7  0     jyri  *
      8  0     jyri  * University Copyright- Copyright (c) 1982, 1986, 1988
      9  0     jyri  * The Regents of the University of California
     10  0     jyri  * All Rights Reserved
     11  0     jyri  *
     12  0     jyri  * University Acknowledgment- Portions of this document are derived from
     13  0     jyri  * software developed by the University of California, Berkeley, and its
     14  0     jyri  * contributors.
     15  0     jyri  *
     16  0     jyri  * Licensed under the Apache License, Version 2.0 (the "License");
     17  0     jyri  * you may not use this file except in compliance with the License.
     18  0     jyri  * You may obtain a copy of the License at
     19  0     jyri  *  http://www.apache.org/licenses/LICENSE-2.0.
     20  0     jyri  *
     21  0     jyri  * Unless required by applicable law or agreed to in writing, software
     22  0     jyri  * distributed under the License is distributed on an "AS IS" BASIS,
     23  0     jyri  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
     24  0     jyri  * or implied.
     25  0     jyri  * See the License for the specific language governing permissions and
     26  0     jyri  * limitations under the License.
     27  0     jyri  */
     28  0     jyri 
     29  0     jyri #ifndef _REGEXP_H
     30  0     jyri #define _REGEXP_H
     31  0     jyri 
     32  0     jyri #include "libsed.h"
     33  0     jyri 
     34  0     jyri #ifdef __cplusplus
     35  0     jyri extern "C" {
     36  0     jyri #endif
     37  0     jyri 
     38  0     jyri #define    CBRA    2
     39  0     jyri #define    CCHR    4
     40  0     jyri #define    CDOT    8
     41  0     jyri #define    CCL    12
     42  0     jyri #define    CXCL    16
     43  0     jyri #define    CDOL    20
     44  0     jyri #define    CCEOF    22
     45  0     jyri #define    CKET    24
     46  0     jyri #define    CBACK    36
     47  0     jyri #define    NCCL    40
     48  0     jyri 
     49  0     jyri #define    STAR    01
     50  0     jyri #define    RNGE    03
     51  0     jyri 
     52  0     jyri #define    NBRA    9
     53  0     jyri 
     54  0     jyri #define    PLACE(c)    ep[c >> 3] |= bittab[c & 07]
     55  0     jyri #define    ISTHERE(c)    (ep[c >> 3] & bittab[c & 07])
     56  0     jyri 
     57  0     jyri typedef struct _step_vars_storage {
     58  0     jyri     char    *loc1, *loc2, *locs;
     59  0     jyri     char    *braslist[NBRA];
     60  0     jyri     char    *braelist[NBRA];
     61  0     jyri     int    low;
     62  0     jyri     int    size;
     63  0     jyri } step_vars_storage;
     64  0     jyri 
     65  0     jyri typedef struct _sed_comp_args {
     66  0     jyri     int circf; /* Regular expression starts with ^ */
     67  0     jyri     int nbra; /* braces count */
     68  0     jyri } sed_comp_args;
     69  0     jyri 
     70  0     jyri extern char *sed_compile(sed_commands_t *commands, sed_comp_args *compargs,
     71  0     jyri                          char *ep, char *endbuf, int seof);
     72  0     jyri extern void command_errf(sed_commands_t *commands, const char *fmt, ...);
     73  0     jyri 
     74  0     jyri #define SEDERR_CGMES "command garbled: %s"
     75  0     jyri #define SEDERR_SMMES "Space missing before filename: %s"
     76  0     jyri #define SEDERR_TMMES "too much command text: %s"
     77  0     jyri #define SEDERR_LTLMES "label too long: %s"
     78  0     jyri #define SEDERR_ULMES "undefined label: %s"
     79  0     jyri #define SEDERR_DLMES "duplicate labels: %s"
     80  0     jyri #define SEDERR_TMLMES "too many labels: %s"
     81  0     jyri #define SEDERR_AD0MES "no addresses allowed: %s"
     82  0     jyri #define SEDERR_AD1MES "only one address allowed: %s"
     83  0     jyri #define SEDERR_TOOBIG "suffix too large: %s"
     84  0     jyri #define SEDERR_OOMMES "out of memory"
     85  0     jyri #define SEDERR_COPFMES "cannot open pattern file: %s"
     86  0     jyri #define SEDERR_COIFMES "cannot open input file: %s"
     87  0     jyri #define SEDERR_TMOMES "too many {'s"
     88  0     jyri #define SEDERR_TMCMES "too many }'s"
     89  0     jyri #define SEDERR_NRMES "first RE may not be null"
     90  0     jyri #define SEDERR_UCMES "unrecognized command: %s"
     91  0     jyri #define SEDERR_TMWFMES "too many files in w commands"
     92  0     jyri #define SEDERR_COMES "cannot open %s"
     93  0     jyri #define SEDERR_CCMES "cannot create %s"
     94  0     jyri #define SEDERR_TMLNMES "too many line numbers"
     95  0     jyri #define SEDERR_TMAMES "too many appends after line %lld"
     96  0     jyri #define SEDERR_TMRMES "too many reads after line %lld"
     97  0     jyri #define SEDERR_DOORNG "``\\digit'' out of range: %s"
     98  0     jyri #define SEDERR_EDMOSUB "ending delimiter missing on substitution: %s"
     99  0     jyri #define SEDERR_EDMOSTR "ending delimiter missing on string: %s"
    100  0     jyri #define SEDERR_FNTL "file name too long: %s"
    101  0     jyri #define SEDERR_CLTL "command line too long"
    102  0     jyri #define SEDERR_TSNTSS "transform strings not the same size: %s"
    103  0     jyri #define SEDERR_OLTL "output line too long."
    104  0     jyri #define SEDERR_HSOVERFLOW "hold space overflowed."
    105  4  basantk #define SEDERR_INTERNAL "internal sed error"
    106  0     jyri 
    107  0     jyri #ifdef __cplusplus
    108  0     jyri }
    109  0     jyri #endif
    110  0     jyri 
    111  0     jyri #endif /* _REGEXP_H */
    112