čet 19 mar 2026 22:34:29 CET e


test10.p26

typ T = int

typ idtyp = T

var idvar : T

fun idfun1 (par1 : { a: {a: T}, b: (:{a: ( g : int)}:bool)}) : {a: int}

fun idfun2 () : void = not true, +100, -100, 1+2, 1-3, 1*3, 4*22, 5/2, 35%23, true and false, false or true, let var assignme : int var a : bool var b : bool in assignme = 1,  a == b end, 234 >= 123, 23<235, 34>2 , 3<5, 2<=2
 A97: Nodes<Defn> 
1:1-9:224
 A1: TypDefn T 
1:1-1:11
 A0: AtomType INT 
1:9-1:11
 A3: TypDefn idtyp 
3:1-3:13
 A2: NameType T 
3:13-3:13
defAt: A1 @ 1:1-1:11
 A5: VarDefn idvar 
5:1-5:13
 A4: NameType T 
5:13-5:13
defAt: A1 @ 1:1-1:11
 A30: ExtFunDefn idfun1 
7:1-7:71
 A29: Nodes<ParDefn> 
7:12-7:60
 A24: ParDefn par1 
7:13-7:59
 A23: UniType 
7:20-7:59
 A22: Nodes<CompDefn> 
7:22-7:58
 A10: CompDefn a 
7:22-7:30
 A9: UniType 
7:25-7:30
 A8: Nodes<CompDefn> 
7:26-7:29
 A7: CompDefn a 
7:26-7:29
 A6: NameType T 
7:29-7:29
defAt: A1 @ 1:1-1:11
 A21: CompDefn b 
7:33-7:58
 A20: FunType 
7:36-7:58
 A19: Nodes<Type> 
7:37-7:53
 A17: UniType 
7:38-7:52
 A16: Nodes<CompDefn> 
7:39-7:51
 A15: CompDefn a 
7:39-7:51
 A14: StrType 
7:42-7:51
 A13: Nodes<CompDefn> 
7:44-7:50
 A12: CompDefn g 
7:44-7:50
 A11: AtomType INT 
7:48-7:50
 A18: AtomType BOOL 
7:54-7:57
 A28: UniType 
7:64-7:71
 A27: Nodes<CompDefn> 
7:65-7:70
 A26: CompDefn a 
7:65-7:70
 A25: AtomType INT 
7:68-7:70
 A96: DefFunDefn idfun2 
9:1-9:224
 A93: Nodes<ParDefn> 
 A31: AtomType VOID 
9:17-9:20
 A95: Exprs 
9:24-9:224
 A94: Nodes<Expr> 
9:24-9:224
 A33: PfxExpr NOT 
9:24-9:31
 A32: AtomExpr true 
9:28-9:31
 A35: PfxExpr ADD 
9:34-9:37
 A34: AtomExpr 100 
9:35-9:37
 A37: PfxExpr SUB 
9:40-9:43
 A36: AtomExpr 100 
9:41-9:43
 A40: BinExpr ADD 
9:46-9:48
 A38: AtomExpr 1 
9:46-9:46
 A39: AtomExpr 2 
9:48-9:48
 A43: BinExpr SUB 
9:51-9:53
 A41: AtomExpr 1 
9:51-9:51
 A42: AtomExpr 3 
9:53-9:53
 A46: BinExpr MUL 
9:56-9:58
 A44: AtomExpr 1 
9:56-9:56
 A45: AtomExpr 3 
9:58-9:58
 A49: BinExpr MUL 
9:61-9:64
 A47: AtomExpr 4 
9:61-9:61
 A48: AtomExpr 22 
9:63-9:64
 A52: BinExpr DIV 
9:67-9:69
 A50: AtomExpr 5 
9:67-9:67
 A51: AtomExpr 2 
9:69-9:69
 A55: BinExpr MOD 
9:72-9:76
 A53: AtomExpr 35 
9:72-9:73
 A54: AtomExpr 23 
9:75-9:76
 A58: BinExpr AND 
9:79-9:92
 A56: AtomExpr true 
9:79-9:82
 A57: AtomExpr false 
9:88-9:92
 A61: BinExpr OR 
9:95-9:107
 A59: AtomExpr false 
9:95-9:99
 A60: AtomExpr true 
9:104-9:107
 A77: LetExpr 
9:110-9:186
 A74: Nodes<Defn> 
9:114-9:157
 A63: VarDefn assignme 
9:114-9:131
 A62: AtomType INT 
9:129-9:131
 A65: VarDefn a 
9:133-9:144
 A64: AtomType BOOL 
9:141-9:144
 A67: VarDefn b 
9:146-9:157
 A66: AtomType BOOL 
9:154-9:157
 A76: Exprs 
9:162-9:182
 A75: Nodes<Expr> 
9:162-9:182
 A70: AsgnExpr 
9:162-9:173
 A68: NameExpr assignme 
9:162-9:169
defAt: A63 @ 9:114-9:131
 A69: AtomExpr 1 
9:173-9:173
 A73: BinExpr EQU 
9:177-9:182
 A71: NameExpr a 
9:177-9:177
defAt: A65 @ 9:133-9:144
 A72: NameExpr b 
9:182-9:182
defAt: A67 @ 9:146-9:157
 A80: BinExpr GEQ 
9:189-9:198
 A78: AtomExpr 234 
9:189-9:191
 A79: AtomExpr 123 
9:196-9:198
 A83: BinExpr LTH 
9:201-9:206
 A81: AtomExpr 23 
9:201-9:202
 A82: AtomExpr 235 
9:204-9:206
 A86: BinExpr GTH 
9:209-9:212
 A84: AtomExpr 34 
9:209-9:210
 A85: AtomExpr 2 
9:212-9:212
 A89: BinExpr LTH 
9:216-9:218
 A87: AtomExpr 3 
9:216-9:216
 A88: AtomExpr 5 
9:218-9:218
 A92: BinExpr LEQ 
9:221-9:224
 A90: AtomExpr 2 
9:221-9:221
 A91: AtomExpr 2 
9:224-9:224

test11.p26

fun funny(a : int, b : int) : void = ^a[b].c^ as { a: {a: int}, b: (:{a: ( g : int)}:bool)}, sizeof { a: {a: int}, b: (:{a: ( g : int)}:bool)}


typ t = (::t)
 A57: Nodes<Defn> 
1:1-4:13
 A52: DefFunDefn funny 
1:1-1:142
 A49: Nodes<ParDefn> 
1:10-1:27
 A1: ParDefn a 
1:11-1:17
 A0: AtomType INT 
1:15-1:17
 A3: ParDefn b 
1:20-1:26
 A2: AtomType INT 
1:24-1:26
 A4: AtomType VOID 
1:31-1:34
 A51: Exprs 
1:38-1:142
 A50: Nodes<Expr> 
1:38-1:142
 A29: CastExpr 
1:38-1:91
 A10: PfxExpr PTR 
1:38-1:45
 A9: SfxExpr PTR 
1:39-1:45
 A8: CompExpr c 
1:39-1:44
 A7: ArrExpr 
1:39-1:42
 A5: NameExpr a 
1:39-1:39
defAt: A1 @ 1:11-1:17
 A6: NameExpr b 
1:41-1:41
defAt: A3 @ 1:20-1:26
 A28: UniType 
1:50-1:91
 A27: Nodes<CompDefn> 
1:52-1:90
 A15: CompDefn a 
1:52-1:62
 A14: UniType 
1:55-1:62
 A13: Nodes<CompDefn> 
1:56-1:61
 A12: CompDefn a 
1:56-1:61
 A11: AtomType INT 
1:59-1:61
 A26: CompDefn b 
1:65-1:90
 A25: FunType 
1:68-1:90
 A24: Nodes<Type> 
1:69-1:85
 A22: UniType 
1:70-1:84
 A21: Nodes<CompDefn> 
1:71-1:83
 A20: CompDefn a 
1:71-1:83
 A19: StrType 
1:74-1:83
 A18: Nodes<CompDefn> 
1:76-1:82
 A17: CompDefn g 
1:76-1:82
 A16: AtomType INT 
1:80-1:82
 A23: AtomType BOOL 
1:86-1:89
 A48: SizeExpr 
1:94-1:142
 A47: UniType 
1:101-1:142
 A46: Nodes<CompDefn> 
1:103-1:141
 A34: CompDefn a 
1:103-1:113
 A33: UniType 
1:106-1:113
 A32: Nodes<CompDefn> 
1:107-1:112
 A31: CompDefn a 
1:107-1:112
 A30: AtomType INT 
1:110-1:112
 A45: CompDefn b 
1:116-1:141
 A44: FunType 
1:119-1:141
 A43: Nodes<Type> 
1:120-1:136
 A41: UniType 
1:121-1:135
 A40: Nodes<CompDefn> 
1:122-1:134
 A39: CompDefn a 
1:122-1:134
 A38: StrType 
1:125-1:134
 A37: Nodes<CompDefn> 
1:127-1:133
 A36: CompDefn g 
1:127-1:133
 A35: AtomType INT 
1:131-1:133
 A42: AtomType BOOL 
1:137-1:140
 A56: TypDefn t 
4:1-4:13
 A55: FunType 
4:9-4:13
 A54: Nodes<Type> 
 A53: NameType t 
4:12-4:12
defAt: A56 @ 4:1-4:13

test12.p26

fun f() : void = let fun f(a : int, b : int, c : int):void in let fun f():void in (a, b, c) end, let fun f():int = 5+5 in sizeof [10]int end end
 A45: Nodes<Defn> 
1:1-1:144
 A44: DefFunDefn f 
1:1-1:144
 A41: Nodes<ParDefn> 
 A0: AtomType VOID 
1:11-1:14
 A43: Exprs 
1:18-1:144
 A42: Nodes<Expr> 
1:18-1:144
 A40: LetExpr 
1:18-1:144
 A37: Nodes<Defn> 
1:22-1:58
 A9: ExtFunDefn f 
1:22-1:58
 A8: Nodes<ParDefn> 
1:27-1:53
 A2: ParDefn a 
1:28-1:34
 A1: AtomType INT 
1:32-1:34
 A4: ParDefn b 
1:37-1:43
 A3: AtomType INT 
1:41-1:43
 A6: ParDefn c 
1:46-1:52
 A5: AtomType INT 
1:50-1:52
 A7: AtomType VOID 
1:55-1:58
 A39: Exprs 
1:63-1:140
 A38: Nodes<Expr> 
1:63-1:140
 A21: LetExpr 
1:63-1:95
 A18: Nodes<Defn> 
1:67-1:78
 A12: ExtFunDefn f 
1:67-1:78
 A11: Nodes<ParDefn> 
 A10: AtomType VOID 
1:75-1:78
 A20: Exprs 
1:83-1:91
 A19: Nodes<Expr> 
1:83-1:91
 A17: Exprs 
1:83-1:91
 A16: Nodes<Expr> 
1:83-1:91
 A13: NameExpr a 
1:84-1:84
defAt: A2 @ 1:28-1:34
 A14: NameExpr b 
1:87-1:87
defAt: A4 @ 1:37-1:43
 A15: NameExpr c 
1:90-1:90
defAt: A6 @ 1:46-1:52
 A36: LetExpr 
1:98-1:140
 A33: Nodes<Defn> 
1:102-1:118
 A29: DefFunDefn f 
1:102-1:118
 A26: Nodes<ParDefn> 
 A22: AtomType INT 
1:110-1:112
 A28: Exprs 
1:116-1:118
 A27: Nodes<Expr> 
1:116-1:118
 A25: BinExpr ADD 
1:116-1:118
 A23: AtomExpr 5 
1:116-1:116
 A24: AtomExpr 5 
1:118-1:118
 A35: Exprs 
1:123-1:136
 A34: Nodes<Expr> 
1:123-1:136
 A32: SizeExpr 
1:123-1:136
 A31: ArrType ArrType[10] 
1:130-1:136
 A30: AtomType INT 
1:134-1:136

test13.p26

fun a(ab : int, E4 : bool, E5 : bool, E6 : bool, E7 : bool, E8 : bool, E9 : bool, E10 : bool, E3 : bool): int = 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
 A55: Nodes<Defn> 
1:1-1:232
 A54: DefFunDefn a 
1:1-1:232
 A51: Nodes<ParDefn> 
1:6-1:104
 A1: ParDefn ab 
1:7-1:14
 A0: AtomType INT 
1:12-1:14
 A3: ParDefn E4 
1:17-1:25
 A2: AtomType BOOL 
1:22-1:25
 A5: ParDefn E5 
1:28-1:36
 A4: AtomType BOOL 
1:33-1:36
 A7: ParDefn E6 
1:39-1:47
 A6: AtomType BOOL 
1:44-1:47
 A9: ParDefn E7 
1:50-1:58
 A8: AtomType BOOL 
1:55-1:58
 A11: ParDefn E8 
1:61-1:69
 A10: AtomType BOOL 
1:66-1:69
 A13: ParDefn E9 
1:72-1:80
 A12: AtomType BOOL 
1:77-1:80
 A15: ParDefn E10 
1:83-1:92
 A14: AtomType BOOL 
1:89-1:92
 A17: ParDefn E3 
1:95-1:103
 A16: AtomType BOOL 
1:100-1:103
 A18: AtomType INT 
1:107-1:109
 A53: Exprs 
1:113-1:232
 A52: Nodes<Expr> 
1:113-1:232
 A50: IfThenExpr 
1:113-1:232
 A28: IfThenElseExpr 
1:116-1:148
 A19: NameExpr E4 
1:119-1:120
defAt: A3 @ 1:17-1:25
 A25: Exprs 
1:127-1:132
 A24: Nodes<Expr> 
1:127-1:132
 A20: NameExpr E5 
1:127-1:128
defAt: A5 @ 1:28-1:36
 A21: NameExpr E6 
1:131-1:132
defAt: A7 @ 1:39-1:47
 A27: Exprs 
1:139-1:144
 A26: Nodes<Expr> 
1:139-1:144
 A22: NameExpr E7 
1:139-1:140
defAt: A9 @ 1:50-1:58
 A23: NameExpr E8 
1:143-1:144
defAt: A11 @ 1:61-1:69
 A49: Exprs 
1:155-1:228
 A48: Nodes<Expr> 
1:155-1:228
 A47: WhileExpr 
1:155-1:228
 A29: NameExpr E9 
1:161-1:162
defAt: A13 @ 1:72-1:80
 A46: Exprs 
1:167-1:224
 A45: Nodes<Expr> 
1:167-1:224
 A30: NameExpr E10 
1:167-1:169
defAt: A15 @ 1:83-1:92
 A31: AtomExpr "QWERHBEQR " 
1:172-1:183
 A43: Exprs 
1:186-1:220
 A42: Nodes<Expr> 
1:186-1:220
 A41: IfThenElseExpr 
1:187-1:219
 A32: NameExpr E4 
1:190-1:191
defAt: A3 @ 1:17-1:25
 A38: Exprs 
1:198-1:203
 A37: Nodes<Expr> 
1:198-1:203
 A33: NameExpr E5 
1:198-1:199
defAt: A5 @ 1:28-1:36
 A34: NameExpr E6 
1:202-1:203
defAt: A7 @ 1:39-1:47
 A40: Exprs 
1:210-1:215
 A39: Nodes<Expr> 
1:210-1:215
 A35: NameExpr E7 
1:210-1:211
defAt: A9 @ 1:50-1:58
 A36: NameExpr E8 
1:214-1:215
defAt: A11 @ 1:61-1:69
 A44: NameExpr E3 
1:223-1:224
defAt: A17 @ 1:95-1:103

test14.p26

fun f(a : int, b : int, c : int) : bool = not a+b*b+a-c % 10 as int
 A25: Nodes<Defn> 
1:1-1:67
 A24: DefFunDefn f 
1:1-1:67
 A21: Nodes<ParDefn> 
1:6-1:32
 A1: ParDefn a 
1:7-1:13
 A0: AtomType INT 
1:11-1:13
 A3: ParDefn b 
1:16-1:22
 A2: AtomType INT 
1:20-1:22
 A5: ParDefn c 
1:25-1:31
 A4: AtomType INT 
1:29-1:31
 A6: AtomType BOOL 
1:36-1:39
 A23: Exprs 
1:43-1:67
 A22: Nodes<Expr> 
1:43-1:67
 A20: CastExpr 
1:43-1:67
 A18: BinExpr SUB 
1:43-1:60
 A14: BinExpr ADD 
1:43-1:53
 A12: BinExpr ADD 
1:43-1:51
 A8: PfxExpr NOT 
1:43-1:47
 A7: NameExpr a 
1:47-1:47
defAt: A1 @ 1:7-1:13
 A11: BinExpr MUL 
1:49-1:51
 A9: NameExpr b 
1:49-1:49
defAt: A3 @ 1:16-1:22
 A10: NameExpr b 
1:51-1:51
defAt: A3 @ 1:16-1:22
 A13: NameExpr a 
1:53-1:53
defAt: A1 @ 1:7-1:13
 A17: BinExpr MOD 
1:55-1:60
 A15: NameExpr c 
1:55-1:55
defAt: A5 @ 1:25-1:31
 A16: AtomExpr 10 
1:59-1:60
 A19: AtomType INT 
1:65-1:67

test15.p26

var b : int
fun f(a : int) : void = a = b   or false and true != false + 2 * 4 ^
 A23: Nodes<Defn> 
1:1-2:68
 A1: VarDefn b 
1:1-1:11
 A0: AtomType INT 
1:9-1:11
 A22: DefFunDefn f 
2:1-2:68
 A19: Nodes<ParDefn> 
2:6-2:14
 A3: ParDefn a 
2:7-2:13
 A2: AtomType INT 
2:11-2:13
 A4: AtomType VOID 
2:18-2:21
 A21: Exprs 
2:25-2:68
 A20: Nodes<Expr> 
2:25-2:68
 A18: AsgnExpr 
2:25-2:68
 A5: NameExpr a 
2:25-2:25
defAt: A3 @ 2:7-2:13
 A17: BinExpr OR 
2:29-2:68
 A6: NameExpr b 
2:29-2:29
defAt: A1 @ 1:1-1:11
 A16: BinExpr AND 
2:36-2:68
 A7: AtomExpr false 
2:36-2:40
 A15: BinExpr NEQ 
2:46-2:68
 A8: AtomExpr true 
2:46-2:49
 A14: BinExpr ADD 
2:54-2:68
 A9: AtomExpr false 
2:54-2:58
 A13: BinExpr MUL 
2:62-2:68
 A10: AtomExpr 2 
2:62-2:62
 A12: SfxExpr PTR 
2:66-2:68
 A11: AtomExpr 4 
2:66-2:66

test16.p26

typ a = (::int)
fun f() : {a: int} = 
    ^a^
 A15: Nodes<Defn> 
1:1-3:7
 A3: TypDefn a 
1:1-1:15
 A2: FunType 
1:9-1:15
 A1: Nodes<Type> 
 A0: AtomType INT 
1:12-1:14
 A14: DefFunDefn f 
2:1-3:7
 A11: Nodes<ParDefn> 
 A7: UniType 
2:11-2:18
 A6: Nodes<CompDefn> 
2:12-2:17
 A5: CompDefn a 
2:12-2:17
 A4: AtomType INT 
2:15-2:17
 A13: Exprs 
3:5-3:7
 A12: Nodes<Expr> 
3:5-3:7
 A10: PfxExpr PTR 
3:5-3:7
 A9: SfxExpr PTR 
3:6-3:7
 A8: NameExpr a 
3:6-3:6
defAt: A3 @ 1:1-1:15

test17.p26

typ hax = {a : int}
var id : (((((((int)))))))
fun x() : void =
	(1, 2, 3, 4)
 A18: Nodes<Defn> 
1:1-4:20
 A4: TypDefn hax 
1:1-1:19
 A3: UniType 
1:11-1:19
 A2: Nodes<CompDefn> 
1:12-1:18
 A1: CompDefn a 
1:12-1:18
 A0: AtomType INT 
1:16-1:18
 A6: VarDefn id 
2:1-2:26
 A5: AtomType INT 
2:10-2:26
 A17: DefFunDefn x 
3:1-4:20
 A14: Nodes<ParDefn> 
 A7: AtomType VOID 
3:11-3:14
 A16: Exprs 
4:9-4:20
 A15: Nodes<Expr> 
4:9-4:20
 A13: Exprs 
4:9-4:20
 A12: Nodes<Expr> 
4:9-4:20
 A8: AtomExpr 1 
4:10-4:10
 A9: AtomExpr 2 
4:13-4:13
 A10: AtomExpr 3 
4:16-4:16
 A11: AtomExpr 4 
4:19-4:19

test18.p26

fun a(b: int): int =

    b * while b do b + 1 end
 A16: Nodes<Defn> 
1:1-3:28
 A15: DefFunDefn a 
1:1-3:28
 A12: Nodes<ParDefn> 
1:6-1:13
 A1: ParDefn b 
1:7-1:12
 A0: AtomType INT 
1:10-1:12
 A2: AtomType INT 
1:16-1:18
 A14: Exprs 
3:5-3:28
 A13: Nodes<Expr> 
3:5-3:28
 A11: BinExpr MUL 
3:5-3:28
 A3: NameExpr b 
3:5-3:5
defAt: A1 @ 1:7-1:12
 A10: WhileExpr 
3:9-3:28
 A4: NameExpr b 
3:15-3:15
defAt: A1 @ 1:7-1:12
 A9: Exprs 
3:20-3:24
 A8: Nodes<Expr> 
3:20-3:24
 A7: BinExpr ADD 
3:20-3:24
 A5: NameExpr b 
3:20-3:20
defAt: A1 @ 1:7-1:12
 A6: AtomExpr 1 
3:24-3:24

test19.p26

typ stevilka = int
var globalnast : stevilka
fun funkcija (prviarg : stevilka, drugiarg : bool, a : int, b : int, c : int) : int =
	let
		var nvoaspr : int
	in
		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
	end
 A74: Nodes<Defn> 
1:1-13:11
 A1: TypDefn stevilka 
1:1-1:18
 A0: AtomType INT 
1:16-1:18
 A3: VarDefn globalnast 
2:1-2:25
 A2: NameType stevilka 
2:18-2:25
defAt: A1 @ 1:1-1:18
 A73: DefFunDefn funkcija 
3:1-13:11
 A70: Nodes<ParDefn> 
3:14-3:77
 A5: ParDefn prviarg 
3:15-3:32
 A4: NameType stevilka 
3:25-3:32
defAt: A1 @ 1:1-1:18
 A7: ParDefn drugiarg 
3:35-3:49
 A6: AtomType BOOL 
3:46-3:49
 A9: ParDefn a 
3:52-3:58
 A8: AtomType INT 
3:56-3:58
 A11: ParDefn b 
3:61-3:67
 A10: AtomType INT 
3:65-3:67
 A13: ParDefn c 
3:70-3:76
 A12: AtomType INT 
3:74-3:76
 A14: AtomType INT 
3:81-3:83
 A72: Exprs 
4:9-13:11
 A71: Nodes<Expr> 
4:9-13:11
 A69: LetExpr 
4:9-13:11
 A66: Nodes<Defn> 
5:17-5:33
 A16: VarDefn nvoaspr 
5:17-5:33
 A15: AtomType INT 
5:31-5:33
 A68: Exprs 
7:17-12:38
 A67: Nodes<Expr> 
7:17-12:38
 A24: AsgnExpr 
7:17-7:36
 A17: NameExpr nvoaspr 
7:17-7:23
defAt: A16 @ 5:17-5:33
 A23: BinExpr SUB 
7:27-7:36
 A21: BinExpr ADD 
7:27-7:32
 A18: NameExpr a 
7:27-7:27
defAt: A9 @ 3:52-3:58
 A20: PfxExpr SUB 
7:31-7:32
 A19: NameExpr b 
7:32-7:32
defAt: A11 @ 3:61-3:67
 A22: NameExpr c 
7:36-7:36
defAt: A13 @ 3:70-3:76
 A31: AsgnExpr 
8:17-8:41
 A25: NameExpr nvoaspr 
8:17-8:23
defAt: A16 @ 5:17-5:33
 A30: BinExpr ADD 
8:27-8:41
 A28: BinExpr MUL 
8:27-8:37
 A26: NameExpr nvoaspr 
8:27-8:33
defAt: A16 @ 5:17-5:33
 A27: AtomExpr 3 
8:37-8:37
 A29: AtomExpr 2 
8:41-8:41
 A38: AsgnExpr 
9:17-9:41
 A32: NameExpr nvoaspr 
9:17-9:23
defAt: A16 @ 5:17-5:33
 A37: BinExpr ADD 
9:27-9:41
 A33: NameExpr nvoaspr 
9:27-9:33
defAt: A16 @ 5:17-5:33
 A36: BinExpr MUL 
9:37-9:41
 A34: AtomExpr 3 
9:37-9:37
 A35: AtomExpr 2 
9:41-9:41
 A45: AsgnExpr 
10:17-10:35
 A39: NameExpr nvoaspr 
10:17-10:23
defAt: A16 @ 5:17-5:33
 A44: BinExpr ADD 
10:27-10:35
 A42: BinExpr SUB 
10:27-10:31
 A40: AtomExpr 1 
10:27-10:27
 A41: AtomExpr 3 
10:31-10:31
 A43: AtomExpr 2 
10:35-10:35
 A58: AsgnExpr 
11:17-11:47
 A46: NameExpr nvoaspr 
11:17-11:23
defAt: A16 @ 5:17-5:33
 A57: BinExpr ADD 
11:27-11:47
 A51: BinExpr MUL 
11:27-11:35
 A49: BinExpr DIV 
11:27-11:31
 A47: AtomExpr 1 
11:27-11:27
 A48: AtomExpr 3 
11:31-11:31
 A50: AtomExpr 2 
11:35-11:35
 A56: BinExpr DIV 
11:39-11:47
 A54: BinExpr MUL 
11:39-11:43
 A52: AtomExpr 1 
11:39-11:39
 A53: AtomExpr 3 
11:43-11:43
 A55: AtomExpr 2 
11:47-11:47
 A65: IfThenExpr 
12:17-12:38
 A61: BinExpr EQU 
12:20-12:25
 A59: AtomExpr 1 
12:20-12:20
 A60: AtomExpr 2 
12:25-12:25
 A64: Exprs 
12:32-12:34
 A63: Nodes<Expr> 
12:32-12:34
 A62: AtomExpr 666 
12:32-12:34

test1.p26

typ test = (a: int, b: char)
 A7: Nodes<Defn> 
1:1-1:28
 A6: TypDefn test 
1:1-1:28
 A5: StrType 
1:12-1:28
 A4: Nodes<CompDefn> 
1:13-1:27
 A1: CompDefn a 
1:13-1:18
 A0: AtomType INT 
1:16-1:18
 A3: CompDefn b 
1:21-1:27
 A2: AtomType CHAR 
1:24-1:27

test20.p26

fun g () : void = f()
fun f () : void
 A11: Nodes<Defn> 
1:1-2:15
 A7: DefFunDefn g 
1:1-1:21
 A4: Nodes<ParDefn> 
 A0: AtomType VOID 
1:12-1:15
 A6: Exprs 
1:19-1:21
 A5: Nodes<Expr> 
1:19-1:21
 A3: CallExpr 
1:19-1:21
 A1: NameExpr f 
1:19-1:19
defAt: A10 @ 2:1-2:15
 A2: Nodes<Expr> 
 A10: ExtFunDefn f 
2:1-2:15
 A9: Nodes<ParDefn> 
 A8: AtomType VOID 
2:12-2:15

test21.p26

fun f() : void =
	let
		fun g() : void =
			h(),
			let
				fun f() : void = g()
				fun g() : void
				fun x() : void
			in
				f(),
				g(),
				h()
			end
		fun h() : void
	in
		f, g, h
	end
 A50: Nodes<Defn> 
1:1-17:11
 A49: DefFunDefn f 
1:1-17:11
 A46: Nodes<ParDefn> 
 A0: AtomType VOID 
1:11-1:14
 A48: Exprs 
2:9-17:11
 A47: Nodes<Expr> 
2:9-17:11
 A45: LetExpr 
2:9-17:11
 A42: Nodes<Defn> 
3:17-14:30
 A35: DefFunDefn g 
3:17-13:27
 A32: Nodes<ParDefn> 
 A1: AtomType VOID 
3:27-3:30
 A34: Exprs 
4:25-13:27
 A33: Nodes<Expr> 
4:25-13:27
 A4: CallExpr 
4:25-4:27
 A2: NameExpr h 
4:25-4:25
defAt: A38 @ 14:17-14:30
 A3: Nodes<Expr> 
 A31: LetExpr 
5:25-13:27
 A28: Nodes<Defn> 
6:33-8:46
 A12: DefFunDefn f 
6:33-6:52
 A9: Nodes<ParDefn> 
 A5: AtomType VOID 
6:43-6:46
 A11: Exprs 
6:50-6:52
 A10: Nodes<Expr> 
6:50-6:52
 A8: CallExpr 
6:50-6:52
 A6: NameExpr g 
6:50-6:50
defAt: A15 @ 7:33-7:46
 A7: Nodes<Expr> 
 A15: ExtFunDefn g 
7:33-7:46
 A14: Nodes<ParDefn> 
 A13: AtomType VOID 
7:43-7:46
 A18: ExtFunDefn x 
8:33-8:46
 A17: Nodes<ParDefn> 
 A16: AtomType VOID 
8:43-8:46
 A30: Exprs 
10:33-12:35
 A29: Nodes<Expr> 
10:33-12:35
 A21: CallExpr 
10:33-10:35
 A19: NameExpr f 
10:33-10:33
defAt: A12 @ 6:33-6:52
 A20: Nodes<Expr> 
 A24: CallExpr 
11:33-11:35
 A22: NameExpr g 
11:33-11:33
defAt: A15 @ 7:33-7:46
 A23: Nodes<Expr> 
 A27: CallExpr 
12:33-12:35
 A25: NameExpr h 
12:33-12:33
defAt: A38 @ 14:17-14:30
 A26: Nodes<Expr> 
 A38: ExtFunDefn h 
14:17-14:30
 A37: Nodes<ParDefn> 
 A36: AtomType VOID 
14:27-14:30
 A44: Exprs 
16:17-16:23
 A43: Nodes<Expr> 
16:17-16:23
 A39: NameExpr f 
16:17-16:17
defAt: A49 @ 1:1-17:11
 A40: NameExpr g 
16:20-16:20
defAt: A35 @ 3:17-13:27
 A41: NameExpr h 
16:23-16:23
defAt: A38 @ 14:17-14:30

test22.p26

typ t1 = t2
typ t2 = t1
 A4: Nodes<Defn> 
1:1-2:11
 A1: TypDefn t1 
1:1-1:11
 A0: NameType t2 
1:10-1:11
defAt: A3 @ 2:1-2:11
 A3: TypDefn t2 
2:1-2:11
 A2: NameType t1 
2:10-2:11
defAt: A1 @ 1:1-1:11

test2.p26

// defnList test
fun f() : int = let typ a = int typ b = int in a, b end

 A15: Nodes<Defn> 
2:1-2:55
 A14: DefFunDefn f 
2:1-2:55
 A11: Nodes<ParDefn> 
 A0: AtomType INT 
2:11-2:13
 A13: Exprs 
2:17-2:55
 A12: Nodes<Expr> 
2:17-2:55
 A10: LetExpr 
2:17-2:55
 A7: Nodes<Defn> 
2:21-2:43
 A2: TypDefn a 
2:21-2:31
 A1: AtomType INT 
2:29-2:31
 A4: TypDefn b 
2:33-2:43
 A3: AtomType INT 
2:41-2:43
 A9: Exprs 
2:48-2:51
 A8: Nodes<Expr> 
2:48-2:51
 A5: NameExpr a 
2:48-2:48
defAt: A2 @ 2:21-2:31
 A6: NameExpr b 
2:51-2:51
defAt: A4 @ 2:33-2:43

test3.p26

typ idt = int
typ T1 = int
typ T2 = T1
typ T3 = T2
typ id = idt

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
 A39: Nodes<Defn> 
1:1-11:60
 A1: TypDefn idt 
1:1-1:13
 A0: AtomType INT 
1:11-1:13
 A3: TypDefn T1 
2:1-2:12
 A2: AtomType INT 
2:10-2:12
 A5: TypDefn T2 
3:1-3:11
 A4: NameType T1 
3:10-3:11
defAt: A3 @ 2:1-2:12
 A7: TypDefn T3 
4:1-4:11
 A6: NameType T2 
4:10-4:11
defAt: A5 @ 3:1-3:11
 A9: TypDefn id 
5:1-5:12
 A8: NameType idt 
5:10-5:12
defAt: A1 @ 1:1-1:13
 A12: VarDefn idv 
7:1-7:17
 A11: ArrType ArrType[10] 
7:11-7:17
 A10: NameType idt 
7:15-7:17
defAt: A1 @ 1:1-1:13
 A21: ExtFunDefn idf 
9:1-9:48
 A20: Nodes<ParDefn> 
9:9-9:42
 A14: ParDefn id1 
9:11-9:18
 A13: NameType T1 
9:17-9:18
defAt: A3 @ 2:1-2:12
 A16: ParDefn id2 
9:22-9:29
 A15: NameType T2 
9:28-9:29
defAt: A5 @ 3:1-3:11
 A18: ParDefn id3 
9:33-9:40
 A17: NameType T3 
9:39-9:40
defAt: A7 @ 4:1-4:11
 A19: NameType idt 
9:46-9:48
defAt: A1 @ 1:1-1:13
 A38: DefFunDefn idff 
11:1-11:60
 A35: Nodes<ParDefn> 
11:10-11:20
 A23: ParDefn abc 
11:12-11:19
 A22: NameType id 
11:18-11:19
defAt: A9 @ 5:1-5:12
 A24: NameType idt 
11:24-11:26
defAt: A1 @ 1:1-1:13
 A37: Exprs 
11:30-11:60
 A36: Nodes<Expr> 
11:30-11:60
 A25: AtomExpr 1 
11:30-11:30
 A26: AtomExpr 2 
11:33-11:33
 A27: AtomExpr 3 
11:36-11:36
 A34: WhileExpr 
11:39-11:60
 A28: AtomExpr 2 
11:45-11:45
 A33: Exprs 
11:50-11:56
 A32: Nodes<Expr> 
11:50-11:56
 A29: AtomExpr 1 
11:50-11:50
 A30: AtomExpr 2 
11:53-11:53
 A31: AtomExpr 3 
11:56-11:56

test4.p26

typ id = ^^^^^^^^^^^^^^void
typ id2 = [1][2][4]bool
typ randomid = id2
var id3 : (a:[1][2][4]bool, b: ^^^^^^^^^^^^^^void, c: randomid, d : int, e : bool, f : char, g : { h : ^^int, i: void} )
 A64: Nodes<Defn> 
1:1-4:120
 A15: TypDefn id 
1:1-1:27
 A14: PtrType 
1:10-1:27
 A13: PtrType 
1:11-1:27
 A12: PtrType 
1:12-1:27
 A11: PtrType 
1:13-1:27
 A10: PtrType 
1:14-1:27
 A9: PtrType 
1:15-1:27
 A8: PtrType 
1:16-1:27
 A7: PtrType 
1:17-1:27
 A6: PtrType 
1:18-1:27
 A5: PtrType 
1:19-1:27
 A4: PtrType 
1:20-1:27
 A3: PtrType 
1:21-1:27
 A2: PtrType 
1:22-1:27
 A1: PtrType 
1:23-1:27
 A0: AtomType VOID 
1:24-1:27
 A20: TypDefn id2 
2:1-2:23
 A19: ArrType ArrType[1] 
2:11-2:23
 A18: ArrType ArrType[2] 
2:14-2:23
 A17: ArrType ArrType[4] 
2:17-2:23
 A16: AtomType BOOL 
2:20-2:23
 A22: TypDefn randomid 
3:1-3:18
 A21: NameType id2 
3:16-3:18
defAt: A20 @ 2:1-2:23
 A63: VarDefn id3 
4:1-4:120
 A62: StrType 
4:11-4:120
 A61: Nodes<CompDefn> 
4:12-4:118
 A27: CompDefn a 
4:12-4:26
 A26: ArrType ArrType[1] 
4:14-4:26
 A25: ArrType ArrType[2] 
4:17-4:26
 A24: ArrType ArrType[4] 
4:20-4:26
 A23: AtomType BOOL 
4:23-4:26
 A43: CompDefn b 
4:29-4:49
 A42: PtrType 
4:32-4:49
 A41: PtrType 
4:33-4:49
 A40: PtrType 
4:34-4:49
 A39: PtrType 
4:35-4:49
 A38: PtrType 
4:36-4:49
 A37: PtrType 
4:37-4:49
 A36: PtrType 
4:38-4:49
 A35: PtrType 
4:39-4:49
 A34: PtrType 
4:40-4:49
 A33: PtrType 
4:41-4:49
 A32: PtrType 
4:42-4:49
 A31: PtrType 
4:43-4:49
 A30: PtrType 
4:44-4:49
 A29: PtrType 
4:45-4:49
 A28: AtomType VOID 
4:46-4:49
 A45: CompDefn c 
4:52-4:62
 A44: NameType randomid 
4:55-4:62
defAt: A22 @ 3:1-3:18
 A47: CompDefn d 
4:65-4:71
 A46: AtomType INT 
4:69-4:71
 A49: CompDefn e 
4:74-4:81
 A48: AtomType BOOL 
4:78-4:81
 A51: CompDefn f 
4:84-4:91
 A50: AtomType CHAR 
4:88-4:91
 A60: CompDefn g 
4:94-4:118
 A59: UniType 
4:98-4:118
 A58: Nodes<CompDefn> 
4:100-4:117
 A55: CompDefn h 
4:100-4:108
 A54: PtrType 
4:104-4:108
 A53: PtrType 
4:105-4:108
 A52: AtomType INT 
4:106-4:108
 A57: CompDefn i 
4:111-4:117
 A56: AtomType VOID 
4:114-4:117

test5.p26

typ randomid = void
var id4 : (a:[1][2][4]bool, b: ^^^^^^^^^^^^^^void, c: randomid, x: (d : int, e : bool, f : char, g : { h : ^^int, i: void}) )
 A46: Nodes<Defn> 
1:1-2:125
 A1: TypDefn randomid 
1:1-1:19
 A0: AtomType VOID 
1:16-1:19
 A45: VarDefn id4 
2:1-2:125
 A44: StrType 
2:11-2:125
 A43: Nodes<CompDefn> 
2:12-2:123
 A6: CompDefn a 
2:12-2:26
 A5: ArrType ArrType[1] 
2:14-2:26
 A4: ArrType ArrType[2] 
2:17-2:26
 A3: ArrType ArrType[4] 
2:20-2:26
 A2: AtomType BOOL 
2:23-2:26
 A22: CompDefn b 
2:29-2:49
 A21: PtrType 
2:32-2:49
 A20: PtrType 
2:33-2:49
 A19: PtrType 
2:34-2:49
 A18: PtrType 
2:35-2:49
 A17: PtrType 
2:36-2:49
 A16: PtrType 
2:37-2:49
 A15: PtrType 
2:38-2:49
 A14: PtrType 
2:39-2:49
 A13: PtrType 
2:40-2:49
 A12: PtrType 
2:41-2:49
 A11: PtrType 
2:42-2:49
 A10: PtrType 
2:43-2:49
 A9: PtrType 
2:44-2:49
 A8: PtrType 
2:45-2:49
 A7: AtomType VOID 
2:46-2:49
 A24: CompDefn c 
2:52-2:62
 A23: NameType randomid 
2:55-2:62
defAt: A1 @ 1:1-1:19
 A42: CompDefn x 
2:65-2:123
 A41: StrType 
2:68-2:123
 A40: Nodes<CompDefn> 
2:69-2:122
 A26: CompDefn d 
2:69-2:75
 A25: AtomType INT 
2:73-2:75
 A28: CompDefn e 
2:78-2:85
 A27: AtomType BOOL 
2:82-2:85
 A30: CompDefn f 
2:88-2:95
 A29: AtomType CHAR 
2:92-2:95
 A39: CompDefn g 
2:98-2:122
 A38: UniType 
2:102-2:122
 A37: Nodes<CompDefn> 
2:104-2:121
 A34: CompDefn h 
2:104-2:112
 A33: PtrType 
2:108-2:112
 A32: PtrType 
2:109-2:112
 A31: AtomType INT 
2:110-2:112
 A36: CompDefn i 
2:115-2:121
 A35: AtomType VOID 
2:118-2:121

test6.p26

var rav : { a: {a: int}, b: (:{a: ( g : int)}:bool)}
 A19: Nodes<Defn> 
1:1-1:52
 A18: VarDefn rav 
1:1-1:52
 A17: UniType 
1:11-1:52
 A16: Nodes<CompDefn> 
1:13-1:51
 A4: CompDefn a 
1:13-1:23
 A3: UniType 
1:16-1:23
 A2: Nodes<CompDefn> 
1:17-1:22
 A1: CompDefn a 
1:17-1:22
 A0: AtomType INT 
1:20-1:22
 A15: CompDefn b 
1:26-1:51
 A14: FunType 
1:29-1:51
 A13: Nodes<Type> 
1:30-1:46
 A11: UniType 
1:31-1:45
 A10: Nodes<CompDefn> 
1:32-1:44
 A9: CompDefn a 
1:32-1:44
 A8: StrType 
1:35-1:44
 A7: Nodes<CompDefn> 
1:37-1:43
 A6: CompDefn g 
1:37-1:43
 A5: AtomType INT 
1:41-1:43
 A12: AtomType BOOL 
1:47-1:50

test7.p26

typ id = char
typ t = (((id)))
typ t2 = (id: (int))
typ t3 = (((({a: int}))))
 A14: Nodes<Defn> 
1:1-4:25
 A1: TypDefn id 
1:1-1:13
 A0: AtomType CHAR 
1:10-1:13
 A3: TypDefn t 
2:1-2:16
 A2: NameType id 
2:9-2:16
defAt: A1 @ 1:1-1:13
 A8: TypDefn t2 
3:1-3:20
 A7: StrType 
3:10-3:20
 A6: Nodes<CompDefn> 
3:11-3:19
 A5: CompDefn id 
3:11-3:19
 A4: AtomType INT 
3:15-3:19
 A13: TypDefn t3 
4:1-4:25
 A12: UniType 
4:10-4:25
 A11: Nodes<CompDefn> 
4:15-4:20
 A10: CompDefn a 
4:15-4:20
 A9: AtomType INT 
4:18-4:20

test8.p26

typ randomid = int
fun abc () : (a:[1][2][4]bool, b: ^^^^^^^^^^^^^^void, c: randomid, x: (d : int, e : bool, f : char, g : { h : ^^int, i: void}) )

 A47: Nodes<Defn> 
1:1-2:128
 A1: TypDefn randomid 
1:1-1:18
 A0: AtomType INT 
1:16-1:18
 A46: ExtFunDefn abc 
2:1-2:128
 A45: Nodes<ParDefn> 
 A44: StrType 
2:14-2:128
 A43: Nodes<CompDefn> 
2:15-2:126
 A6: CompDefn a 
2:15-2:29
 A5: ArrType ArrType[1] 
2:17-2:29
 A4: ArrType ArrType[2] 
2:20-2:29
 A3: ArrType ArrType[4] 
2:23-2:29
 A2: AtomType BOOL 
2:26-2:29
 A22: CompDefn b 
2:32-2:52
 A21: PtrType 
2:35-2:52
 A20: PtrType 
2:36-2:52
 A19: PtrType 
2:37-2:52
 A18: PtrType 
2:38-2:52
 A17: PtrType 
2:39-2:52
 A16: PtrType 
2:40-2:52
 A15: PtrType 
2:41-2:52
 A14: PtrType 
2:42-2:52
 A13: PtrType 
2:43-2:52
 A12: PtrType 
2:44-2:52
 A11: PtrType 
2:45-2:52
 A10: PtrType 
2:46-2:52
 A9: PtrType 
2:47-2:52
 A8: PtrType 
2:48-2:52
 A7: AtomType VOID 
2:49-2:52
 A24: CompDefn c 
2:55-2:65
 A23: NameType randomid 
2:58-2:65
defAt: A1 @ 1:1-1:18
 A42: CompDefn x 
2:68-2:126
 A41: StrType 
2:71-2:126
 A40: Nodes<CompDefn> 
2:72-2:125
 A26: CompDefn d 
2:72-2:78
 A25: AtomType INT 
2:76-2:78
 A28: CompDefn e 
2:81-2:88
 A27: AtomType BOOL 
2:85-2:88
 A30: CompDefn f 
2:91-2:98
 A29: AtomType CHAR 
2:95-2:98
 A39: CompDefn g 
2:101-2:125
 A38: UniType 
2:105-2:125
 A37: Nodes<CompDefn> 
2:107-2:124
 A34: CompDefn h 
2:107-2:115
 A33: PtrType 
2:111-2:115
 A32: PtrType 
2:112-2:115
 A31: AtomType INT 
2:113-2:115
 A36: CompDefn i 
2:118-2:124
 A35: AtomType VOID 
2:121-2:124

test9.p26

typ idt = int
fun id ( id : idt ) : (a:[1][2][4][12]void) = id, 1, true, false, 'a', "niz", "niz spet", none, nil
 A25: Nodes<Defn> 
1:1-2:99
 A1: TypDefn idt 
1:1-1:13
 A0: AtomType INT 
1:11-1:13
 A24: DefFunDefn id 
2:1-2:99
 A21: Nodes<ParDefn> 
2:8-2:19
 A3: ParDefn id 
2:10-2:17
 A2: NameType idt 
2:15-2:17
defAt: A1 @ 1:1-1:13
 A11: StrType 
2:23-2:43
 A10: Nodes<CompDefn> 
2:24-2:42
 A9: CompDefn a 
2:24-2:42
 A8: ArrType ArrType[1] 
2:26-2:42
 A7: ArrType ArrType[2] 
2:29-2:42
 A6: ArrType ArrType[4] 
2:32-2:42
 A5: ArrType ArrType[12] 
2:35-2:42
 A4: AtomType VOID 
2:39-2:42
 A23: Exprs 
2:47-2:99
 A22: Nodes<Expr> 
2:47-2:99
 A12: NameExpr id 
2:47-2:48
defAt: A3 @ 2:10-2:17
 A13: AtomExpr 1 
2:51-2:51
 A14: AtomExpr true 
2:54-2:57
 A15: AtomExpr false 
2:60-2:64
 A16: AtomExpr 'a' 
2:67-2:69
 A17: AtomExpr "niz" 
2:72-2:76
 A18: AtomExpr "niz spet" 
2:79-2:88
 A19: AtomExpr none 
2:91-2:94
 A20: AtomExpr nil 
2:97-2:99