forked from risor-io/risor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrisor.grammar.json
121 lines (121 loc) · 2.49 KB
/
risor.grammar.json
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
{
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
"name": "Risor",
"patterns": [
{
"include": "#keywords"
},
{
"include": "#strings"
},
{
"include": "#comments"
},
{
"include": "#constants"
},
{
"include": "#variables"
},
{
"include": "#backtick_strings"
},
{
"include": "#single_quote_strings"
},
{
"include": "#block_comments"
}
],
"repository": {
"variables": {
"patterns": [
{
"name": "variable.other",
"match": "[a-zA-Z0-9_]+(?=[\\s]+(:=|=)[\\s]+)"
},
{
"name": "entity.name.function",
"match": "[a-zA-Z0-9_]+(?=\\()"
}
]
},
"comments": {
"patterns": [
{
"name": "comment.line.double-slash",
"match": "(//)(.*)"
},
{
"name": "comment.line.number-sign",
"match": "(#)(.*)"
}
]
},
"constants": {
"patterns": [
{
"name": "constant.language",
"match": "\\b(true|false|nil)\\b"
},
{
"name": "constant.numeric",
"match": "\\b([0-9]+[.]*[0-9]*)\\b"
}
]
},
"keywords": {
"patterns": [
{
"name": "keyword.control.risor",
"match": "\\b(if|else|switch|case|default|var|const|for|func|from|import|return|break|continue|in|range|as|defer|struct|go)\\b"
}
]
},
"strings": {
"name": "string.quoted.double.risor",
"begin": "\"",
"end": "\"",
"patterns": [
{
"name": "constant.character.escape.risor",
"match": "\\\\."
}
]
},
"backtick_strings": {
"name": "string.quoted.other.risor",
"begin": "`",
"end": "`",
"patterns": [
{
"name": "constant.character.escape.risor",
"match": "\\\\."
}
]
},
"single_quote_strings": {
"name": "string.quoted.other.risor",
"begin": "'",
"end": "'",
"patterns": [
{
"name": "constant.character.escape.risor",
"match": "\\\\."
}
]
},
"block_comments": {
"name": "comment.block.risor",
"begin": "/\\*",
"end": "\\*/",
"patterns": [
{
"name": "constant.character.escape.risor",
"match": "\\\\."
}
]
}
},
"scopeName": "source.risor"
}