A first attempt at definitions.
This commit is contained in:
parent
b70229d727
commit
15482c1fdd
|
|
@ -0,0 +1,55 @@
|
|||
import sys
|
||||
|
||||
#list(open('../defs.txt'))
|
||||
defs = '''\
|
||||
abs dup 0 < [] [neg] branch
|
||||
anamorphism [pop []] swap [dip swons] genrec
|
||||
app1 grba infrst
|
||||
app2 [grba swap grba swap] dip [infrst] cons ii
|
||||
app3 3 appN
|
||||
appN [grabN] codi map reverse disenstacken
|
||||
at drop first
|
||||
average [sum] [size] cleave /
|
||||
b [i] dip i
|
||||
binary unary popd
|
||||
ccccons ccons ccons
|
||||
ccons cons cons
|
||||
clear [] swaack pop
|
||||
cleave fork popdd
|
||||
clop cleave popdd
|
||||
cmp [[>] swap] dipd [ifte] ccons [=] swons ifte
|
||||
codi cons dip
|
||||
codireco codi reco
|
||||
dinfrirst dip infrst
|
||||
dipd [dip] codi
|
||||
disenstacken ? [uncons ?] loop pop'''.splitlines()
|
||||
|
||||
|
||||
for line in defs:
|
||||
name, body = line.split(None, 1)
|
||||
print(f'{name}, def_{name}')
|
||||
|
||||
print()
|
||||
print()
|
||||
print('void')
|
||||
print('init_defs(void)')
|
||||
print('{')
|
||||
for line in defs:
|
||||
name, body = line.split(None, 1)
|
||||
print(f'\tdef_{name}_body = text_to_expression({repr(body)});')
|
||||
print('}')
|
||||
|
||||
|
||||
|
||||
print()
|
||||
print()
|
||||
for line in defs:
|
||||
name, body = line.split(None, 1)
|
||||
print(f'void def_{name}(JoyListPtr stack, JoyListPtr expression)')
|
||||
|
||||
print()
|
||||
print()
|
||||
for line in defs:
|
||||
name, body = line.split(None, 1)
|
||||
print(f'void def_{name}(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) {{ push_quote(def_{name}_body, expression); }}')
|
||||
|
||||
Loading…
Reference in New Issue