1 #ifndef _newgen_freia_spoc_private_included
2 #define _newgen_freia_spoc_private_included
3 #define _gen_freia_spoc_private_start 123
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_statement_domain_defined_)
18 #define _newgen_statement_domain_defined_
19 #define STATEMENT_NEWGEN_DOMAIN (statement_domain)
20 #define statement_NEWGEN_DOMAIN (statement_domain)
24 #define dag_domain (_gen_freia_spoc_private_start+0)
25 #if !defined(_newgen_dag_domain_defined_)
26 #define _newgen_dag_domain_defined_
27 #define DAG_NEWGEN_DOMAIN (dag_domain)
28 #define dag_NEWGEN_DOMAIN (dag_domain)
32 #define dagvtx_domain (_gen_freia_spoc_private_start+1)
33 #if !defined(_newgen_dagvtx_domain_defined_)
34 #define _newgen_dagvtx_domain_defined_
35 #define DAGVTX_NEWGEN_DOMAIN (dagvtx_domain)
36 #define dagvtx_NEWGEN_DOMAIN (dagvtx_domain)
40 #define pstatement_domain (_gen_freia_spoc_private_start+2)
41 #if !defined(_newgen_pstatement_domain_defined_)
42 #define _newgen_pstatement_domain_defined_
43 #define PSTATEMENT_NEWGEN_DOMAIN (pstatement_domain)
44 #define pstatement_NEWGEN_DOMAIN (pstatement_domain)
48 #define vtxcontent_domain (_gen_freia_spoc_private_start+3)
49 #if !defined(_newgen_vtxcontent_domain_defined_)
50 #define _newgen_vtxcontent_domain_defined_
51 #define VTXCONTENT_NEWGEN_DOMAIN (vtxcontent_domain)
52 #define vtxcontent_NEWGEN_DOMAIN (vtxcontent_domain)
58 #define DAG(x) ((dag)((x).p))
59 #define dag_CAST(x) DAG(x)
60 #define DAG_CAST(x) DAG(x)
61 #define DAG_(x) ((x).e)
64 #define dag_undefined ((dag)gen_chunk_undefined)
65 #define dag_undefined_p(x) ((x)==dag_undefined)
72 #define gen_DAG_cons gen_dag_cons
87 #define dag_domain_number(x) ((x)->_type_)
88 #define dag_inputs_(x) dag_inputs(x)
89 #define dag_inputs(x) ((x)->_dag_inputs_)
90 #define dag_outputs_(x) dag_outputs(x)
91 #define dag_outputs(x) ((x)->_dag_outputs_)
92 #define dag_vertices_(x) dag_vertices(x)
93 #define dag_vertices(x) ((x)->_dag_vertices_)
97 #define DAGVTX(x) ((dagvtx)((x).p))
98 #define dagvtx_CAST(x) DAGVTX(x)
99 #define DAGVTX_CAST(x) DAGVTX(x)
100 #define DAGVTX_(x) ((x).e)
101 #define DAGVTX_TYPE dagvtx
102 #define dagvtx_TYPE dagvtx
103 #define dagvtx_undefined ((dagvtx)gen_chunk_undefined)
104 #define dagvtx_undefined_p(x) ((x)==dagvtx_undefined)
111 #define gen_DAGVTX_cons gen_dagvtx_cons
125 #define dagvtx_domain_number(x) ((x)->_type_)
126 #define dagvtx_content_(x) dagvtx_content(x)
127 #define dagvtx_content(x) ((x)->_dagvtx_content_)
128 #define dagvtx_succs_(x) dagvtx_succs(x)
129 #define dagvtx_succs(x) ((x)->_dagvtx_succs_)
133 #define PSTATEMENT(x) ((pstatement)((x).p))
134 #define pstatement_CAST(x) PSTATEMENT(x)
135 #define PSTATEMENT_CAST(x) PSTATEMENT(x)
136 #define PSTATEMENT_(x) ((x).e)
137 #define PSTATEMENT_TYPE pstatement
138 #define pstatement_TYPE pstatement
139 #define pstatement_undefined ((pstatement)gen_chunk_undefined)
140 #define pstatement_undefined_p(x) ((x)==pstatement_undefined)
147 #define gen_PSTATEMENT_cons gen_pstatement_cons
171 #define pstatement_domain_number(x) ((x)->_type_)
172 #define pstatement_tag(x) ((x)->_pstatement_tag__)
173 #define pstatement_statement_p(x) (pstatement_tag(x)==is_pstatement_statement)
174 #define pstatement_statement_(x) pstatement_statement(x)
175 #define pstatement_statement(x) ((x)->_pstatement_union_._pstatement_statement_)
176 #define pstatement_empty_p(x) (pstatement_tag(x)==is_pstatement_empty)
177 #define pstatement_empty_(x) pstatement_empty(x)
178 #define pstatement_empty(x) ((x)->_pstatement_union_._pstatement_empty_.u)
182 #define VTXCONTENT(x) ((vtxcontent)((x).p))
183 #define vtxcontent_CAST(x) VTXCONTENT(x)
184 #define VTXCONTENT_CAST(x) VTXCONTENT(x)
185 #define VTXCONTENT_(x) ((x).e)
186 #define VTXCONTENT_TYPE vtxcontent
187 #define vtxcontent_TYPE vtxcontent
188 #define vtxcontent_undefined ((vtxcontent)gen_chunk_undefined)
189 #define vtxcontent_undefined_p(x) ((x)==vtxcontent_undefined)
196 #define gen_VTXCONTENT_cons gen_vtxcontent_cons
213 #define vtxcontent_domain_number(x) ((x)->_type_)
214 #define vtxcontent_optype_(x) vtxcontent_optype(x)
215 #define vtxcontent_optype(x) ((x)->_vtxcontent_optype_)
216 #define vtxcontent_opid_(x) vtxcontent_opid(x)
217 #define vtxcontent_opid(x) ((x)->_vtxcontent_opid_)
218 #define vtxcontent_source_(x) vtxcontent_source(x)
219 #define vtxcontent_source(x) ((x)->_vtxcontent_source_)
220 #define vtxcontent_inputs_(x) vtxcontent_inputs(x)
221 #define vtxcontent_inputs(x) ((x)->_vtxcontent_inputs_)
222 #define vtxcontent_out_(x) vtxcontent_out(x)
223 #define vtxcontent_out(x) ((x)->_vtxcontent_out_)
225 #define freia_spoc_private_spec "\
226 --NEWGEN-START 123\n\
227 import entity from \"ri.newgen\";\n\
228 import statement from \"ri.newgen\";\n\
229 dag = inputs:dagvtx* x outputs:dagvtx* x vertices:dagvtx*;\n\
230 dagvtx = content:vtxcontent x succs:dagvtx*;\n\
231 pstatement = persistant statement:statement + empty:unit;\n\
232 vtxcontent = optype:int x opid:int x source:pstatement x inputs:entity* x out:entity;\n\
vtxcontent check_vtxcontent(vtxcontent)
void dag_non_recursive_free(dag)
pstatement check_pstatement(pstatement)
pstatement make_pstatement_empty(void)
struct _newgen_struct_statement_ * statement
pstatement make_pstatement(enum pstatement_utype, void *)
dagvtx copy_dagvtx(dagvtx)
DAGVTX.
pstatement copy_pstatement(pstatement)
PSTATEMENT.
void vtxcontent_non_recursive_free(vtxcontent)
dagvtx make_dagvtx(vtxcontent, list)
vtxcontent make_vtxcontent(intptr_t, intptr_t, pstatement, list, entity)
bool pstatement_consistent_p(pstatement)
@ is_pstatement_statement
void free_vtxcontent(vtxcontent)
vtxcontent read_vtxcontent(FILE *)
vtxcontent copy_vtxcontent(vtxcontent)
VTXCONTENT.
string pstatement_tag_as_string(enum pstatement_utype)
struct _newgen_struct_pstatement_ * pstatement
void dag_assign_contents(dag, dag)
list gen_dagvtx_cons(dagvtx, list)
dag make_dag(list, list, list)
void vtxcontent_assign_contents(vtxcontent, vtxcontent)
void dagvtx_non_recursive_free(dagvtx)
bool pstatement_defined_p(pstatement)
void write_pstatement(FILE *, pstatement)
struct _newgen_struct_dagvtx_ * dagvtx
bool vtxcontent_defined_p(vtxcontent)
bool dagvtx_defined_p(dagvtx)
pstatement read_pstatement(FILE *)
list gen_pstatement_cons(pstatement, list)
dagvtx read_dagvtx(FILE *)
list gen_dag_cons(dag, list)
void dagvtx_assign_contents(dagvtx, dagvtx)
void write_dagvtx(FILE *, dagvtx)
bool vtxcontent_consistent_p(vtxcontent)
pstatement make_pstatement_statement(statement)
void free_pstatement(pstatement)
void write_vtxcontent(FILE *, vtxcontent)
dagvtx check_dagvtx(dagvtx)
bool dagvtx_consistent_p(dagvtx)
void write_dag(FILE *, dag)
struct _newgen_struct_entity_ * entity
void pstatement_non_recursive_free(pstatement)
void pstatement_assign_contents(pstatement, pstatement)
struct _newgen_struct_vtxcontent_ * vtxcontent
bool dag_consistent_p(dag)
list gen_vtxcontent_cons(vtxcontent, list)
struct _newgen_struct_dag_ * dag
list _dag_outputs_
inputs:dagvtx*
list _dag_vertices_
outputs:dagvtx*
vtxcontent _dagvtx_content_
list _dagvtx_succs_
content:vtxcontent
enum pstatement_utype _pstatement_tag__
union _newgen_struct_pstatement_::@53 _pstatement_union_
statement _pstatement_statement_
gen_chunk _pstatement_empty_
statement:statement
list _vtxcontent_inputs_
source:pstatement
pstatement _vtxcontent_source_
opid:int
intptr_t _vtxcontent_opid_
optype:int
intptr_t _vtxcontent_optype_
entity _vtxcontent_out_
inputs:entity*
The structure used to build lists in NewGen.
A gen_chunk is used to store every object.