You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.7 KiB
76 lines
1.7 KiB
/**
|
|
* @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"
|
|
|
|
|
|
/**
|
|
* 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.
|
|
*/
|
|
void do_symbol_check(Chunk *prev, Chunk *pc, Chunk *next);
|
|
|
|
|
|
#endif /* COMBINE_H_INCLUDED */
|