diff options
author | Suleyman Farajli <suleyman@farajli.net> | 2024-12-26 16:10:54 +0400 |
---|---|---|
committer | Suleyman Farajli <suleyman@farajli.net> | 2024-12-26 16:10:54 +0400 |
commit | 6a5db026b93b97879ec7a5d15c1f0047b13c6083 (patch) | |
tree | 2765757cb9a5441336067cb3ff8b13d7cfbe5bf4 /src | |
parent | 356b4cccdd5889f366dd9932a7566175dd37c0c6 (diff) |
`else` added to `if`
Diffstat (limited to 'src')
-rw-r--r-- | src/main.go | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/main.go b/src/main.go index b6e4c23..fe73108 100644 --- a/src/main.go +++ b/src/main.go @@ -74,11 +74,19 @@ func compile(raw[]string) { print(" ;; IF") print(" pop r10") print(" cmp r10, 0") - fmt.Printf(" je .if%d\n",i) + fmt.Printf(" je .if%d\n", i) + iflabels = append(iflabels, i) + + case "else": + print(" ;; ELSE") + fmt.Printf(" jmp .if%d\n", i) + fmt.Printf(".if%d:\n", iflabels[len(iflabels) - 1]) + iflabels = iflabels[:len(iflabels) - 1] iflabels = append(iflabels, i) case "endif": - fmt.Printf(".if%d:\n", iflabels[len(iflabels) - 1] ) + print(" ;; ENDIF") + fmt.Printf(".if%d:\n", iflabels[len(iflabels) - 1]) iflabels = iflabels[:len(iflabels) - 1] default: |