-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexample.mac
85 lines (60 loc) · 1.71 KB
/
example.mac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// vi:ft=rsl:ts=4:sw=4:et
const DEBUG = False;
import macro;
private var d: double = 1.1;
xx;
[Output field: #########](1:c);
record yy ("ai");
var x = 0;
print(yy);
if (not (x > 1) or (a > 1))
aa;
end;
array a1;
var a2 = TArray;
ValType(a1);
record r1 ("dobj_dbt") key 1 write;
file r1 ("msg.txt") txt 2048;
for
end;
Class First() // Класс-родитель
Var x = 2, y = 3;
Macro Sum()
macro fold()
if (DEBUG)
println("hi");
end;
var x: Integer = 3;
for (var i, 0, 100, 1)
var r: TRecHandler;
r.func(1);
if (r.field[1] > 10)
return 10;
end;
end;
return x;
end;
return x + y;
end;
end;
Class (First) Second() // Класс-наследник
InitFirst();
Var a = 100;
Macro Sum() // Начало переопределения родительского метода Sum()
return Sum() + a; // Использование родительского метода Sum() в методе Sum() наследника
end; // Конец переопределения родительского метода Sum()
Macro Sum2()
return Sum() + a; // Использование метода Sum() наследника
end;
end;
var str = "sdadf";
var str2 = "asdf"
"asdf"
"zxcv";
var obj = Second(); // Создание объекта класса Second()
println(obj.child.param.Sum()); // Результат: 105
println(obj.Sum2()); // Результат: 205
// single line
/* single line */
/* multi
line */