Implemented simple expressions
This commit is contained in:
@ -11,7 +11,6 @@ import (
|
||||
// CompileAssignment compiles an assignment.
|
||||
func (f *Function) CompileAssignment(expr *expression.Expression) error {
|
||||
name := expr.Children[0].Token.Text()
|
||||
number, _ := strconv.Atoi(expr.Children[1].Token.Text())
|
||||
register := f.Variables[name].Register
|
||||
|
||||
switch expr.Token.Text() {
|
||||
@ -19,15 +18,19 @@ func (f *Function) CompileAssignment(expr *expression.Expression) error {
|
||||
f.ExpressionToRegister(expr.Children[1], register)
|
||||
|
||||
case "+=":
|
||||
number, _ := strconv.Atoi(expr.Children[1].Token.Text())
|
||||
f.Assembler.RegisterNumber(asm.ADD, register, number)
|
||||
|
||||
case "-=":
|
||||
number, _ := strconv.Atoi(expr.Children[1].Token.Text())
|
||||
f.Assembler.RegisterNumber(asm.SUB, register, number)
|
||||
|
||||
case "*=":
|
||||
number, _ := strconv.Atoi(expr.Children[1].Token.Text())
|
||||
f.Assembler.RegisterNumber(asm.MUL, register, number)
|
||||
|
||||
case "/=":
|
||||
number, _ := strconv.Atoi(expr.Children[1].Token.Text())
|
||||
f.Assembler.RegisterNumber(asm.DIV, register, number)
|
||||
|
||||
default:
|
||||
|
Reference in New Issue
Block a user