mirror of
https://codeberg.org/ProgramSnail/lang_2023.git
synced 2025-12-06 06:58:45 +00:00
fixes (debugging)
This commit is contained in:
parent
e6a03ef9bf
commit
f2192b5331
6 changed files with 85 additions and 16 deletions
Binary file not shown.
0
tests/stdlib.lang
Normal file
0
tests/stdlib.lang
Normal 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"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue