TaPAS  0.2
armoise-tree.h
Go to the documentation of this file.
1 /*
2  * armoise-tree.h -- Data structure encoding the syntactic tree for ARMOISE
3  * Copyright (C) 2007 J. Leroux, G. Point, LaBRI, CNRS UMR 5800,
4  * Universite Bordeaux I
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19  * 02110-1301 USA
20  */
21 /*
22  * $Author: point $
23  * $Revision: 1.6 $
24  * $Date: 2008/01/24 16:20:53 $
25  * $Id: armoise-tree.h,v 1.6 2008/01/24 16:20:53 point Exp $
26  */
27 
35 #ifndef __ARMOISE_TREE_H__
36 # define __ARMOISE_TREE_H__
37 
38 # include <ccl/ccl-log.h>
39 # include <ccl/ccl-parse-tree.h>
40 
41 BEGIN_C_DECLS
42 
51 
52 enum armoise_label {
53  ARMOISE_TREE_DEFINITION,
54  ARMOISE_TREE_ID_TUPLE,
55  ARMOISE_TREE_PREDICATE_TUPLE,
56  ARMOISE_TREE_PREDICATE,
57  ARMOISE_TREE_PREDICATE_CONTEXT,
58  ARMOISE_TREE_UNION,
59  ARMOISE_TREE_DIFFERENCE,
60  ARMOISE_TREE_XOR,
61  ARMOISE_TREE_INTERSECTION,
62  ARMOISE_TREE_COMPLEMENT,
63  ARMOISE_TREE_PLUS,
64  ARMOISE_TREE_MINUS,
65  ARMOISE_TREE_MOD,
66  ARMOISE_TREE_MUL,
67  ARMOISE_TREE_DIV,
68  ARMOISE_TREE_NEG,
69  ARMOISE_TREE_LIST_ELEMENT,
70  ARMOISE_TREE_CARTESIAN_PRODUCT,
71  ARMOISE_TREE_POWER,
72  ARMOISE_TREE_SET,
73  ARMOISE_TREE_ENUMERATED_SET,
74  ARMOISE_TREE_VECTOR,
75  ARMOISE_TREE_EXISTS,
76  ARMOISE_TREE_FORALL,
77  ARMOISE_TREE_EQ,
78  ARMOISE_TREE_NEQ,
79  ARMOISE_TREE_LT,
80  ARMOISE_TREE_GT,
81  ARMOISE_TREE_LEQ,
82  ARMOISE_TREE_GEQ,
83  ARMOISE_TREE_CALL,
84  ARMOISE_TREE_OR,
85  ARMOISE_TREE_AND,
86  ARMOISE_TREE_NOT,
87  ARMOISE_TREE_EQUIV,
88  ARMOISE_TREE_IMPLY,
89  ARMOISE_TREE_IN,
90  ARMOISE_TREE_TRUE,
91  ARMOISE_TREE_FALSE,
92  ARMOISE_TREE_NATURALS,
93  ARMOISE_TREE_INTEGERS,
94  ARMOISE_TREE_POSITIVES,
95  ARMOISE_TREE_REALS,
96  ARMOISE_TREE_EMPTY,
97 
98  ARMOISE_TREE_INTEGER,
99  ARMOISE_TREE_IDENTIFIER,
100 
101  ARMOISE_TREE_PAREN,
102 };
103 
104 extern void
105 armoise_tree_log (ccl_log_type log, armoise_tree *t);
106 
107 # define armoise_tree_print(t) armoise_tree_log (CCL_LOG_DISPLAY, t)
108 
109 END_C_DECLS
110 
111 #endif /* ! __ARMOISE_TREE_H__ */
Structure encoding of a parse-tree node.
ccl_parse_tree armoise_tree
The data-structure encoding the syntactic tree of the ARMOISE language.
Definition: armoise-tree.h:50
enum ccl_log_type_enum ccl_log_type
Enum that indicates which kind of message has to be displayed. Each kind of message can be displayed ...
Definition: ccl-log.h:50
A generic parse tree.
Message displayer.