Patsopt can be used to turn ATS source code into a serialized
representation in JSON.
For instance, the command-line below:
patsopt --jsonize-2 ${PATSHOME}/doc/EXAMPLE/INTRO/acker1.dats
generates the JSON text included at the end of this message. The text can
be readily
parsed. An example of doing so can be found in the UTFPL0 directory:
In ATS, level-2 syntax is used after fixities (infix, prefix and postfix)
and bindings are resolved.
If you ever want to design/implement a language, then you can use this tool
to get going quickly.
This is especially so if you want to play with fancy types as the concrete
syntax of ATS allows
the programmer to readily add type-annotations. I myself intend to use the
tool for teaching PL
and compilers.
Also, this tool can be used for analyzing and documenting ATS code.
{
“s2cstmap”:
[{“s2cst_sym”: “g0int_t0ype”, “s2cst_srt”: {“S2RTfun”: [[{“S2RTbas”: [
“tkind”]}], {“S2RTbas”: [“t@ype”]}]}, “s2cst_stamp”: 200, “s2cst_supcls”:
[]}, {“s2cst_sym”: “int_kind”, “s2cst_srt”: {“S2RTbas”: [“tkind”]},
“s2cst_stamp”: 226, “s2cst_supcls”: []}, {“s2cst_sym”: “int”, “s2cst_srt”: {
“S2RTbas”: [“t@ype”]}, “s2cst_stamp”: 230, “s2cst_supcls”: []}, {“s2cst_sym”
: “atsvoid_t0ype”, “s2cst_srt”: {“S2RTbas”: [“t@ype”]}, “s2cst_stamp”: 421,
"s2cst_supcls
": []}]
,
“s2varmap”:
[]
,
“d2conmap”:
[]
,
“d2cstmap”:
[{“d2cst_sym”: “main_void_0”, “d2cst_type”: {“s2exp_srt”: {“S2RTbas”: [
“type”]}, “s2exp_node”: {“S2Efun”: [-1, [], {“s2exp_srt”: {“S2RTbas”: [
“t@ype”]}, “s2exp_node”: {“S2Ecst”: [{“s2cst_stamp”: 421}]}}]}},
“d2cst_stamp”: 56}]
,
“d2varmap”:
[{“d2var_sym”: “acker”, “d2var_stamp”: 181}, {“d2var_sym”: “m”,
“d2var_stamp”: 182}, {“d2var_sym”: “n”, “d2var_stamp”: 183}]
,
“d2eclist”:
[{“d2ecl_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
108(line=8, offs=1) – 143(line=8, offs=36)”, “d2ecl_node”: {“D2Cstaload”:
[[], “/home/hwxi/research/Postiats/git/prelude/DATS/integer.dats”]}}, {
“d2ecl_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
166(line=12, offs=1) – 370(line=27, offs=4)”, “d2ecl_node”: {“D2Cfundecs”:
[“FK_fun”, {}, [{“f2undec_loc”: “/home/hwxi/research/Postiats/git/doc/EXA
MPLE/INTRO/acker1.dats: 170(line=12, offs=5) – 370(line=27, offs=4)”,
“f2undec_var”: {“d2var_stamp”: 181}, “f2undec_def”: {“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
176(line=13, offs=1) – 370(line=27, offs=4)”, “d2exp_node”: {“D2Elam_dyn”:
[0, -1, [{“p2at_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
180(line=14, offs=3) – 186(line=14, offs=9)”, “p2at_node”: {“P2Tann”: [{
“p2at_loc”: “/h
ome/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats: 180(line=14,
offs=3) – 181(line=14, offs=4)”, “p2at_node”: {“P2Tvar”: [{“d2var_stamp”:
182}]}}, {“s2exp_srt”: {“S2RTbas”: [“t@ype”]}, “s2exp_node”: {“S2Eapp”: [{
“s2exp_srt”: {“S2RTfun”: [[{“S2RTbas”: [“tkind”]}], {“S2RTbas”: [“t@ype”
]}]}, “s2exp_node”: {“S2Ecst”: [{“s2cst_stamp”: 200}]}}, [{“s2exp_srt”: {
“S2RTbas”: [“tkind”]}, “s2exp_node”: {“S2Eextkind”: [“atstype_int”
]}}]]}}]}}, {“p2at
_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
188(line=14, offs=11) – 194(line=14, offs=17)”, “p2at_node”: {“P2Tann”: [{
“p2at_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
188(line=14, offs=11) – 189(line=14, offs=12)”, “p2at_node”: {“P2Tvar”: [{
“d2var_stamp”: 183}]}}, {“s2exp_srt”: {“S2RTbas”: [“t@ype”]}, “s2exp_node”:
{“S2Eapp”: [{“s2exp_srt”: {“S2RTfun”: [[{“S2RTbas”: [“tkind”]}], {“S2RTbas”:
[
“t@ype”]}]}, “s2exp_node”: {“S2Ecst”: [{“s2cst_stamp”: 200}]}}, [{
“s2exp_srt”: {“S2RTbas”: [“tkind”]}, “s2exp_node”: {“S2Eextkind”: [
“atstype_int”]}}]]}}]}}], {“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
199(line=15, offs=5) – 370(line=27, offs=4)”, “d2exp_node”: {“D2Eann_seff”:
[{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
199(line=15, offs=5) – 370(line=27, offs=4)”, "d2exp_node
": {“D2Eann_type”: [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
205(line=15, offs=11) – 370(line=27, offs=4)”, “d2exp_node”: {“D2Elet”:
[[], {“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
215(line=18, offs=1) – 346(line=25, offs=4)”, “d2exp_node”: {“D2Eifhead”:
[{}, {“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
218(line=18, offs=4) – 224(line=18, o
ffs=10)”, “d2exp_node”: {“D2Eapplst”: [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
220(line=18, offs=6) – 222(line=18, offs=8)”, “d2exp_node”: {“D2Esym”: [{
“d2sym_sym”: “<=”}]}}, [{“D2EXPARGdyn”: [-1, “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
218(line=18, offs=4) – 224(line=18, offs=10)”, [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
218(line=18, offs=4) –
219(line=18, offs=5)”, “d2exp_node”: {“D2Evar”: [{“d2var_stamp”: 182}]}}, {
“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
223(line=18, offs=9) – 224(line=18, offs=10)”, “d2exp_node”: {“D2Ei0nt”: [
“0”]}}]]}]]}}, {“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
232(line=19, offs=8) – 235(line=19, offs=11)”, “d2exp_node”: {“D2Eapplst”:
[{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/E
XAMPLE/INTRO/acker1.dats: 233(line=19, offs=9) – 234(line=19, offs=10)”,
“d2exp_node”: {“D2Esym”: [{“d2sym_sym”: “+”}]}}, [{“D2EXPARGdyn”: [-1, “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
232(line=19, offs=8) – 235(line=19, offs=11)”, [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
232(line=19, offs=8) – 233(line=19, offs=9)”, “d2exp_node”: {“D2Evar”: [{
“d2var_stamp”: 183}]}}, {“d2exp_loc”: “/h
ome/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats: 234(line=19,
offs=10) – 235(line=19, offs=11)”, “d2exp_node”: {“D2Ei0nt”: [“1”
]}}]]}]]}}, [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
249(line=21, offs=5) – 323(line=23, offs=39)”, “d2exp_node”: {“D2Eifhead”:
[{}, {“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
252(line=21, offs=8) – 258(line=21, offs=14)”, “d2exp_node”
: {“D2Eapplst”: [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
254(line=21, offs=10) – 256(line=21, offs=12)”, “d2exp_node”: {“D2Esym”: [{
“d2sym_sym”: “<=”}]}}, [{“D2EXPARGdyn”: [-1, “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
252(line=21, offs=8) – 258(line=21, offs=14)”, [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
252(line=21, offs=8) – 253(line=21, offs=9
)”, “d2exp_node”: {“D2Evar”: [{“d2var_stamp”: 183}]}}, {“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
257(line=21, offs=13) – 258(line=21, offs=14)”, “d2exp_node”: {“D2Ei0nt”: [
“0”]}}]]}]]}}, {“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
270(line=22, offs=12) – 284(line=22, offs=26)”, “d2exp_node”: {“D2Eapplst”:
[{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker
1.dats: 270(line=22, offs=12) – 275(line=22, offs=17)”, “d2exp_node”: {
“D2Evar”: [{“d2var_stamp”: 181}]}}, [{“D2EXPARGdyn”: [-1, “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
276(line=22, offs=18) – 284(line=22, offs=26)”, [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
277(line=22, offs=19) – 280(line=22, offs=22)”, “d2exp_node”: {“D2Eapplst”:
[{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc
/EXAMPLE/INTRO/acker1.dats: 278(line=22, offs=20) – 279(line=22, offs=21)”,
“d2exp_node”: {“D2Esym”: [{“d2sym_sym”: “-”}]}}, [{“D2EXPARGdyn”: [-1, “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
277(line=22, offs=19) – 280(line=22, offs=22)”, [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
277(line=22, offs=19) – 278(line=22, offs=20)”, “d2exp_node”: {“D2Evar”: [{
“d2var_stamp”: 182}]}}, {“d2exp_loc
“: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
279(line=22, offs=21) – 280(line=22, offs=22)”, “d2exp_node”: {“D2Ei0nt”: [
“1”]}}]]}]]}}, {“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
282(line=22, offs=24) – 283(line=22, offs=25)”, “d2exp_node”: {“D2Ei0nt”: [
“1”]}}]]}]]}}, [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
296(line=23, offs=12) – 323(line=23, offs=3
9)”, “d2exp_node”: {“D2Eapplst”: [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
296(line=23, offs=12) – 301(line=23, offs=17)”, “d2exp_node”: {“D2Evar”: [{
“d2var_stamp”: 181}]}}, [{“D2EXPARGdyn”: [-1, “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
302(line=23, offs=18) – 323(line=23, offs=39)”, [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
303(line=23, offs=19) –
306(line=23, offs=22)”, “d2exp_node”: {“D2Eapplst”: [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
304(line=23, offs=20) – 305(line=23, offs=21)”, “d2exp_node”: {“D2Esym”: [{
“d2sym_sym”: “-”}]}}, [{“D2EXPARGdyn”: [-1, “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
303(line=23, offs=19) – 306(line=23, offs=22)”, [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
303(li
ne=23, offs=19) – 304(line=23, offs=20)”, “d2exp_node”: {“D2Evar”: [{
“d2var_stamp”: 182}]}}, {“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
305(line=23, offs=21) – 306(line=23, offs=22)”, “d2exp_node”: {“D2Ei0nt”: [
“1”]}}]]}]]}}, {“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
308(line=23, offs=24) – 322(line=23, offs=38)”, “d2exp_node”: {“D2Eapplst”:
[{“d2exp_loc”: “/home/hwxi/resear
ch/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats: 308(line=23, offs=24) –
313(line=23, offs=29)”, “d2exp_node”: {“D2Evar”: [{“d2var_stamp”: 181}]}},
[{“D2EXPARGdyn”: [-1, “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
314(line=23, offs=30) – 322(line=23, offs=38)”, [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
315(line=23, offs=31) – 316(line=23, offs=32)”, “d2exp_node”: {“D2Evar”: [{
“d2var_stamp”:
182}]}}, {“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
318(line=23, offs=34) – 321(line=23, offs=37)”, “d2exp_node”: {“D2Eapplst”:
[{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
319(line=23, offs=35) – 320(line=23, offs=36)”, “d2exp_node”: {“D2Esym”: [{
“d2sym_sym”: “-”}]}}, [{“D2EXPARGdyn”: [-1, “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
318(line=23, offs=34)
– 321(line=23, offs=37)”, [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
318(line=23, offs=34) – 319(line=23, offs=35)”, “d2exp_node”: {“D2Evar”: [{
“d2var_stamp”: 183}]}}, {“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
320(line=23, offs=36) – 321(line=23, offs=37)”, “d2exp_node”: {“D2Ei0nt”: [
“1”]}}]]}]]}}]]}]]}}]]}]]}}]]}}]]}}]}}, {“s2exp_srt”: {“S2RTbas”: [“t@ype”
]}, “s2exp_node”:
{“S2Eapp”: [{“s2exp_srt”: {“S2RTfun”: [[{“S2RTbas”: [“tkind”]}], {“S2RTbas”
: [“t@ype”]}]}, “s2exp_node”: {“S2Ecst”: [{“s2cst_stamp”: 200}]}}, [{
“s2exp_srt”: {“S2RTbas”: [“tkind”]}, “s2exp_node”: {“S2Eextkind”: [
“atstype_int”]}}]]}}]}}, {}]}}]}}, “f2undec_ann”: []}]]}}, {“d2ecl_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
411(line=31, offs=1) – 500(line=38, offs=4)”, “d2ecl_node”: {“D2Cimpdec”: [
0, {“i2mpdec_loc”: “/home/h
wxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats: 421(line=32,
offs=1) – 500(line=38, offs=4)”, “i2mpdec_locid”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
421(line=32, offs=1) – 426(line=32, offs=6)”, “i2mpdec_cst”: {“d2cst_stamp”
: 56}, “i2mpdec_imparg”: {}, “i2mpdec_tmparg”: {}, “i2mpdec_tmpgua”: {},
“i2mpdec_def”: {“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
427(line=32, offs=7) –
500(line=38, offs=4)”, “d2exp_node”: {“D2Elam_dyn”: [0, -1, [], {“d2exp_loc”
: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
432(line=32, offs=12) – 500(line=38, offs=4)”, “d2exp_node”: {
“D2Eann_funclo”: [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
432(line=32, offs=12) – 500(line=38, offs=4)”, “d2exp_node”: {“D2Eann_seff”
: [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker
1.dats: 432(line=32, offs=12) – 500(line=38, offs=4)”, “d2exp_node”: {
“D2Eann_type”: [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
432(line=32, offs=12) – 500(line=38, offs=4)”, “d2exp_node”: {“D2Elet”: [[{
“d2ecl_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
439(line=34, offs=1) – 477(line=34, offs=39)”, “d2ecl_node”: {“D2Cvaldecs”:
[“VK_val”, [{“v2aldec_loc”: “/home/hwxi/research/Postiat
s/git/doc/EXAMPLE/INTRO/acker1.dats: 443(line=34, offs=5) – 477(line=34,
offs=39)”, “v2aldec_pat”: {“p2at_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
443(line=34, offs=5) – 445(line=34, offs=7)”, “p2at_node”: {“P2Tempty”:
[]}}, “v2aldec_def”: {“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
448(line=34, offs=10) – 476(line=34, offs=38)”, “d2exp_node”: {“D2Eapplst”:
[{“d2exp_loc”: “/home/hwx
i/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats: 448(line=34,
offs=10) – 457(line=34, offs=19)”, “d2exp_node”: {“D2Eignored”: []}}, [{
“D2EXPARGdyn”: [-1, “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
459(line=34, offs=21) – 476(line=34, offs=38)”, [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
459(line=34, offs=21) – 476(line=34, offs=38)”, “d2exp_node”: {“D2Eapplst”:
[{“d2exp_loc”: “/home
/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats: 472(line=34,
offs=34) – 473(line=34, offs=35)”, “d2exp_node”: {“D2Esym”: [{“d2sym_sym”:
“=”}]}}, [{“D2EXPARGdyn”: [-1, “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
459(line=34, offs=21) – 476(line=34, offs=38)”, [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
459(line=34, offs=21) – 471(line=34, offs=33)”, “d2exp_node”: {“D2Eapplst”:
[{”
d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
459(line=34, offs=21) – 464(line=34, offs=26)”, “d2exp_node”: {“D2Evar”: [{
“d2var_stamp”: 181}]}}, [{“D2EXPARGdyn”: [-1, “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
465(line=34, offs=27) – 471(line=34, offs=33)”, [{“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
466(line=34, offs=28) – 467(line=34, offs=29)”, "d2exp_node
": {“D2Ei0nt”: [“3”]}}, {“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
469(line=34, offs=31) – 470(line=34, offs=32)”, “d2exp_node”: {“D2Ei0nt”: [
“3”]}}]]}]]}}, {“d2exp_loc”: “/home/hwxi/research/Postiats/git/doc/EXAMPLE/INTRO/acker1.dats:
474(line=34, offs=36) – 476(line=34, offs=38)”, “d2exp_node”: {“D2Ei0nt”: [
“61”]}}]]}]]}}]]}]]}}, “v2aldec_ann”: {}}]]}}], {“d2exp_loc”:
“/home/hwxi/research/Postiats/git/doc/EXAM
PLE/INTRO/acker1.dats: 481(line=36, offs=1) – 500(line=38, offs=4)”,
“d2exp_node”: {“D2Eempty”: []}}]}}, {“s2exp_srt”: {“S2RTbas”: [“t@ype”]},
“s2exp_node”: {“S2Ecst”: [{“s2cst_stamp”: 421}]}}]}}, {}]}}, {“funclo_name”:
“FUNCLOfun”, “funclo_arglst”: []}]}}]}}}]}}]
}