https://github.com/jrincayc/ucblogo-code
Tip revision: 1da9cc2eb6b14a636c407a9262dcb36711682ed2 authored by Barak A. Pearlmutter on 31 March 2023, 13:44:18 UTC
log changes
log changes
Tip revision: 1da9cc2
macroexpand
;;; -*- logo -*-
to macroexpand :expr
local [name inputlist macro.result]
make "name first :expr
make "inputlist bf :expr
if not macrop :name [(throw "error (se :name [is not a macro.]))]
define "%%%$%macro.procedure text :name
make "macro.result run fput "%%%$%macro.procedure :inputlist
erase "%%%$%macro.procedure
op :macro.result
end
bury "macroexpand