summaryrefslogtreecommitdiffstats
path: root/tests/snippets/crystal/test_macro.txt
blob: 765caa272c9b332f2e7f362322dc84f4bce03ee4 (plain)
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
---input---
def<=>(other : self) : Int
{%for field in %w(first_name middle_name last_name)%}
cmp={{field.id}}<=>other.{{field.id}}
return cmp if cmp!=0
{%end%}
0
end

---tokens---
'def'         Keyword
'<=>'         Name.Function
'('           Punctuation
'other'       Name
' '           Text.Whitespace
':'           Punctuation
' '           Text.Whitespace
'self'        Keyword
')'           Punctuation
' '           Text.Whitespace
':'           Punctuation
' '           Text.Whitespace
'Int'         Name
'\n'          Text.Whitespace

'{%'          Literal.String.Interpol
'for'         Keyword
' '           Text.Whitespace
'field'       Name
' '           Text.Whitespace
'in'          Keyword
' '           Text.Whitespace
'%w('         Literal.String.Other
'first_name middle_name last_name' Literal.String.Other
')'           Literal.String.Other
'%}'          Literal.String.Interpol
'\n'          Text.Whitespace

'cmp'         Name
'='           Operator
'{{'          Literal.String.Interpol
'field'       Name
'.'           Operator
'id'          Name
'}}'          Literal.String.Interpol
'<=>'         Operator
'other'       Name
'.'           Operator
'{{'          Literal.String.Interpol
'field'       Name
'.'           Operator
'id'          Name
'}}'          Literal.String.Interpol
'\n'          Text.Whitespace

'return'      Keyword
' '           Text.Whitespace
'cmp'         Name
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'cmp'         Name
'!='          Operator
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'{%'          Literal.String.Interpol
'end'         Keyword
'%}'          Literal.String.Interpol
'\n'          Text.Whitespace

'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'end'         Keyword
'\n'          Text.Whitespace