/usr/include/cleri/cleri.h is in libcleri-dev 0.9.4-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | /*
* cleri.h - each cleri element is a cleri object.
*
* author : Jeroen van der Heijden
* email : jeroen@transceptor.technology
* copyright : 2016, Transceptor Technology
*
* changes
* - initial version, 08-03-2016
* - refactoring, 17-06-2017
*/
#ifndef CLERI_OBJECT_H_
#define CLERI_OBJECT_H_
#include <cleri/expecting.h>
#include <cleri/keyword.h>
#include <cleri/sequence.h>
#include <cleri/optional.h>
#include <cleri/choice.h>
#include <cleri/dup.h>
#include <cleri/list.h>
#include <cleri/regex.h>
#include <cleri/repeat.h>
#include <cleri/token.h>
#include <cleri/tokens.h>
#include <cleri/grammar.h>
#include <cleri/prio.h>
#include <cleri/node.h>
#include <cleri/parse.h>
#include <cleri/rule.h>
#include <cleri/this.h>
#include <cleri/ref.h>
/* typedefs */
typedef struct cleri_s cleri_t;
typedef struct cleri_grammar_s cleri_grammar_t;
typedef struct cleri_keyword_s cleri_keyword_t;
typedef struct cleri_sequence_s cleri_sequence_t;
typedef struct cleri_optional_s cleri_optional_t;
typedef struct cleri_choice_s cleri_choice_t;
typedef struct cleri_regex_s cleri_regex_t;
typedef struct cleri_list_s cleri_list_t;
typedef struct cleri_repeat_s cleri_repeat_t;
typedef struct cleri_token_s cleri_token_t;
typedef struct cleri_tokens_s cleri_tokens_t;
typedef struct cleri_prio_s cleri_prio_t;
typedef struct cleri_rule_s cleri_rule_t;
typedef struct cleri_rule_store_s cleri_rule_store_t;
typedef struct cleri_node_s cleri_node_t;
typedef struct cleri_parse_s cleri_parse_t;
typedef struct cleri_ref_s cleri_ref_t;
typedef struct cleri_s cleri_t;
typedef struct cleri_dup_s cleri_dup_t;
typedef union cleri_u cleri_via_t;
typedef void (*cleri_free_object_t)(cleri_t *);
typedef cleri_node_t * (*cleri_parse_object_t)(
cleri_parse_t *,
cleri_node_t *,
cleri_t *,
cleri_rule_store_t *);
/* enums */
typedef enum cleri_e {
CLERI_TP_SEQUENCE,
CLERI_TP_OPTIONAL,
CLERI_TP_CHOICE,
CLERI_TP_LIST,
CLERI_TP_REPEAT,
CLERI_TP_PRIO,
CLERI_TP_RULE,
CLERI_TP_THIS,
/* all items after this will not get children */
CLERI_TP_KEYWORD,
CLERI_TP_TOKEN,
CLERI_TP_TOKENS,
CLERI_TP_REGEX,
CLERI_TP_REF,
CLERI_TP_END_OF_STATEMENT
} cleri_tp;
/* unions */
union cleri_u
{
cleri_keyword_t * keyword;
cleri_sequence_t * sequence;
cleri_optional_t * optional;
cleri_choice_t * choice;
cleri_regex_t * regex;
cleri_list_t * list;
cleri_repeat_t * repeat;
cleri_token_t * token;
cleri_tokens_t * tokens;
cleri_prio_t * prio;
cleri_rule_t * rule;
cleri_dup_t * dup;
void * dummy; /* place holder */
};
/* public functions */
#ifdef __cplusplus
extern "C" {
#endif
cleri_t * cleri_new(
uint32_t gid,
cleri_tp tp,
cleri_free_object_t free_object,
cleri_parse_object_t parse_object);
void cleri_incref(cleri_t * cl_object);
void cleri_decref(cleri_t * cl_object);
int cleri_free(cleri_t * cl_object);
#ifdef __cplusplus
}
#endif
/* fixed end of statement object */
extern cleri_t * CLERI_END_OF_STATEMENT;
/* structs */
#define CLERI_OBJECT_FIELDS \
uint32_t gid; \
uint32_t ref; \
cleri_free_object_t free_object; \
cleri_parse_object_t parse_object; \
cleri_tp tp; \
cleri_via_t via;
struct cleri_s
{
CLERI_OBJECT_FIELDS
};
struct cleri_dup_s
{
CLERI_OBJECT_FIELDS
cleri_t * dup;
};
#endif /* CLERI_OBJECT_H_ */
|