bp/pattern.h

36 lines
979 B
C
Raw Normal View History

//
2021-01-15 19:32:37 -08:00
// pattern.h - Header file for BP pattern compilation.
//
2021-01-15 19:32:37 -08:00
#ifndef PATTERN__H
#define PATTERN__H
2020-09-11 01:28:06 -07:00
#include "files.h"
#include "types.h"
2020-09-11 01:28:06 -07:00
2021-09-23 14:38:46 -07:00
typedef struct {
bool success;
union {
pat_t *pat;
struct {
const char *start, *end, *msg;
} error;
} value;
} maybe_pat_t;
__attribute__((returns_nonnull, nonnull(1,2)))
2021-05-20 15:27:24 -07:00
pat_t *new_pat(file_t *f, const char *start, const char *end, size_t minlen, ssize_t maxlen, enum pattype_e type);
__attribute__((nonnull))
2021-09-23 14:38:46 -07:00
maybe_pat_t bp_stringpattern(file_t *f, const char *str);
__attribute__((nonnull(1,2)))
2021-09-23 14:38:46 -07:00
maybe_pat_t bp_replacement(file_t *f, pat_t *replacepat, const char *replacement);
__attribute__((nonnull(1)))
pat_t *chain_together(file_t *f, pat_t *first, pat_t *second);
__attribute__((nonnull(1)))
pat_t *either_pat(file_t *f, pat_t *first, pat_t *second);
__attribute__((nonnull))
2021-09-23 14:38:46 -07:00
maybe_pat_t bp_pattern(file_t *f, const char *str);
2020-09-11 01:28:06 -07:00
#endif
// vim: ts=4 sw=0 et cino=L2,l1,(0,W4,m1,\:0