Implemented simple expressions
This commit is contained in:
parent
c437b1d0f8
commit
37e222e022
12 changed files with 232 additions and 52 deletions
|
@ -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:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue