summaryrefslogtreecommitdiffstats
path: root/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/keywords.h
blob: 3a6f9ea5ac1cdb2580b8fa728fe972fccc75cc5f (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
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
/**
 * @file keywords.h
 * prototypes for keywords.c
 *
 * @author  Ben Gardner
 * @license GPL v2+
 */

#ifndef KEYWORDS_H_INCLUDED
#define KEYWORDS_H_INCLUDED

#include "uncrustify_types.h"

/**
 * Initializes keywords table
 */
void init_keywords(void);

/**
 * Loads the dynamic keywords from a file
 *
 * @param filename  The path to the file to load
 *
 * @retval EX_OK     successfully read keywords from file
 * @retval EX_IOERR  reading keywords file failed
 */
int load_keyword_file(const char *filename);


/**
 * Search first the dynamic and then the static table for a matching keyword
 *
 * @param word  Pointer to the text -- NOT zero terminated
 * @param len   The length of the text
 *
 * @return CT_WORD (no match) or the keyword token
 */
c_token_t find_keyword_type(const char *word, size_t len);


/**
 * Adds a keyword to the list of dynamic keywords
 *
 * @param tag   The tag (string) must be zero terminated
 * @param type  The type, usually CT_TYPE
 */
void add_keyword(const std::string &tag, c_token_t type);


void print_keywords(FILE *pfile);


void clear_keyword_file(void);


//! Returns the pattern that the keyword needs based on the token
pattern_class_e get_token_pattern_class(c_token_t tok);


bool keywords_are_sorted(void);


#endif /* KEYWORDS_H_INCLUDED */