-
Notifications
You must be signed in to change notification settings - Fork 0
/
syntax_test_asm_function.tact
86 lines (79 loc) · 4.09 KB
/
syntax_test_asm_function.tact
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
86
// SYNTAX TEST "Packages/Tact/package/Tact.tmLanguage"
asm fun empty() { }
// <- entity.other.attribute-name.tact
// ^^^ keyword.other.function.tact
// ^^^^^ entity.name.function.tact
// ^ punctuation.brackets.round.tact
// ^ punctuation.brackets.round.tact
// ^ punctuation.brackets.curly.tact
// ^ punctuation.brackets.curly.tact
asm() fun empty2() { }
// <- entity.other.attribute-name.tact
// ^^ punctuation.brackets.round.tact
asm(-> 000) fun rets(): Int { }
// <- entity.other.attribute-name.tact
// ^ punctuation.brackets.round.tact
// ^^ keyword.operator.mapsto.tact
// ^^^ constant.numeric.decimal.tact
// ^ punctuation.brackets.round.tact
asm(arg1 arg2 -> 0) fun args(arg1: Int, arg2: Int): Int { }
// <- entity.other.attribute-name.tact
// ^ punctuation.brackets.round.tact
// ^^^^ variable.other.tact
// ^^^^ variable.other.tact
// ^^ keyword.operator.mapsto.tact
// ^ constant.numeric.decimal.tact
// ^ punctuation.brackets.round.tact
struct Eleven { /* imagine 11 fields */ }
asm(-> 1_0 9 8 7 6 5 4 3 2 1 0) extends fun eleven(self: Int): Eleven { INSTRUCTION INSTRUCTION 000 }
// <- entity.other.attribute-name.tact
// ^ punctuation.brackets.round.tact
// ^^ keyword.operator.mapsto.tact
// ^^^ constant.numeric.decimal.tact
// ^ constant.numeric.decimal.tact
// ^ constant.numeric.decimal.tact
// ^ constant.numeric.decimal.tact
// ^ constant.numeric.decimal.tact
// ^ constant.numeric.decimal.tact
// ^ constant.numeric.decimal.tact
// ^ constant.numeric.decimal.tact
// ^ constant.numeric.decimal.tact
// ^ constant.numeric.decimal.tact
// ^ constant.numeric.decimal.tact
// ^ punctuation.brackets.round.tact
// ^^^^^^^ keyword.other.attribute.tact
// ^^^ keyword.other.function.tact
// ^^^^^^ entity.name.function.tact
// ^ punctuation.brackets.round.tact
// ^^^^ variable.language.this.tact
// ^ punctuation.colon.tact
// ^^^ entity.name.type.tact
// ^ punctuation.brackets.round.tact
// ^ punctuation.colon.tact
// ^^^^^^ entity.name.type.tact
// ^ punctuation.brackets.curly.tact
// ^^^^^^^^^^^ constant.other.caps.tact
// ^^^^^^^^^^^ constant.other.caps.tact
// ^^^ constant.numeric.decimal.tact
// ^ punctuation.brackets.curly.tact
asm fun isIntAnInt(x: Int): Bool {
<{
TRY:<{
0 PUSHINT ADD DROP -1 PUSHINT
// <- constant.numeric.decimal.tact
//^^^^^^^ constant.other.caps.tact
// ^^^ constant.other.caps.tact
// ^^^^ constant.other.caps.tact
// ^ keyword.operator.arithmetic.tact
// ^ constant.numeric.decimal.tact
// ^^^^^^^ constant.other.caps.tact
}>CATCH<{
2DROP 0 PUSHINT
// ^ constant.numeric.decimal.tact
// ^^^^^^^ constant.other.caps.tact
}>
}>CONT 1 1 CALLXARGS
// ^ constant.numeric.decimal.tact
// ^ constant.numeric.decimal.tact
// ^^^^^^^^^ constant.other.caps.tact
}