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