Something went wrong. Try again.
🌱 A minimal programming language and compiler. git.urbach.dev/cli/q
high-performance programming-language compiler
Something went wrong. Try again.
461 B · 23 lines
Go
at main
1234567891011121314151617181920212223package expression
import ( "strings")
// write generates a textual representation of the expression.func (expr *Expression) write(builder *strings.Builder, source []byte) { if expr.IsLeaf() { builder.WriteString(expr.Token.StringFrom(source)) return }
builder.WriteByte('(') builder.WriteString(expr.Token.Kind.String())
for _, child := range expr.Children { builder.WriteByte(' ') child.write(builder, source) }
builder.WriteByte(')')}