PIPS
reduction.h
Go to the documentation of this file.
1 #ifndef _newgen_reduction_included
2 #define _newgen_reduction_included
3 #define _gen_reduction_start 104
4 /*
5  * THIS FILE HAS BEEN AUTOMATICALLY GENERATED BY NEWGEN.
6  *
7  * PLEASE DO NOT MODIFY IT.
8  */
9 
10 #if !defined(_newgen_expression_domain_defined_)
11 #define _newgen_expression_domain_defined_
12 #define EXPRESSION_NEWGEN_DOMAIN (expression_domain)
13 #define expression_NEWGEN_DOMAIN (expression_domain)
15 #endif /* _newgen_expression_domain_defined_ */
16 
17 #if !defined(_newgen_entity_domain_defined_)
18 #define _newgen_entity_domain_defined_
19 #define ENTITY_NEWGEN_DOMAIN (entity_domain)
20 #define entity_NEWGEN_DOMAIN (entity_domain)
21 typedef struct _newgen_struct_entity_ * entity;
22 #endif /* _newgen_entity_domain_defined_ */
23 
24 #define gexpression_domain (_gen_reduction_start+0)
25 #if !defined(_newgen_gexpression_domain_defined_)
26 #define _newgen_gexpression_domain_defined_
27 #define GEXPRESSION_NEWGEN_DOMAIN (gexpression_domain)
28 #define gexpression_NEWGEN_DOMAIN (gexpression_domain)
30 #endif /* _newgen_gexpression_domain_defined_ */
31 
32 #define pattern_domain (_gen_reduction_start+1)
33 #if !defined(_newgen_pattern_domain_defined_)
34 #define _newgen_pattern_domain_defined_
35 #define PATTERN_NEWGEN_DOMAIN (pattern_domain)
36 #define pattern_NEWGEN_DOMAIN (pattern_domain)
38 #endif /* _newgen_pattern_domain_defined_ */
39 
40 #define reduced_loops_domain (_gen_reduction_start+2)
41 #if !defined(_newgen_reduced_loops_domain_defined_)
42 #define _newgen_reduced_loops_domain_defined_
43 #define REDUCED_LOOPS_NEWGEN_DOMAIN (reduced_loops_domain)
44 #define reduced_loops_NEWGEN_DOMAIN (reduced_loops_domain)
46 #endif /* _newgen_reduced_loops_domain_defined_ */
47 
48 #define sexpression_domain (_gen_reduction_start+3)
49 #if !defined(_newgen_sexpression_domain_defined_)
50 #define _newgen_sexpression_domain_defined_
51 #define SEXPRESSION_NEWGEN_DOMAIN (sexpression_domain)
52 #define sexpression_NEWGEN_DOMAIN (sexpression_domain)
54 #endif /* _newgen_sexpression_domain_defined_ */
55 
56 /* GEXPRESSION
57  */
58 #define GEXPRESSION(x) ((gexpression)((x).p))
59 #define gexpression_CAST(x) GEXPRESSION(x)
60 #define GEXPRESSION_CAST(x) GEXPRESSION(x)
61 #define GEXPRESSION_(x) ((x).e)
62 #define GEXPRESSION_TYPE gexpression
63 #define gexpression_TYPE gexpression
64 #define gexpression_undefined ((gexpression)gen_chunk_undefined)
65 #define gexpression_undefined_p(x) ((x)==gexpression_undefined)
66 
68 extern void free_gexpression(gexpression);
72 #define gen_GEXPRESSION_cons gen_gexpression_cons
76 extern void write_gexpression(FILE*, gexpression);
77 extern gexpression read_gexpression(FILE*);
79 
82  expression _gexpression_guard_; /* guard:expression */
83  expression _gexpression_expression_; /* expression:expression */
84 };
85 
86 #define gexpression_domain_number(x) ((x)->_type_)
87 #define gexpression_guard_(x) gexpression_guard(x) /* old hack compatible */
88 #define gexpression_guard(x) ((x)->_gexpression_guard_)
89 #define gexpression_expression_(x) gexpression_expression(x) /* old hack compatible */
90 #define gexpression_expression(x) ((x)->_gexpression_expression_)
91 
92 /* PATTERN
93  */
94 #define PATTERN(x) ((pattern)((x).p))
95 #define pattern_CAST(x) PATTERN(x)
96 #define PATTERN_CAST(x) PATTERN(x)
97 #define PATTERN_(x) ((x).e)
98 #define PATTERN_TYPE pattern
99 #define pattern_TYPE pattern
100 #define pattern_undefined ((pattern)gen_chunk_undefined)
101 #define pattern_undefined_p(x) ((x)==pattern_undefined)
102 
104 extern void free_pattern(pattern);
106 extern bool pattern_consistent_p(pattern);
107 extern bool pattern_defined_p(pattern);
108 #define gen_PATTERN_cons gen_pattern_cons
112 extern void write_pattern(FILE*, pattern);
113 extern pattern read_pattern(FILE*);
115 
118  entity _pattern_variable_; /* variable:entity */
119  expression _pattern_condition_; /* condition:expression */
120  expression _pattern_parameter_; /* parameter:expression */
121  entity _pattern_operator_; /* operator:entity */
122  list _pattern_indices_; /* indices:entity* */
123 };
124 
125 #define pattern_domain_number(x) ((x)->_type_)
126 #define pattern_variable_(x) pattern_variable(x) /* old hack compatible */
127 #define pattern_variable(x) ((x)->_pattern_variable_)
128 #define pattern_condition_(x) pattern_condition(x) /* old hack compatible */
129 #define pattern_condition(x) ((x)->_pattern_condition_)
130 #define pattern_parameter_(x) pattern_parameter(x) /* old hack compatible */
131 #define pattern_parameter(x) ((x)->_pattern_parameter_)
132 #define pattern_operator_(x) pattern_operator(x) /* old hack compatible */
133 #define pattern_operator(x) ((x)->_pattern_operator_)
134 #define pattern_indices_(x) pattern_indices(x) /* old hack compatible */
135 #define pattern_indices(x) ((x)->_pattern_indices_)
136 
137 /* REDUCED_LOOPS
138  */
139 #define REDUCED_LOOPS(x) ((reduced_loops)((x).p))
140 #define reduced_loops_CAST(x) REDUCED_LOOPS(x)
141 #define REDUCED_LOOPS_CAST(x) REDUCED_LOOPS(x)
142 #define REDUCED_LOOPS_(x) ((x).e)
143 #define REDUCED_LOOPS_TYPE reduced_loops
144 #define reduced_loops_TYPE reduced_loops
145 #define reduced_loops_undefined ((reduced_loops)gen_chunk_undefined)
146 #define reduced_loops_undefined_p(x) ((x)==reduced_loops_undefined)
147 
149 extern void free_reduced_loops(reduced_loops);
153 #define gen_REDUCED_LOOPS_cons gen_reduced_loops_cons
157 extern void write_reduced_loops(FILE*, reduced_loops);
158 extern reduced_loops read_reduced_loops(FILE*);
160 
164 };
165 
166 #define reduced_loops_domain_number(x) ((x)->_type_)
167 #define reduced_loops_ordering(x) ((x)->_reduced_loops_holder_)
168 
169 /* SEXPRESSION
170  */
171 #define SEXPRESSION(x) ((sexpression)((x).p))
172 #define sexpression_CAST(x) SEXPRESSION(x)
173 #define SEXPRESSION_CAST(x) SEXPRESSION(x)
174 #define SEXPRESSION_(x) ((x).e)
175 #define SEXPRESSION_TYPE sexpression
176 #define sexpression_TYPE sexpression
177 #define sexpression_undefined ((sexpression)gen_chunk_undefined)
178 #define sexpression_undefined_p(x) ((x)==sexpression_undefined)
179 
181 extern void free_sexpression(sexpression);
185 #define gen_SEXPRESSION_cons gen_sexpression_cons
189 extern void write_sexpression(FILE*, sexpression);
190 extern sexpression read_sexpression(FILE*);
192 
196 };
197 
198 #define sexpression_domain_number(x) ((x)->_type_)
199 #define sexpression_gexpressions(x) ((x)->_sexpression_holder_)
200 
201 #define reduction_spec "\
202 --NEWGEN-START 104\n\
203 import expression from \"ri.newgen\";\n\
204 import entity from \"ri.newgen\";\n\
205 gexpression = guard:expression x expression:expression;\n\
206 pattern = variable:entity x condition:expression x parameter:expression x operator:entity x indices:entity*;\n\
207 reduced_loops = ordering:int*;\n\
208 sexpression = gexpressions:gexpression*;\n\
209 "
210 #endif
void write_gexpression(FILE *, gexpression)
Definition: reduction.c:46
bool sexpression_defined_p(sexpression)
Definition: reduction.c:155
struct _newgen_struct_gexpression_ * gexpression
Definition: reduction.h:29
sexpression read_sexpression(FILE *)
Definition: reduction.c:175
void write_sexpression(FILE *, sexpression)
Definition: reduction.c:172
struct _newgen_struct_pattern_ * pattern
Definition: reduction.h:37
list gen_reduced_loops_cons(reduced_loops, list)
Definition: reduction.c:116
void reduced_loops_non_recursive_free(reduced_loops)
Definition: reduction.c:126
void free_gexpression(gexpression)
Definition: reduction.c:19
void sexpression_assign_contents(sexpression, sexpression)
Definition: reduction.c:161
pattern read_pattern(FILE *)
Definition: reduction.c:91
void write_pattern(FILE *, pattern)
Definition: reduction.c:88
bool gexpression_consistent_p(gexpression)
Definition: reduction.c:25
list gen_pattern_cons(pattern, list)
Definition: reduction.c:74
sexpression make_sexpression(list)
Definition: reduction.c:178
list gen_sexpression_cons(sexpression, list)
Definition: reduction.c:158
void pattern_assign_contents(pattern, pattern)
Definition: reduction.c:77
bool pattern_consistent_p(pattern)
Definition: reduction.c:67
bool gexpression_defined_p(gexpression)
Definition: reduction.c:29
void pattern_non_recursive_free(pattern)
Definition: reduction.c:84
pattern copy_pattern(pattern)
PATTERN.
Definition: reduction.c:58
bool sexpression_consistent_p(sexpression)
Definition: reduction.c:151
gexpression copy_gexpression(gexpression)
GEXPRESSION.
Definition: reduction.c:16
struct _newgen_struct_reduced_loops_ * reduced_loops
Definition: reduction.h:45
bool pattern_defined_p(pattern)
Definition: reduction.c:71
struct _newgen_struct_sexpression_ * sexpression
Definition: reduction.h:53
gexpression check_gexpression(gexpression)
Definition: reduction.c:22
gexpression make_gexpression(expression, expression)
Definition: reduction.c:52
void gexpression_non_recursive_free(gexpression)
Definition: reduction.c:42
bool reduced_loops_consistent_p(reduced_loops)
Definition: reduction.c:109
void write_reduced_loops(FILE *, reduced_loops)
Definition: reduction.c:130
pattern make_pattern(entity, expression, expression, entity, list)
Definition: reduction.c:94
pattern check_pattern(pattern)
Definition: reduction.c:64
reduced_loops read_reduced_loops(FILE *)
Definition: reduction.c:133
void reduced_loops_assign_contents(reduced_loops, reduced_loops)
Definition: reduction.c:119
void free_reduced_loops(reduced_loops)
Definition: reduction.c:103
sexpression check_sexpression(sexpression)
Definition: reduction.c:148
reduced_loops make_reduced_loops(list)
Definition: reduction.c:136
reduced_loops copy_reduced_loops(reduced_loops)
REDUCED_LOOPS.
Definition: reduction.c:100
gexpression read_gexpression(FILE *)
Definition: reduction.c:49
struct _newgen_struct_expression_ * expression
Definition: reduction.h:14
void gexpression_assign_contents(gexpression, gexpression)
Definition: reduction.c:35
void free_pattern(pattern)
Definition: reduction.c:61
list gen_gexpression_cons(gexpression, list)
Definition: reduction.c:32
struct _newgen_struct_entity_ * entity
Definition: reduction.h:21
bool reduced_loops_defined_p(reduced_loops)
Definition: reduction.c:113
void free_sexpression(sexpression)
Definition: reduction.c:145
void sexpression_non_recursive_free(sexpression)
Definition: reduction.c:168
sexpression copy_sexpression(sexpression)
SEXPRESSION.
Definition: reduction.c:142
reduced_loops check_reduced_loops(reduced_loops)
Definition: reduction.c:106
#define intptr_t
Definition: stdint.in.h:294
expression _gexpression_expression_
guard:expression
Definition: reduction.h:83
expression _gexpression_guard_
Definition: reduction.h:82
expression _pattern_parameter_
condition:expression
Definition: reduction.h:120
list _pattern_indices_
operator:entity
Definition: reduction.h:122
entity _pattern_operator_
parameter:expression
Definition: reduction.h:121
expression _pattern_condition_
variable:entity
Definition: reduction.h:119
The structure used to build lists in NewGen.
Definition: newgen_list.h:41