Fixes macro stringification to work correctly

This commit is contained in:
sloum 2022-07-06 15:54:23 -07:00
parent 58d8f6b874
commit e2abc4b19c
3 changed files with 23 additions and 1 deletions

11
gui.go
View File

@ -1138,6 +1138,17 @@ func String(v expression, rawString bool) string {
}
b.WriteString(body)
return b.String()
case macro:
var b strings.Builder
b.WriteString("(macro ")
b.WriteString(String(v.params, true))
b.WriteRune(' ')
body := String(v.body, true)
if strings.HasPrefix(body, "(begin ") {
body = body[7:]
}
b.WriteString(body)
return b.String()
case func(...expression) expression:
return fmt.Sprint("Built-in: ", &v)
case *IOHandle:

View File

@ -18,7 +18,7 @@ import (
ln "github.com/peterh/liner"
)
const version = "1.0.4"
const version = "1.0.5"
const globalLibPath = "/usr/local/lib/slope/modules/"

View File

@ -43,6 +43,17 @@ func String(v expression, rawString bool) string {
}
b.WriteString(body)
return b.String()
case macro:
var b strings.Builder
b.WriteString("(macro ")
b.WriteString(String(v.params, true))
b.WriteRune(' ')
body := String(v.body, true)
if strings.HasPrefix(body, "(begin ") {
body = body[7:]
}
b.WriteString(body)
return b.String()
case func(...expression) expression:
return fmt.Sprint("Built-in: ", &v)
case *IOHandle: