fixes (debugging)

This commit is contained in:
ProgramSnail 2023-05-21 17:00:59 +03:00
parent e6a03ef9bf
commit f2192b5331
6 changed files with 85 additions and 16 deletions

Binary file not shown.

0
tests/stdlib.lang Normal file
View file

View file

@ -1,7 +1,7 @@
basic (Float : #Ord)
basic (Int : #Ord)
basic (Float : #Ord #Div)
basic (Int : #Ord #IDiv)
basic (String : #Ord)
basic (Char : #Ord)
basic (Char : #Ord #Enum)
basic (Bool : #Ord)
basic Unit
@ -33,7 +33,70 @@ def ( || ) : x y =
| false -> false
)
// Eq typeclass
//
typeclass Move =
& var ( <- ) : Move -> Unit // TODO
typeclass Copy =
& var ( = ) : Copy -> Unit
//
typeclass (Sum : #Copy) =
& var ( += ) : Sum -> Unit
& var ( -= ) : Sum -> Unit
& var ( + ) : Sum -> Sum
& var ( - ) : Sum -> Sum
& zero : -> Sum
namespace var Sum {
def ( + ) : x = {
var ans = self
; ans += x
return ans
}
def ( - ) : x = {
var ans = self
; ans -= x
return ans
}
}
typeclass (Mult : #Sum) =
& var ( *= ) : Mult -> Unit
& var ( * ) : Mult -> Mult
namespace var Mult {
def ( * ) : x = {
var ans = self
; ans *= x
return ans
}
}
typeclass (IDiv : #Mult) =
& var div : IDiv -> Unit
& var mod : IDiv -> Unit
namespace var IDiv {
def mod : x = self -. x * self.div: x
}
typeclass (Div : #Mult) =
& var ( /= ) : Div -> Unit
& var ( / ) : Div -> Div
namespace var Div {
def ( / ) : x = {
var ans = self
; ans /= x
return ans
}
}
//
typeclass Eq =
& var ( == ) : Eq -> Bool
@ -82,8 +145,8 @@ typeclass Show =
typeclass Read =
& var read : String -> Read
typeclass Debug =
& debug : -> String
typeclass DebugShow =
& debug_show : -> String
//
@ -141,7 +204,7 @@ def func : s = {
}
exec main {
for i in (,0 ,1 ,2 ,3) do func: "abacaba"
for i in 0--9 do func: "abacaba"
; print: ({
if true then bring scan: else { ; print: "aaa" }
bring "nothing"