-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathjs.php
More file actions
147 lines (124 loc) · 4.36 KB
/
js.php
File metadata and controls
147 lines (124 loc) · 4.36 KB
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<?php
/*------------------------------------------------------------------------------
Strings
------------------------------------------------------------------------------*/
Bitter::rule(
Bitter::id('js-string-escape'),
Bitter::tag('escape'),
Bitter::capture('\\\([bfnOrtv\'\"\\\]|x[a-fA-F0-9]{2}|h[a-fA-F0-9]{4}|[0-7]{1,3})')
);
Bitter::rule(
Bitter::id('js-string-single'),
Bitter::tag('string single'),
Bitter::start("'"),
Bitter::stop("'"),
Bitter::id('js-string-escape')
);
Bitter::rule(
Bitter::id('js-string-double'),
Bitter::tag('string double'),
Bitter::start('"'),
Bitter::stop('"'),
Bitter::id('js-string-escape')
);
/*------------------------------------------------------------------------------
Regexp
------------------------------------------------------------------------------*/
Bitter::rule(
Bitter::id('js-regexp-escape'),
Bitter::tag('escape'),
Bitter::capture('\\\([bBdDfnrsStvwW0/]|c[A-Z]|x[a-fA-F0-9]{2}|h[a-fA-F0-9]{4}|[0-7]{1,3})')
);
Bitter::rule(
Bitter::id('js-regexp'),
Bitter::tag('regexp'),
Bitter::start("/"),
Bitter::stop("/[gim]*"),
Bitter::id('js-regexp-escape')
);
/*------------------------------------------------------------------------------
Numbers
------------------------------------------------------------------------------*/
Bitter::rule(
Bitter::id('js-number-float'),
Bitter::capture("\b[0-9]*\.[0-9]+\b"),
Bitter::tag('number float')
);
Bitter::rule(
Bitter::id('js-number-integer'),
Bitter::capture("\b[0-9]+\b"),
Bitter::tag('number integer')
);
/*------------------------------------------------------------------------------
Comments
------------------------------------------------------------------------------*/
Bitter::rule(
Bitter::id('js-comment-block'),
Bitter::tag('comment block'),
Bitter::start('/\*'),
Bitter::stop('\*/')
);
Bitter::rule(
Bitter::id('js-comment-line'),
Bitter::tag('comment line'),
Bitter::capture("//.*", 'm')
);
/*------------------------------------------------------------------------------
Keywords
------------------------------------------------------------------------------*/
Bitter::rule(
Bitter::id('js-keyword'),
Bitter::tag('keyword'),
Bitter::capture('\b(with|while|volatile|void|var|typeof|try|true|transient|throws|throw|this|synchronized|switch|super|static|short|return|public|protected|private|package|null|new|native|long|interface|int|instanceof|in|import|implements|if|goto|function|for|float|finally|final|false|extends|export|enum|else|double|do|delete|default|debugger|continue|const|class|char|catch|case|byte|break|boolean|abstract)\b', 'i')
);
/*------------------------------------------------------------------------------
Variables
------------------------------------------------------------------------------*/
Bitter::rule(
Bitter::id('js-variable-normal'),
Bitter::tag('variable'),
Bitter::capture('[$a-z_][$a-z0-0_]*(\.[$a-z_][$a-z0-0_]*)*', 'i')
);
Bitter::rule(
Bitter::id('js-variable-function'),
Bitter::tag('variable'),
Bitter::capture('[$a-z_][$a-z0-0_]*(\.[$a-z_][$a-z0-0_]*)*(?=[$a-z0-9_]*\s*\()', 'i'),
Bitter::rule(
Bitter::id('js-variable-function-call'),
Bitter::tag('function'),
Bitter::capture('(\.)?[$a-z_][$a-z0-0_]*$', 'i')
)
);
/*------------------------------------------------------------------------------
Objects
------------------------------------------------------------------------------*/
Bitter::rule(
Bitter::id('js-object-key'),
Bitter::tag('object-key'),
Bitter::capture('[$a-z_][$a-z0-0_]*(\.[$a-z_][$a-z0-0_]*)*(?=:)', 'i')
);
/*------------------------------------------------------------------------------
Main
------------------------------------------------------------------------------*/
Bitter::rule(
Bitter::id('js-include'),
Bitter::tag('context-source js'),
Bitter::capture('.+', 's'),
Bitter::id('js-comment-block'),
Bitter::id('js-comment-line'),
Bitter::id('js-object-key'),
Bitter::id('js-regexp'),
Bitter::id('js-string-single'),
Bitter::id('js-string-double'),
Bitter::id('js-number-float'),
Bitter::id('js-number-integer'),
Bitter::id('js-keyword'),
Bitter::id('js-variable-function'),
Bitter::id('js-variable-normal')
);
Bitter::rule(
Bitter::id('js'),
Bitter::id('js-include')
);
/*----------------------------------------------------------------------------*/
?>