comparison test/common/mk-cases.lua @ 522:f7fec6699e21

- test code generator code: var abstraction
author Tassilo Philipp
date Wed, 13 Apr 2022 10:19:49 +0200
parents a2de1d0a73f3
children
comparison
equal deleted inserted replaced
521:a2de1d0a73f3 522:f7fec6699e21
27 -- aggrs: (sequential) idx => aggr-sig 27 -- aggrs: (sequential) idx => aggr-sig
28 -- seen_aggrs: aggr-sig => {{type0, name0, ...}, aggr_name} 28 -- seen_aggrs: aggr-sig => {{type0, name0, ...}, aggr_name}
29 -- packing: 0=off, pos values set fixed packing, neg values set a random 29 -- packing: 0=off, pos values set fixed packing, neg values set a random
30 -- power-of-2 packing per aggregate, within [1,abs(aggrpacking)] 30 -- power-of-2 packing per aggregate, within [1,abs(aggrpacking)]
31 -- packing_seed: seed for random packing (if used) 31 -- packing_seed: seed for random packing (if used)
32 -- cpsimple: whether or not to copy aggregates via '=' or field by field
32 function mkaggrdefs(aggrs, seen_aggrs, packing, packingseed) 33 function mkaggrdefs(aggrs, seen_aggrs, packing, packingseed)
33 local agg_defs = { } 34 local agg_defs = { }
34 local agg_sizes = { } 35 local agg_sizes = { }
35 local agg_sigs = { } 36 local agg_sigs = { }
36 local agg_names = { } 37 local agg_names = { }
69 'void f_cp'..an..'('..at..' *x, const '..at..' *y) { ', 70 'void f_cp'..an..'('..at..' *x, const '..at..' *y) { ',
70 'int f_cmp'..an..'(const '..at..' *x, const '..at..' *y) { return ' 71 'int f_cmp'..an..'(const '..at..' *x, const '..at..' *y) { return '
71 } 72 }
72 o = { '=', '==', 'f_cp', 'f_cmp', '; ', ' && ', '', '1' } 73 o = { '=', '==', 'f_cp', 'f_cmp', '; ', ' && ', '', '1' }
73 for t = 1, 2 do 74 for t = 1, 2 do
74 if t ~= 1 or aggrcpsimple == false then 75 if t ~= 1 or cpsimple == false then
75 aggr_def = aggr_def..s[t] 76 aggr_def = aggr_def..s[t]
76 local b = {} 77 local b = {}
77 for i = 1, #am, 2 do 78 for i = 1, #am, 2 do
78 local mn, mc = split_array_decl(am[i+1]) -- aggr member name and (array) count 79 local mn, mc = split_array_decl(am[i+1]) -- aggr member name and (array) count
79 local fmt = '' 80 local fmt = ''