aboutsummaryrefslogtreecommitdiff
path: root/compiler/display.h
blob: 96d997c19604a9ed2f34583222e88a98facb112d (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

/*

  display.h -- Functions to print various structures.

  Copyright © 2011-2015 Samuel Lidén Borell <samuel@kodafritt.se>

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in
  all copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  THE SOFTWARE.

*/


#ifndef LRL_DISPLAY_H
#define LRL_DISPLAY_H

#include "parser.h"

const char *lrl_display_get_ast_name(LRLASTNodeType ast_type);

void lrl_display_loc(const LRLCodeLocation *loc);
void lrl_display_token_type(LRLTokenType type);
void lrl_display_token(const LRLToken *token);
void lrl_display_tokens(const LRLToken *tokens, size_t num_tokens);
void lrl_display_ident(const LRLIdent *ident);
void lrl_display_identref(const LRLIdentRef *identref);
void lrl_display_expr(const LRLASTExpr *expr);

void lrl_display_qualifiers(LRLTypeQualifiers quals);
void lrl_display_type(const LRLASTType *type, int indent);
void lrl_display_typelist(const LRLASTTypeList *list, int indent);
void lrl_display_typenames(const LRLASTDefList *list, int indent);
void lrl_display_defflags(const LRLDefFlags flags);

void lrl_display_def_type(const LRLASTDefType *def, int indent);
void lrl_display_def_data(const LRLASTDefData *def, int indent);
void lrl_display_def_function(const LRLASTDefFunction *def, int indent);
void lrl_display_uses(const LRLASTUses *uses, int indent);
void lrl_display_namespace(const LRLASTNamespace *namespac, int indent);
void lrl_display_interop(const LRLASTInterop *interop, int indent);
void lrl_display_deflist(const LRLASTDefList *list, int indent);
void lrl_display_deflist_interops(const LRLASTDefList *list);

void lrl_display_statement(const LRLASTStmt *stmt, int indent);

void lrl_display_scope(const LRLIdent *scope, int indent);

#endif