ast2firm: Implement casting from complex to real types.
[cparser] / parser.h
1 /*
2  * This file is part of cparser.
3  * Copyright (C) 2012 Matthias Braun <matze@braunis.de>
4  */
5 #ifndef PARSER_H
6 #define PARSER_H
7
8 #include "ast.h"
9 #include "entity_t.h"
10 #include "type.h"
11
12 typedef struct environment_entry_t environment_entry_t;
13
14 /**
15  * Initialize parser. Should be called once when the program starts
16  */
17 void init_parser(void);
18 /**
19  * Frees resources occupied by parser. Should be called once before the program
20  * exits.
21  */
22 void exit_parser(void);
23
24 /**
25  * Start parsing a new compilation unit
26  */
27 void start_parsing(void);
28
29 /**
30  * Parse input. The source of the input is determined by the lexer module
31  */
32 void parse(void);
33
34 /**
35  * Finish parsing a complete compilation unit and return the AST.
36  */
37 translation_unit_t *finish_parsing(void);
38
39 type_t *revert_automatic_type_conversion(const expression_t *expression);
40
41 entity_t *record_entity(entity_t *entity, bool is_definition);
42
43 /** set default elf visbility */
44 void set_default_visibility(elf_visibility_tag_t visibility);
45
46 #endif