This file is indexed.

/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_ */