blob: 5cab34948c6316a6f9e51d68da6b9dfbba59ff12 (
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
/**
* @file combine.h
* prototypes for combine.cpp
*
* @author Ben Gardner
* @license GPL v2+
*/
#ifndef COMBINE_H_INCLUDED
#define COMBINE_H_INCLUDED
#include "chunk.h"
#include "uncrustify_types.h"
void mark_question_colon();
/**
* Change CT_INCDEC_AFTER + WORD to CT_INCDEC_BEFORE
* Change number/word + CT_ADDR to CT_ARITH
* Change number/word + CT_STAR to CT_ARITH
* Change number/word + CT_NEG to CT_ARITH
* Change word + ( to a CT_FUNCTION
* Change struct/union/enum + CT_WORD => CT_TYPE
* Force parens on return.
*
* TODO: This could be done earlier.
*
* Patterns detected:
* STRUCT/ENUM/UNION + WORD :: WORD => TYPE
* WORD + '(' :: WORD => FUNCTION
*/
void fix_symbols();
/**
* Examines the whole file and changes CT_COLON to
* CT_Q_COLON, CT_LABEL_COLON, or CT_CASE_COLON.
* It also changes the CT_WORD before CT_LABEL_COLON into CT_LABEL.
*/
void combine_labels();
//! help function for mark_variable_definition...
bool go_on(Chunk *pc, Chunk *start);
//! Sets the parent for comments.
void mark_comments();
void make_type(Chunk *pc);
/**
* Sets the parent of the open paren/brace/square/angle and the closing.
* Note - it is assumed that pc really does point to an open item and the
* close must be open + 1.
*
* @param start The open paren
* @param parent The type to assign as the parent
*
* @return The chunk after the close paren
*/
Chunk *set_paren_parent(Chunk *start, E_Token parent);
/**
* This is called on every chunk.
* First on all non-preprocessor chunks and then on each preprocessor chunk.
* It does all the detection and classifying.
* This is only called by fix_symbols.
* The three parameters never get the value nullptr.
* it is not necessary to test.
*/
void do_symbol_check(Chunk *prev, Chunk *pc, Chunk *next);
#endif /* COMBINE_H_INCLUDED */
|