1 #ifndef _newgen_reduction_included
2 #define _newgen_reduction_included
3 #define _gen_reduction_start 104
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)
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)
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)
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)
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)
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)
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)
72 #define gen_GEXPRESSION_cons gen_gexpression_cons
86 #define gexpression_domain_number(x) ((x)->_type_)
87 #define gexpression_guard_(x) gexpression_guard(x)
88 #define gexpression_guard(x) ((x)->_gexpression_guard_)
89 #define gexpression_expression_(x) gexpression_expression(x)
90 #define gexpression_expression(x) ((x)->_gexpression_expression_)
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)
108 #define gen_PATTERN_cons gen_pattern_cons
125 #define pattern_domain_number(x) ((x)->_type_)
126 #define pattern_variable_(x) pattern_variable(x)
127 #define pattern_variable(x) ((x)->_pattern_variable_)
128 #define pattern_condition_(x) pattern_condition(x)
129 #define pattern_condition(x) ((x)->_pattern_condition_)
130 #define pattern_parameter_(x) pattern_parameter(x)
131 #define pattern_parameter(x) ((x)->_pattern_parameter_)
132 #define pattern_operator_(x) pattern_operator(x)
133 #define pattern_operator(x) ((x)->_pattern_operator_)
134 #define pattern_indices_(x) pattern_indices(x)
135 #define pattern_indices(x) ((x)->_pattern_indices_)
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)
153 #define gen_REDUCED_LOOPS_cons gen_reduced_loops_cons
166 #define reduced_loops_domain_number(x) ((x)->_type_)
167 #define reduced_loops_ordering(x) ((x)->_reduced_loops_holder_)
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)
185 #define gen_SEXPRESSION_cons gen_sexpression_cons
198 #define sexpression_domain_number(x) ((x)->_type_)
199 #define sexpression_gexpressions(x) ((x)->_sexpression_holder_)
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\
void write_gexpression(FILE *, gexpression)
bool sexpression_defined_p(sexpression)
struct _newgen_struct_gexpression_ * gexpression
sexpression read_sexpression(FILE *)
void write_sexpression(FILE *, sexpression)
struct _newgen_struct_pattern_ * pattern
list gen_reduced_loops_cons(reduced_loops, list)
void reduced_loops_non_recursive_free(reduced_loops)
void free_gexpression(gexpression)
void sexpression_assign_contents(sexpression, sexpression)
pattern read_pattern(FILE *)
void write_pattern(FILE *, pattern)
bool gexpression_consistent_p(gexpression)
list gen_pattern_cons(pattern, list)
sexpression make_sexpression(list)
list gen_sexpression_cons(sexpression, list)
void pattern_assign_contents(pattern, pattern)
bool pattern_consistent_p(pattern)
bool gexpression_defined_p(gexpression)
void pattern_non_recursive_free(pattern)
pattern copy_pattern(pattern)
PATTERN.
bool sexpression_consistent_p(sexpression)
gexpression copy_gexpression(gexpression)
GEXPRESSION.
struct _newgen_struct_reduced_loops_ * reduced_loops
bool pattern_defined_p(pattern)
struct _newgen_struct_sexpression_ * sexpression
gexpression check_gexpression(gexpression)
gexpression make_gexpression(expression, expression)
void gexpression_non_recursive_free(gexpression)
bool reduced_loops_consistent_p(reduced_loops)
void write_reduced_loops(FILE *, reduced_loops)
pattern make_pattern(entity, expression, expression, entity, list)
pattern check_pattern(pattern)
reduced_loops read_reduced_loops(FILE *)
void reduced_loops_assign_contents(reduced_loops, reduced_loops)
void free_reduced_loops(reduced_loops)
sexpression check_sexpression(sexpression)
reduced_loops make_reduced_loops(list)
reduced_loops copy_reduced_loops(reduced_loops)
REDUCED_LOOPS.
gexpression read_gexpression(FILE *)
struct _newgen_struct_expression_ * expression
void gexpression_assign_contents(gexpression, gexpression)
void free_pattern(pattern)
list gen_gexpression_cons(gexpression, list)
struct _newgen_struct_entity_ * entity
bool reduced_loops_defined_p(reduced_loops)
void free_sexpression(sexpression)
void sexpression_non_recursive_free(sexpression)
sexpression copy_sexpression(sexpression)
SEXPRESSION.
reduced_loops check_reduced_loops(reduced_loops)
expression _gexpression_expression_
guard:expression
expression _gexpression_guard_
expression _pattern_parameter_
condition:expression
list _pattern_indices_
operator:entity
entity _pattern_variable_
entity _pattern_operator_
parameter:expression
expression _pattern_condition_
variable:entity
list _reduced_loops_holder_
list _sexpression_holder_
The structure used to build lists in NewGen.