Mercurial > pub > dyncall > dyncall
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 = '' |