This commit is contained in:
QkoSad
2025-07-16 13:00:37 +03:00
commit 7894b48931
806 changed files with 162532 additions and 0 deletions
+295
View File
@@ -0,0 +1,295 @@
function String.new 0
push constant 2
call Memory.alloc 1
pop pointer 0
push argument 0
push constant 0
gt
not
if-goto L0
push argument 0
call Array.new 1
pop this 0
goto L1
label L0
label L1
push constant 0
pop this 1
push pointer 0
return
function String.dispose 0
push argument 0
pop pointer 0
push this 1
push constant 0
gt
not
if-goto L2
push this 0
call Array.dispose 1
pop temp 0
goto L3
label L2
label L3
push pointer 0
call Memory.deAlloc 1
pop temp 0
push constant 0
return
function String.length 0
push argument 0
pop pointer 0
push this 1
return
function String.charAt 0
push argument 0
pop pointer 0
push argument 1
push this 1
gt
not
if-goto L4
push constant 7
call Sys.error 1
pop temp 0
goto L5
label L4
label L5
push this 0
push argument 1
add
pop pointer 1
push that 0
return
function String.setCharAt 0
push argument 0
pop pointer 0
push argument 1
push this 1
gt
not
if-goto L6
push constant 7
call Sys.error 1
pop temp 0
goto L7
label L6
label L7
push this 0
push argument 1
push argument 2
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push constant 0
return
function String.appendChar 0
push argument 0
pop pointer 0
push this 0
push this 1
push argument 1
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push this 1
push constant 1
add
pop this 1
push pointer 0
return
function String.eraseLastChar 0
push argument 0
pop pointer 0
push this 0
push this 1
push constant 0
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push this 1
push constant 1
sub
pop this 1
push constant 0
return
function String.intValue 4
push argument 0
pop pointer 0
label L8
push local 2
push this 1
lt
not
if-goto L9
push this 0
push local 2
add
pop pointer 1
push that 0
pop local 0
push local 0
push constant 47
gt
push local 0
push constant 58
lt
and
not
if-goto L10
push local 1
push constant 10
call Math.multiply 2
push local 0
push constant 48
sub
add
pop local 1
goto L11
label L10
push local 2
push constant 0
eq
push local 0
push constant 45
eq
and
not
if-goto L12
push constant 1
neg
pop local 3
goto L13
label L12
push this 1
pop local 2
label L13
label L11
push local 2
push constant 1
add
pop local 2
goto L8
label L9
push local 3
not
if-goto L14
push local 1
neg
return
goto L15
label L14
label L15
push local 1
return
function String.setInt 4
push argument 0
pop pointer 0
push argument 1
push constant 0
lt
not
if-goto L16
push constant 1
neg
pop static 0
push argument 1
neg
pop argument 1
goto L17
label L16
label L17
push argument 1
push constant 10
call Math.divide 2
pop local 1
push argument 1
push local 1
push constant 10
call Math.multiply 2
sub
pop local 0
push constant 48
pop local 2
label L18
push local 2
push constant 58
lt
not
if-goto L19
push local 2
push constant 48
push local 0
add
eq
not
if-goto L20
push local 2
pop local 3
push constant 59
pop local 2
goto L21
label L20
label L21
push local 2
push constant 1
add
pop local 2
goto L18
label L19
push argument 1
push constant 10
lt
not
if-goto L22
push constant 0
pop this 1
push static 0
not
if-goto L23
push constant 0
pop static 0
push argument 0
push constant 1
call String.new 1
push constant 45
call String.appendChar 2
call String.appendChar 2
pop temp 0
goto L24
label L23
label L24
push argument 0
push local 3
call String.appendChar 2
pop temp 0
push constant 0
return
goto L25
label L22
push argument 0
push local 1
call String.setInt 2
pop temp 0
push argument 0
push local 3
call String.appendChar 2
pop temp 0
label L25
push constant 0
return
function String.newLine 0
push constant 128
return
function String.backSpace 0
push constant 129
return
function String.doubleQuote 0
push constant 34
return