čet 12 mar 2026 14:58:52 CET e
barbara
fun f() : void =
^a^
|
| A7: DefFunDefn f |
| LOCATION |
|
| A4: Nodes<ParDefn> |
| LOCATION |
|
|
| A0: AtomType VOID |
| LOCATION |
|
|
|
|
|
fak
var id : (((((((int)))))))
|
|
| A0: AtomType INT |
| LOCATION |
|
|
|
|
prog1
fun a(b: int): int =
b * if b then b + 1 end
| A16: Nodes<Defn> |
| LOCATION |
|
| A15: DefFunDefn a |
| LOCATION |
|
| A12: Nodes<ParDefn> |
| LOCATION |
|
|
| A0: AtomType INT |
| LOCATION |
|
|
|
|
| A2: AtomType INT |
| LOCATION |
|
|
|
| A13: Nodes<Expr> |
| LOCATION |
|
| A11: BinExpr MUL |
| LOCATION |
|
|
|
|
|
|
|
|
prog2
fun a(b: int): int =
b * while b do b + 1 end
| A16: Nodes<Defn> |
| LOCATION |
|
| A15: DefFunDefn a |
| LOCATION |
|
| A12: Nodes<ParDefn> |
| LOCATION |
|
|
| A0: AtomType INT |
| LOCATION |
|
|
|
|
| A2: AtomType INT |
| LOCATION |
|
|
|
| A13: Nodes<Expr> |
| LOCATION |
|
| A11: BinExpr MUL |
| LOCATION |
|
|
|
|
|
|
|
|
synan
typ stevilka = int
var globalnast : stevilka
fun funkcija (prviarg : stevilka, drugiarg : bool) : int =
nvoaspr = a + -b - c,
nvoaspr = nvoaspr * 3 + 2,
nvoaspr = nvoaspr + 3 * 2,
nvoaspr = 1 - 3 + 2,
nvoaspr = 1 / 3 * 2 + 1 * 3 / 2,
if 1 == 2 then 666 end
| A62: Nodes<Defn> |
| LOCATION |
|
| A1: TypDefn stevilka |
| LOCATION |
|
| A0: AtomType INT |
| LOCATION |
|
|
|
| A3: VarDefn globalnast |
| LOCATION |
|
| A2: NameType stevilka |
| LOCATION |
|
|
|
| A61: DefFunDefn funkcija |
| LOCATION |
|
| A58: Nodes<ParDefn> |
| LOCATION |
|
| A5: ParDefn prviarg |
| LOCATION |
|
| A4: NameType stevilka |
| LOCATION |
|
|
|
| A7: ParDefn drugiarg |
| LOCATION |
|
| A6: AtomType BOOL |
| LOCATION |
|
|
|
|
| A8: AtomType INT |
| LOCATION |
|
|
|
| A59: Nodes<Expr> |
| LOCATION |
|
|
| A9: NameExpr nvoaspr |
| LOCATION |
|
|
| A15: BinExpr SUB |
| LOCATION |
|
| A13: BinExpr ADD |
| LOCATION |
|
|
| A12: PfxExpr SUB |
| LOCATION |
|
|
|
|
|
|
|
|
| A17: NameExpr nvoaspr |
| LOCATION |
|
|
| A22: BinExpr ADD |
| LOCATION |
|
| A20: BinExpr MUL |
| LOCATION |
|
| A18: NameExpr nvoaspr |
| LOCATION |
|
|
|
|
|
|
|
|
| A24: NameExpr nvoaspr |
| LOCATION |
|
|
| A29: BinExpr ADD |
| LOCATION |
|
| A25: NameExpr nvoaspr |
| LOCATION |
|
|
| A28: BinExpr MUL |
| LOCATION |
|
|
|
|
|
|
|
| A31: NameExpr nvoaspr |
| LOCATION |
|
|
| A36: BinExpr ADD |
| LOCATION |
|
| A34: BinExpr SUB |
| LOCATION |
|
|
|
|
|
|
|
|
| A38: NameExpr nvoaspr |
| LOCATION |
|
|
| A49: BinExpr ADD |
| LOCATION |
|
| A43: BinExpr MUL |
| LOCATION |
|
| A41: BinExpr DIV |
| LOCATION |
|
|
|
|
|
|
| A48: BinExpr DIV |
| LOCATION |
|
| A46: BinExpr MUL |
| LOCATION |
|
|
|
|
|
|
|
|
|
| A53: BinExpr EQU |
| LOCATION |
|
|
|
|
|
| A55: Nodes<Expr> |
| LOCATION |
|
| A54: AtomExpr 666 |
| LOCATION |
|
|
|
|
|
|
|
|
|
test10
typ id = T
var id : T
fun id (par1 : { a: {}, b: (:{a: ( g : int)}:bool)}) : {}
fun id () : void = not true, +100, -100, 1+2, 1-3, 1*3, 4*22, 5/2, 35%23, true and false, false or true, assignme = 1, a == b, 234 >= 123, 23<235, 34>2 , 3<5, 2<=2
| A81: Nodes<Defn> |
| LOCATION |
|
|
|
| A24: ExtFunDefn id |
| LOCATION |
|
| A23: Nodes<ParDefn> |
| LOCATION |
|
| A20: ParDefn par1 |
| LOCATION |
|
|
| A18: Nodes<CompDefn> |
| LOCATION |
|
|
|
| A4: Nodes<CompDefn> |
| LOCATION |
|
|
|
|
|
|
| A15: Nodes<Type> |
| LOCATION |
|
|
| A12: Nodes<CompDefn> |
| LOCATION |
|
|
|
| A9: Nodes<CompDefn> |
| LOCATION |
|
|
| A7: AtomType INT |
| LOCATION |
|
|
|
|
|
|
|
|
|
| A14: AtomType BOOL |
| LOCATION |
|
|
|
|
|
|
|
|
|
| A21: Nodes<CompDefn> |
| LOCATION |
|
|
|
|
| A80: DefFunDefn id |
| LOCATION |
|
| A77: Nodes<ParDefn> |
| LOCATION |
|
|
| A25: AtomType VOID |
| LOCATION |
|
|
|
| A78: Nodes<Expr> |
| LOCATION |
|
| A27: PfxExpr NOT |
| LOCATION |
|
| A26: AtomExpr true |
| LOCATION |
|
|
|
| A29: PfxExpr ADD |
| LOCATION |
|
| A28: AtomExpr 100 |
| LOCATION |
|
|
|
| A31: PfxExpr SUB |
| LOCATION |
|
| A30: AtomExpr 100 |
| LOCATION |
|
|
|
| A34: BinExpr ADD |
| LOCATION |
|
|
|
|
| A37: BinExpr SUB |
| LOCATION |
|
|
|
|
| A40: BinExpr MUL |
| LOCATION |
|
|
|
|
| A43: BinExpr MUL |
| LOCATION |
|
|
| A42: AtomExpr 22 |
| LOCATION |
|
|
|
| A46: BinExpr DIV |
| LOCATION |
|
|
|
|
| A49: BinExpr MOD |
| LOCATION |
|
| A47: AtomExpr 35 |
| LOCATION |
|
|
| A48: AtomExpr 23 |
| LOCATION |
|
|
|
| A52: BinExpr AND |
| LOCATION |
|
| A50: AtomExpr true |
| LOCATION |
|
|
| A51: AtomExpr false |
| LOCATION |
|
|
|
|
| A53: AtomExpr false |
| LOCATION |
|
|
| A54: AtomExpr true |
| LOCATION |
|
|
|
|
| A56: NameExpr assignme |
| LOCATION |
|
|
|
|
| A61: BinExpr EQU |
| LOCATION |
|
|
|
|
| A64: BinExpr GEQ |
| LOCATION |
|
| A62: AtomExpr 234 |
| LOCATION |
|
|
| A63: AtomExpr 123 |
| LOCATION |
|
|
|
| A67: BinExpr LTH |
| LOCATION |
|
| A65: AtomExpr 23 |
| LOCATION |
|
|
| A66: AtomExpr 235 |
| LOCATION |
|
|
|
| A70: BinExpr GTH |
| LOCATION |
|
| A68: AtomExpr 34 |
| LOCATION |
|
|
|
|
| A73: BinExpr LTH |
| LOCATION |
|
|
|
|
| A76: BinExpr LEQ |
| LOCATION |
|
|
|
|
|
|
|
|
test11
fun funny() : void = ^a[b].c^ as { a: {}, b: (:{a: ( g : int)}:bool)}, sizeof { a: {}, b: (:{a: ( g : int)}:bool)}
typ t = (::t)
| A49: Nodes<Defn> |
| LOCATION |
|
| A44: DefFunDefn funny |
| LOCATION |
|
| A41: Nodes<ParDefn> |
| LOCATION |
|
|
| A0: AtomType VOID |
| LOCATION |
|
|
|
| A42: Nodes<Expr> |
| LOCATION |
|
|
|
|
| A21: Nodes<CompDefn> |
| LOCATION |
|
|
|
| A7: Nodes<CompDefn> |
| LOCATION |
|
|
|
|
|
|
| A18: Nodes<Type> |
| LOCATION |
|
|
| A15: Nodes<CompDefn> |
| LOCATION |
|
|
|
| A12: Nodes<CompDefn> |
| LOCATION |
|
|
| A10: AtomType INT |
| LOCATION |
|
|
|
|
|
|
|
|
|
| A17: AtomType BOOL |
| LOCATION |
|
|
|
|
|
|
|
|
|
| A38: Nodes<CompDefn> |
| LOCATION |
|
|
|
| A24: Nodes<CompDefn> |
| LOCATION |
|
|
|
|
|
|
| A35: Nodes<Type> |
| LOCATION |
|
|
| A32: Nodes<CompDefn> |
| LOCATION |
|
|
|
| A29: Nodes<CompDefn> |
| LOCATION |
|
|
| A27: AtomType INT |
| LOCATION |
|
|
|
|
|
|
|
|
|
| A34: AtomType BOOL |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
|
|
| A46: Nodes<Type> |
| LOCATION |
|
|
|
|
|
|
test12
fun f() : void = let fun f():void in let fun f():void in (a, b, c) end, let fun f():int = 5+5 in sizeof [10]int end end
| A39: Nodes<Defn> |
| LOCATION |
|
| A38: DefFunDefn f |
| LOCATION |
|
| A35: Nodes<ParDefn> |
| LOCATION |
|
|
| A0: AtomType VOID |
| LOCATION |
|
|
|
| A36: Nodes<Expr> |
| LOCATION |
|
|
| A31: Nodes<Defn> |
| LOCATION |
|
| A3: ExtFunDefn f |
| LOCATION |
|
| A2: Nodes<ParDefn> |
| LOCATION |
|
|
| A1: AtomType VOID |
| LOCATION |
|
|
|
|
|
| A32: Nodes<Expr> |
| LOCATION |
|
|
| A12: Nodes<Defn> |
| LOCATION |
|
| A6: ExtFunDefn f |
| LOCATION |
|
| A5: Nodes<ParDefn> |
| LOCATION |
|
|
| A4: AtomType VOID |
| LOCATION |
|
|
|
|
|
| A13: Nodes<Expr> |
| LOCATION |
|
|
| A10: Nodes<Expr> |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
| A27: Nodes<Defn> |
| LOCATION |
|
| A23: DefFunDefn f |
| LOCATION |
|
| A20: Nodes<ParDefn> |
| LOCATION |
|
|
| A16: AtomType INT |
| LOCATION |
|
|
|
| A21: Nodes<Expr> |
| LOCATION |
|
| A19: BinExpr ADD |
| LOCATION |
|
|
|
|
|
|
|
|
|
| A28: Nodes<Expr> |
| LOCATION |
|
|
| A25: ArrType ArrType[10] |
| LOCATION |
|
| A24: AtomType INT |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
test13
fun a():ab = if if E4 then E5, E6 else E7, E8 end then while E9 do E10, "QWERHBEQR ", (if E4 then E5, E6 else E7, E8 end), E3 end end
| A37: Nodes<Defn> |
| LOCATION |
|
| A36: DefFunDefn a |
| LOCATION |
|
| A33: Nodes<ParDefn> |
| LOCATION |
|
|
|
|
| A34: Nodes<Expr> |
| LOCATION |
|
|
| A10: IfThenElseExpr |
| LOCATION |
|
|
|
|
|
|
| A30: Nodes<Expr> |
| LOCATION |
|
|
| A11: NameExpr E9 |
| LOCATION |
|
|
|
| A27: Nodes<Expr> |
| LOCATION |
|
| A12: NameExpr E10 |
| LOCATION |
|
|
| A13: AtomExpr "QWERHBEQR " |
| LOCATION |
|
|
|
| A24: Nodes<Expr> |
| LOCATION |
|
| A23: IfThenElseExpr |
| LOCATION |
|
| A14: NameExpr E4 |
| LOCATION |
|
|
|
| A19: Nodes<Expr> |
| LOCATION |
|
| A15: NameExpr E5 |
| LOCATION |
|
|
| A16: NameExpr E6 |
| LOCATION |
|
|
|
|
|
| A21: Nodes<Expr> |
| LOCATION |
|
| A17: NameExpr E7 |
| LOCATION |
|
|
| A18: NameExpr E8 |
| LOCATION |
|
|
|
|
|
|
|
| A26: NameExpr E3 |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
|
|
test14
fun f() : bool = not a+b*b+a-c % 10 as int
| A19: Nodes<Defn> |
| LOCATION |
|
| A18: DefFunDefn f |
| LOCATION |
|
| A15: Nodes<ParDefn> |
| LOCATION |
|
|
| A0: AtomType BOOL |
| LOCATION |
|
|
|
| A16: Nodes<Expr> |
| LOCATION |
|
|
| A12: BinExpr SUB |
| LOCATION |
|
|
| A11: BinExpr MOD |
| LOCATION |
|
|
| A10: AtomExpr 10 |
| LOCATION |
|
|
|
|
| A13: AtomType INT |
| LOCATION |
|
|
|
|
|
|
|
test15
fun f() : void = a = b or false and true != false + 2 * 4 ^
| A19: Nodes<Defn> |
| LOCATION |
|
| A18: DefFunDefn f |
| LOCATION |
|
| A15: Nodes<ParDefn> |
| LOCATION |
|
|
| A0: AtomType VOID |
| LOCATION |
|
|
|
| A16: Nodes<Expr> |
| LOCATION |
|
|
|
|
|
| A12: BinExpr AND |
| LOCATION |
|
| A3: AtomExpr false |
| LOCATION |
|
|
| A11: BinExpr NEQ |
| LOCATION |
|
| A4: AtomExpr true |
| LOCATION |
|
|
| A10: BinExpr ADD |
| LOCATION |
|
| A5: AtomExpr false |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
|
|
test1
typ test = (a: int, b: char)
|
| A6: TypDefn test |
| LOCATION |
|
|
| A4: Nodes<CompDefn> |
| LOCATION |
|
|
| A0: AtomType INT |
| LOCATION |
|
|
|
|
| A2: AtomType CHAR |
| LOCATION |
|
|
|
|
|
|
|
test2
// defnList test
fun f() : int = let typ a = int typ b = int in a, b end
| A15: Nodes<Defn> |
| LOCATION |
|
| A14: DefFunDefn f |
| LOCATION |
|
| A11: Nodes<ParDefn> |
| LOCATION |
|
|
| A0: AtomType INT |
| LOCATION |
|
|
|
| A12: Nodes<Expr> |
| LOCATION |
|
|
|
|
| A1: AtomType INT |
| LOCATION |
|
|
|
|
| A3: AtomType INT |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
test3
typ idt = int
var idv : [10]idt
fun idf ( id1 : T1 , id2 : T2 , id3 : T3 ) : idt
fun idff ( abc : id) : idt = 1, 2, 3, while 2 do 1, 2, 3 end
| A31: Nodes<Defn> |
| LOCATION |
|
|
| A0: AtomType INT |
| LOCATION |
|
|
|
|
| A3: ArrType ArrType[10] |
| LOCATION |
|
| A2: NameType idt |
| LOCATION |
|
|
|
|
| A13: ExtFunDefn idf |
| LOCATION |
|
| A12: Nodes<ParDefn> |
| LOCATION |
|
|
|
| A10: ParDefn id3 |
| LOCATION |
|
|
|
|
| A11: NameType idt |
| LOCATION |
|
|
|
| A30: DefFunDefn idff |
| LOCATION |
|
| A27: Nodes<ParDefn> |
| LOCATION |
|
| A15: ParDefn abc |
| LOCATION |
|
| A14: NameType id |
| LOCATION |
|
|
|
|
| A16: NameType idt |
| LOCATION |
|
|
|
| A28: Nodes<Expr> |
| LOCATION |
|
|
|
|
|
|
|
| A24: Nodes<Expr> |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
|
test4
typ id = ^^^^^^^^^^^^^^void
typ id2 = [1][2][4]bool
var id3 : (a:[1][2][4]bool, b: ^^^^^^^^^^^^^^void, c: randomid, d : int, e : bool, f : char, g : { h : ^^int, i: void} )
| A62: Nodes<Defn> |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| A0: AtomType VOID |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| A20: TypDefn id2 |
| LOCATION |
|
| A19: ArrType ArrType[1] |
| LOCATION |
|
| A18: ArrType ArrType[2] |
| LOCATION |
|
| A17: ArrType ArrType[4] |
| LOCATION |
|
| A16: AtomType BOOL |
| LOCATION |
|
|
|
|
|
|
| A61: VarDefn id3 |
| LOCATION |
|
|
| A59: Nodes<CompDefn> |
| LOCATION |
|
|
| A24: ArrType ArrType[1] |
| LOCATION |
|
| A23: ArrType ArrType[2] |
| LOCATION |
|
| A22: ArrType ArrType[4] |
| LOCATION |
|
| A21: AtomType BOOL |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| A26: AtomType VOID |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| A42: NameType randomid |
| LOCATION |
|
|
|
|
| A44: AtomType INT |
| LOCATION |
|
|
|
|
| A46: AtomType BOOL |
| LOCATION |
|
|
|
|
| A48: AtomType CHAR |
| LOCATION |
|
|
|
|
|
| A56: Nodes<CompDefn> |
| LOCATION |
|
|
|
|
| A50: AtomType INT |
| LOCATION |
|
|
|
|
|
|
| A54: AtomType VOID |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
test5
var id4 : (a:[1][2][4]bool, b: ^^^^^^^^^^^^^^void, c: randomid, x: (d : int, e : bool, f : char, g : { h : ^^int, i: void}) )
| A44: Nodes<Defn> |
| LOCATION |
|
| A43: VarDefn id4 |
| LOCATION |
|
|
| A41: Nodes<CompDefn> |
| LOCATION |
|
|
| A3: ArrType ArrType[1] |
| LOCATION |
|
| A2: ArrType ArrType[2] |
| LOCATION |
|
| A1: ArrType ArrType[4] |
| LOCATION |
|
| A0: AtomType BOOL |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| A5: AtomType VOID |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| A21: NameType randomid |
| LOCATION |
|
|
|
|
|
| A38: Nodes<CompDefn> |
| LOCATION |
|
|
| A23: AtomType INT |
| LOCATION |
|
|
|
|
| A25: AtomType BOOL |
| LOCATION |
|
|
|
|
| A27: AtomType CHAR |
| LOCATION |
|
|
|
|
|
| A35: Nodes<CompDefn> |
| LOCATION |
|
|
|
|
| A29: AtomType INT |
| LOCATION |
|
|
|
|
|
|
| A33: AtomType VOID |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
|
|
|
test6
var rav : { a: {}, b: (:{a: ( g : int)}:bool)}
| A17: Nodes<Defn> |
| LOCATION |
|
| A16: VarDefn rav |
| LOCATION |
|
|
| A14: Nodes<CompDefn> |
| LOCATION |
|
|
|
| A0: Nodes<CompDefn> |
| LOCATION |
|
|
|
|
|
|
| A11: Nodes<Type> |
| LOCATION |
|
|
| A8: Nodes<CompDefn> |
| LOCATION |
|
|
|
| A5: Nodes<CompDefn> |
| LOCATION |
|
|
| A3: AtomType INT |
| LOCATION |
|
|
|
|
|
|
|
|
|
| A10: AtomType BOOL |
| LOCATION |
|
|
|
|
|
|
|
|
test7
typ t = (((id)))
typ t2 = (id: (int))
typ t3 = (((({}))))
| A10: Nodes<Defn> |
| LOCATION |
|
|
|
|
| A4: Nodes<CompDefn> |
| LOCATION |
|
|
| A2: AtomType INT |
| LOCATION |
|
|
|
|
|
|
|
|
| A7: Nodes<CompDefn> |
| LOCATION |
|
|
|
|
|
test8
fun abc () : (a:[1][2][4]bool, b: ^^^^^^^^^^^^^^void, c: randomid, x: (d : int, e : bool, f : char, g : { h : ^^int, i: void}) )
| A45: Nodes<Defn> |
| LOCATION |
|
| A44: ExtFunDefn abc |
| LOCATION |
|
| A43: Nodes<ParDefn> |
| LOCATION |
|
|
|
| A41: Nodes<CompDefn> |
| LOCATION |
|
|
| A3: ArrType ArrType[1] |
| LOCATION |
|
| A2: ArrType ArrType[2] |
| LOCATION |
|
| A1: ArrType ArrType[4] |
| LOCATION |
|
| A0: AtomType BOOL |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| A5: AtomType VOID |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| A21: NameType randomid |
| LOCATION |
|
|
|
|
|
| A38: Nodes<CompDefn> |
| LOCATION |
|
|
| A23: AtomType INT |
| LOCATION |
|
|
|
|
| A25: AtomType BOOL |
| LOCATION |
|
|
|
|
| A27: AtomType CHAR |
| LOCATION |
|
|
|
|
|
| A35: Nodes<CompDefn> |
| LOCATION |
|
|
|
|
| A29: AtomType INT |
| LOCATION |
|
|
|
|
|
|
| A33: AtomType VOID |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
|
|
|
test9
fun id ( id : idt ) : (a:[1][2][4][12]void) = ide, 1, true, false, 'a', "niz", "niz spet", none, nil
| A23: Nodes<Defn> |
| LOCATION |
|
| A22: DefFunDefn id |
| LOCATION |
|
| A19: Nodes<ParDefn> |
| LOCATION |
|
|
| A0: NameType idt |
| LOCATION |
|
|
|
|
|
| A8: Nodes<CompDefn> |
| LOCATION |
|
|
| A6: ArrType ArrType[1] |
| LOCATION |
|
| A5: ArrType ArrType[2] |
| LOCATION |
|
| A4: ArrType ArrType[4] |
| LOCATION |
|
| A3: ArrType ArrType[12] |
| LOCATION |
|
| A2: AtomType VOID |
| LOCATION |
|
|
|
|
|
|
|
|
|
|
| A20: Nodes<Expr> |
| LOCATION |
|
| A10: NameExpr ide |
| LOCATION |
|
|
|
| A12: AtomExpr true |
| LOCATION |
|
|
| A13: AtomExpr false |
| LOCATION |
|
|
| A14: AtomExpr 'a' |
| LOCATION |
|
|
| A15: AtomExpr "niz" |
| LOCATION |
|
|
| A16: AtomExpr "niz spet" |
| LOCATION |
|
|
| A17: AtomExpr none |
| LOCATION |
|
|
| A18: AtomExpr nil |
| LOCATION |
|
|
|
|
|
|