Improved expression parser

This commit is contained in:
Eduard Urbach 2024-06-16 22:48:14 +02:00
parent 0ed071a7ee
commit bb9fac1430
Signed by: eduard
GPG key ID: 49226B848C78F6C8
5 changed files with 152 additions and 138 deletions

View file

@ -133,8 +133,7 @@ func (f *Function) CompileInstruction(line token.List) error {
defer expr.Close()
if config.Verbose {
ansi.Dim.Print("├───○ exp ")
fmt.Println(expr)
ansi.Dim.Printf("│ %s\n", expr)
}
if expr.Token.Kind == token.Number || expr.Token.Kind == token.Identifier {
@ -149,11 +148,6 @@ func (f *Function) CompileInstruction(line token.List) error {
name := expr.Children[0]
value := expr.Children[1]
if config.Verbose {
ansi.Dim.Print("├───○ var ")
fmt.Println(name, value)
}
expr.RemoveChild(value)
f.Variables[name.Token.Text()] = &Variable{
@ -165,7 +159,7 @@ func (f *Function) CompileInstruction(line token.List) error {
return nil
}
if expr.Token.Text() == "call" && expr.Children[0].Token.Text() == "syscall" {
if expr.Token.Text() == "λ" && expr.Children[0].Token.Text() == "syscall" {
parameters := expr.Children[1:]
for i, parameter := range parameters {