aboutsummaryrefslogtreecommitdiff
path: root/spec/grammar/lexspec.json
blob: caf1f0e628330a52dec05058a7104ba44f457c3c (plain) (blame)
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
122
123
{
	"name": "vartan",
	"entries": [
		{
			"fragment": true,
			"kind": "lf",
			"pattern": "\\u{000A}"
		},
		{
			"fragment": true,
			"kind": "cr",
			"pattern": "\\u{000D}"
		},
		{
			"fragment": true,
			"kind": "ht",
			"pattern": "\\u{0009}"
		},
		{
			"fragment": true,
			"kind": "sp",
			"pattern": "\\u{0020}"
		},
		{
			"fragment": true,
			"kind": "newline",
			"pattern": "\\f{lf}|\\f{cr}|\\f{cr}\\f{lf}"
		},
		{
			"kind": "white_space",
			"pattern": "(\\f{ht}|\\f{sp})+"
		},
		{
			"kind": "newline",
			"pattern": "\\f{newline}"
		},
		{
			"kind": "line_comment",
			"pattern": "//[^\\u{000A}\\u{000D}]*"
		},
		{
			"kind": "kw_fragment",
			"pattern": "fragment"
		},
		{
			"kind": "identifier",
			"pattern": "[0-9A-Za-z_]+"
		},
		{
			"kind": "terminal_open",
			"pattern": "\"",
			"push": "terminal"
		},
		{
			"modes": ["terminal"],
			"kind": "pattern",
			"pattern": "([^\"\\\\]|\\\\.)+"
		},
		{
			"modes": ["terminal"],
			"kind": "escape_symbol",
			"pattern": "\\\\"
		},
		{
			"modes": ["terminal"],
			"kind": "terminal_close",
			"pattern": "\"",
			"pop": true
		},
		{
			"kind": "string_literal_open",
			"pattern": "'",
			"push": "string_literal"
		},
		{
			"modes": ["string_literal"],
			"kind": "char_seq",
			"pattern": "[^']+"
		},
		{
			"modes": ["string_literal"],
			"kind": "string_literal_close",
			"pattern": "'",
			"pop": true
		},
		{
			"kind": "colon",
			"pattern": ":"
		},
		{
			"kind": "or",
			"pattern": "\\|"
		},
		{
			"kind": "semicolon",
			"pattern": ";"
		},
		{
			"kind": "label_marker",
			"pattern": "@"
		},
		{
			"kind": "expansion",
			"pattern": "\\.\\.\\."
		},
		{
			"kind": "directive_marker",
			"pattern": "#"
		},
		{
			"kind": "ordered_symbol_marker",
			"pattern": "$"
		},
		{
			"kind": "l_paren",
			"pattern": "\\("
		},
		{
			"kind": "r_paren",
			"pattern": "\\)"
		}
	]
}