aboutsummaryrefslogtreecommitdiff
path: root/definitions.h
blob: a171de5181b6a38ef63ac0c0e80b9740de1ce40a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//
// definitions.h - Header file defining pattern rules
//
#ifndef DEFINITIONS__H
#define DEFINITIONS__H

#include "files.h"
#include "pattern.h"

//
// Pattern matching rule definition(s)
//
typedef struct def_s {
    size_t id;
    size_t namelen;
    const char *name;
    pat_t *pat;
    struct def_s *next;
} def_t;

__attribute__((nonnull(3,4), returns_nonnull))
def_t *with_def(def_t *defs, size_t namelen, const char *name, pat_t *pat);
__attribute__((nonnull(2)))
def_t *load_grammar(def_t *defs, file_t *f);
__attribute__((pure, nonnull(3)))
def_t *lookup(def_t *defs, size_t namelen, const char *name);
__attribute__((nonnull(1)))
def_t *free_defs(def_t *defs, def_t *stop);

#endif
// vim: ts=4 sw=0 et cino=L2,l1,(0,W4,m1,\:0