Skip to content

Commit 0cad9ae

Browse files
authored
BBj: Improve regexes (#3512)
* BBj: extend BBj keywords list * BBj: fix strings regex does not match single quotes * BBj: add `declare` as keyword
1 parent 1134bdf commit 0cad9ae

File tree

4 files changed

+40
-22
lines changed

4 files changed

+40
-22
lines changed

components/prism-bbj.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
greedy: true
77
},
88
'string': {
9-
pattern: /"(?:""|[!#$%&'()*,\/:;<=>?^\w +\-.])*"/,
9+
pattern: /(['"])(?:(?!\1|\\).|\\.)*\1/,
1010
greedy: true
1111
},
1212
'number': /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,
13-
'keyword': /\b(?:abstract|all|argc|begin|bye|callback|case|chn|class|classend|ctl|day|delete|dom|dread|dsz|else|endif|err|exitto|extends|fi|field|for|from|gosub|goto|if|implements|interface|interfaceend|iol|iolist|let|list|load|method|methodend|methodret|on|opts|pfx|private|process_events|protected|psz|public|read_resource|remove_callback|restore|rev|seterr|setesc|sqlchn|sqlunt|ssn|start|static|swend|switch|sys|then|tim|unt|until|use|void|wend|where|while)\b/i,
13+
'keyword': /\b(?:abstract|all|argc|begin|bye|callback|case|chn|class|classend|ctl|day|declare|delete|dim|dom|dread|dsz|else|end|endif|err|exitto|extends|fi|field|for|from|gosub|goto|if|implements|interface|interfaceend|iol|iolist|let|list|load|method|methodend|methodret|on|opts|pfx|print|private|process_events|protected|psz|public|read|read_resource|release|remove_callback|repeat|restore|return|rev|seterr|setesc|sqlchn|sqlunt|ssn|start|static|swend|switch|sys|then|tim|unt|until|use|void|wend|where|while)\b/i,
1414
'function': /\b\w+(?=\()/,
1515
'boolean': /\b(?:BBjAPI\.TRUE|BBjAPI\.FALSE)\b/i,
1616
'operator': /<[=>]?|>=?|[+\-*\/^=&]|\b(?:and|not|or|xor)\b/i,

components/prism-bbj.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/languages/bbj/keyword_feature.test

+20-16
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
abstract all argc begin bye callback case chn class classend ctl day delete dom dread dsz else
2-
endif err exitto extends fi field field for from gosub goto if implements interface interfaceend
3-
iol iolist let list load method methodend methodret on opts pfx private private process_events
4-
protected protected psz public public read_resource remove_callback restore rev seterr setesc sqlchn
5-
sqlunt ssn start static static swend switch sys then tim unt until void void wend where while use
1+
abstract all argc begin bye callback case chn class classend ctl day delete dim dom
2+
dread dsz else end endif err exitto extends fi field for from gosub goto if implements
3+
interface interfaceend iol iolist let list load method methodend methodret on opts pfx
4+
print private process_events protected psz public read read_resource release remove_callback
5+
repeat restore return rev seterr setesc sqlchn sqlunt ssn start static swend switch sys then
6+
tim unt until use void wend where while declare
67

78
----------------------------------------------------
89

@@ -20,27 +21,28 @@ sqlunt ssn start static static swend switch sys then tim unt until void void wen
2021
["keyword", "ctl"],
2122
["keyword", "day"],
2223
["keyword", "delete"],
24+
["keyword", "dim"],
2325
["keyword", "dom"],
26+
2427
["keyword", "dread"],
2528
["keyword", "dsz"],
2629
["keyword", "else"],
27-
30+
["keyword", "end"],
2831
["keyword", "endif"],
2932
["keyword", "err"],
3033
["keyword", "exitto"],
3134
["keyword", "extends"],
3235
["keyword", "fi"],
3336
["keyword", "field"],
34-
["keyword", "field"],
3537
["keyword", "for"],
3638
["keyword", "from"],
3739
["keyword", "gosub"],
3840
["keyword", "goto"],
3941
["keyword", "if"],
4042
["keyword", "implements"],
43+
4144
["keyword", "interface"],
4245
["keyword", "interfaceend"],
43-
4446
["keyword", "iol"],
4547
["keyword", "iolist"],
4648
["keyword", "let"],
@@ -52,41 +54,43 @@ sqlunt ssn start static static swend switch sys then tim unt until void void wen
5254
["keyword", "on"],
5355
["keyword", "opts"],
5456
["keyword", "pfx"],
55-
["keyword", "private"],
57+
58+
["keyword", "print"],
5659
["keyword", "private"],
5760
["keyword", "process_events"],
58-
59-
["keyword", "protected"],
6061
["keyword", "protected"],
6162
["keyword", "psz"],
6263
["keyword", "public"],
63-
["keyword", "public"],
64+
["keyword", "read"],
6465
["keyword", "read_resource"],
66+
["keyword", "release"],
6567
["keyword", "remove_callback"],
68+
69+
["keyword", "repeat"],
6670
["keyword", "restore"],
71+
["keyword", "return"],
6772
["keyword", "rev"],
6873
["keyword", "seterr"],
6974
["keyword", "setesc"],
7075
["keyword", "sqlchn"],
71-
7276
["keyword", "sqlunt"],
7377
["keyword", "ssn"],
7478
["keyword", "start"],
7579
["keyword", "static"],
76-
["keyword", "static"],
7780
["keyword", "swend"],
7881
["keyword", "switch"],
7982
["keyword", "sys"],
8083
["keyword", "then"],
84+
8185
["keyword", "tim"],
8286
["keyword", "unt"],
8387
["keyword", "until"],
84-
["keyword", "void"],
88+
["keyword", "use"],
8589
["keyword", "void"],
8690
["keyword", "wend"],
8791
["keyword", "where"],
8892
["keyword", "while"],
89-
["keyword", "use"]
93+
["keyword", "declare"]
9094
]
9195

9296
----------------------------------------------------
+17-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,27 @@
11
""
2-
"fo""obar"
2+
''
3+
"f\"oo"
4+
'b\'ar'
5+
6+
"foo rem comment bar"
7+
"foo ""rem"" comment bar"
8+
"foo rem /* *rem comment bar"
39

410
----------------------------------------------------
511

612
[
713
["string", "\"\""],
8-
["string", "\"fo\"\"obar\""]
14+
["string", "''"],
15+
["string", "\"f\\\"oo\""],
16+
["string", "'b\\'ar'"],
17+
18+
["string", "\"foo rem comment bar\""],
19+
["string", "\"foo \""],
20+
["string", "\"rem\""],
21+
["string", "\" comment bar\""],
22+
["string", "\"foo rem /* *rem comment bar\""]
923
]
1024

1125
----------------------------------------------------
1226

13-
Checks for strings.
27+
Checks for strings.

0 commit comments

Comments
 (0)