1 #ifndef _newgen_hpf_included
2 #define _newgen_hpf_included
3 #define _gen_hpf_start 118
10 #if !defined(_newgen_entity_domain_defined_)
11 #define _newgen_entity_domain_defined_
12 #define ENTITY_NEWGEN_DOMAIN (entity_domain)
13 #define entity_NEWGEN_DOMAIN (entity_domain)
17 #if !defined(_newgen_expression_domain_defined_)
18 #define _newgen_expression_domain_defined_
19 #define EXPRESSION_NEWGEN_DOMAIN (expression_domain)
20 #define expression_NEWGEN_DOMAIN (expression_domain)
24 #define align_domain (_gen_hpf_start+0)
25 #if !defined(_newgen_align_domain_defined_)
26 #define _newgen_align_domain_defined_
27 #define ALIGN_NEWGEN_DOMAIN (align_domain)
28 #define align_NEWGEN_DOMAIN (align_domain)
32 #define alignment_domain (_gen_hpf_start+1)
33 #if !defined(_newgen_alignment_domain_defined_)
34 #define _newgen_alignment_domain_defined_
35 #define ALIGNMENT_NEWGEN_DOMAIN (alignment_domain)
36 #define alignment_NEWGEN_DOMAIN (alignment_domain)
40 #define distribute_domain (_gen_hpf_start+2)
41 #if !defined(_newgen_distribute_domain_defined_)
42 #define _newgen_distribute_domain_defined_
43 #define DISTRIBUTE_NEWGEN_DOMAIN (distribute_domain)
44 #define distribute_NEWGEN_DOMAIN (distribute_domain)
48 #define distribution_domain (_gen_hpf_start+3)
49 #if !defined(_newgen_distribution_domain_defined_)
50 #define _newgen_distribution_domain_defined_
51 #define DISTRIBUTION_NEWGEN_DOMAIN (distribution_domain)
52 #define distribution_NEWGEN_DOMAIN (distribution_domain)
56 #define style_domain (_gen_hpf_start+4)
57 #if !defined(_newgen_style_domain_defined_)
58 #define _newgen_style_domain_defined_
59 #define STYLE_NEWGEN_DOMAIN (style_domain)
60 #define style_NEWGEN_DOMAIN (style_domain)
66 #define ALIGN(x) ((align)((x).p))
67 #define align_CAST(x) ALIGN(x)
68 #define ALIGN_CAST(x) ALIGN(x)
69 #define ALIGN_(x) ((x).e)
70 #define ALIGN_TYPE align
71 #define align_TYPE align
72 #define align_undefined ((align)gen_chunk_undefined)
73 #define align_undefined_p(x) ((x)==align_undefined)
80 #define gen_ALIGN_cons gen_align_cons
94 #define align_domain_number(x) ((x)->_type_)
95 #define align_alignment_(x) align_alignment(x)
96 #define align_alignment(x) ((x)->_align_alignment_)
97 #define align_template_(x) align_template(x)
98 #define align_template(x) ((x)->_align_template_)
102 #define ALIGNMENT(x) ((alignment)((x).p))
103 #define alignment_CAST(x) ALIGNMENT(x)
104 #define ALIGNMENT_CAST(x) ALIGNMENT(x)
105 #define ALIGNMENT_(x) ((x).e)
106 #define ALIGNMENT_TYPE alignment
107 #define alignment_TYPE alignment
108 #define alignment_undefined ((alignment)gen_chunk_undefined)
109 #define alignment_undefined_p(x) ((x)==alignment_undefined)
116 #define gen_ALIGNMENT_cons gen_alignment_cons
132 #define alignment_domain_number(x) ((x)->_type_)
133 #define alignment_arraydim_(x) alignment_arraydim(x)
134 #define alignment_arraydim(x) ((x)->_alignment_arraydim_)
135 #define alignment_templatedim_(x) alignment_templatedim(x)
136 #define alignment_templatedim(x) ((x)->_alignment_templatedim_)
137 #define alignment_rate_(x) alignment_rate(x)
138 #define alignment_rate(x) ((x)->_alignment_rate_)
139 #define alignment_constant_(x) alignment_constant(x)
140 #define alignment_constant(x) ((x)->_alignment_constant_)
144 #define DISTRIBUTE(x) ((distribute)((x).p))
145 #define distribute_CAST(x) DISTRIBUTE(x)
146 #define DISTRIBUTE_CAST(x) DISTRIBUTE(x)
147 #define DISTRIBUTE_(x) ((x).e)
148 #define DISTRIBUTE_TYPE distribute
149 #define distribute_TYPE distribute
150 #define distribute_undefined ((distribute)gen_chunk_undefined)
151 #define distribute_undefined_p(x) ((x)==distribute_undefined)
158 #define gen_DISTRIBUTE_cons gen_distribute_cons
172 #define distribute_domain_number(x) ((x)->_type_)
173 #define distribute_distribution_(x) distribute_distribution(x)
174 #define distribute_distribution(x) ((x)->_distribute_distribution_)
175 #define distribute_processors_(x) distribute_processors(x)
176 #define distribute_processors(x) ((x)->_distribute_processors_)
180 #define DISTRIBUTION(x) ((distribution)((x).p))
181 #define distribution_CAST(x) DISTRIBUTION(x)
182 #define DISTRIBUTION_CAST(x) DISTRIBUTION(x)
183 #define DISTRIBUTION_(x) ((x).e)
184 #define DISTRIBUTION_TYPE distribution
185 #define distribution_TYPE distribution
186 #define distribution_undefined ((distribution)gen_chunk_undefined)
187 #define distribution_undefined_p(x) ((x)==distribution_undefined)
194 #define gen_DISTRIBUTION_cons gen_distribution_cons
208 #define distribution_domain_number(x) ((x)->_type_)
209 #define distribution_style_(x) distribution_style(x)
210 #define distribution_style(x) ((x)->_distribution_style_)
211 #define distribution_parameter_(x) distribution_parameter(x)
212 #define distribution_parameter(x) ((x)->_distribution_parameter_)
216 #define STYLE(x) ((style)((x).p))
217 #define style_CAST(x) STYLE(x)
218 #define STYLE_CAST(x) STYLE(x)
219 #define STYLE_(x) ((x).e)
220 #define STYLE_TYPE style
221 #define style_TYPE style
222 #define style_undefined ((style)gen_chunk_undefined)
223 #define style_undefined_p(x) ((x)==style_undefined)
230 #define gen_STYLE_cons gen_style_cons
257 #define style_domain_number(x) ((x)->_type_)
258 #define style_tag(x) ((x)->_style_tag__)
259 #define style_none_p(x) (style_tag(x)==is_style_none)
260 #define style_none_(x) style_none(x)
261 #define style_none(x) ((x)->_style_union_._style_none_.u)
262 #define style_block_p(x) (style_tag(x)==is_style_block)
263 #define style_block_(x) style_block(x)
264 #define style_block(x) ((x)->_style_union_._style_block_.u)
265 #define style_cyclic_p(x) (style_tag(x)==is_style_cyclic)
266 #define style_cyclic_(x) style_cyclic(x)
267 #define style_cyclic(x) ((x)->_style_union_._style_cyclic_.u)
270 --NEWGEN-START 118\n\
271 import entity from \"ri.newgen\";\n\
272 import expression from \"ri.newgen\";\n\
273 align = alignment:alignment* x template:entity;\n\
274 alignment = arraydim:int x templatedim:int x rate:expression x constant:expression;\n\
275 distribute = distribution:distribution* x processors:entity;\n\
276 distribution = style:style x parameter:expression;\n\
277 style = none:unit + block:unit + cyclic:unit;\n\
struct _newgen_struct_distribution_ * distribution
void write_distribute(FILE *, distribute)
list gen_distribute_cons(distribute, list)
alignment read_alignment(FILE *)
void distribution_assign_contents(distribution, distribution)
bool style_defined_p(style)
void align_non_recursive_free(align)
style make_style_block(void)
void style_assign_contents(style, style)
bool distribute_consistent_p(distribute)
bool alignment_defined_p(alignment)
distribution copy_distribution(distribution)
DISTRIBUTION.
alignment copy_alignment(alignment)
ALIGNMENT.
void alignment_assign_contents(alignment, alignment)
bool distribution_consistent_p(distribution)
list gen_distribution_cons(distribution, list)
bool style_consistent_p(style)
alignment check_alignment(alignment)
align make_align(list, entity)
bool align_defined_p(align)
bool alignment_consistent_p(alignment)
struct _newgen_struct_align_ * align
void free_distribution(distribution)
struct _newgen_struct_style_ * style
style make_style_cyclic(void)
align copy_align(align)
ALIGN.
void alignment_non_recursive_free(alignment)
alignment make_alignment(intptr_t, intptr_t, expression, expression)
list gen_align_cons(align, list)
distribute check_distribute(distribute)
void style_non_recursive_free(style)
bool align_consistent_p(align)
distribution check_distribution(distribution)
bool distribution_defined_p(distribution)
void distribution_non_recursive_free(distribution)
distribute make_distribute(list, entity)
distribution make_distribution(style, expression)
void write_distribution(FILE *, distribution)
list gen_style_cons(style, list)
void distribute_non_recursive_free(distribute)
style make_style_none(void)
style make_style(enum style_utype, void *)
void write_style(FILE *, style)
distribute copy_distribute(distribute)
DISTRIBUTE.
struct _newgen_struct_distribute_ * distribute
string style_tag_as_string(enum style_utype)
void write_alignment(FILE *, alignment)
void free_alignment(alignment)
list gen_alignment_cons(alignment, list)
distribute read_distribute(FILE *)
struct _newgen_struct_expression_ * expression
distribution read_distribution(FILE *)
void align_assign_contents(align, align)
void distribute_assign_contents(distribute, distribute)
void write_align(FILE *, align)
struct _newgen_struct_entity_ * entity
struct _newgen_struct_alignment_ * alignment
bool distribute_defined_p(distribute)
style copy_style(style)
STYLE.
void free_distribute(distribute)
entity _align_template_
alignment:alignment*
expression _alignment_rate_
templatedim:int
intptr_t _alignment_arraydim_
intptr_t _alignment_templatedim_
arraydim:int
expression _alignment_constant_
rate:expression
list _distribute_distribution_
entity _distribute_processors_
distribution:distribution*
expression _distribution_parameter_
style:style
style _distribution_style_
gen_chunk _style_cyclic_
block:unit
union _newgen_struct_style_::@54 _style_union_
gen_chunk _style_block_
none:unit
enum style_utype _style_tag__
The structure used to build lists in NewGen.
A gen_chunk is used to store every object.