aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/scite2co.lua
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2016-02-17 13:11:58 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2016-02-17 13:11:58 +0100
commit6efa2ebd0e44b758740120374d63874beda7ba6a (patch)
treecb02fc1b2015cdc0037a7686760321873627fba3 /lib/scite2co.lua
parentc9c6e63472701017041e66d3eeb2d750b1aafb32 (diff)
downloadsciteco-6efa2ebd0e44b758740120374d63874beda7ba6a.tar.gz
simplified "lexer.test..." macros using the $$ return command
* this is slightly more efficient than using repeated conditionals * the last :EN does not require a conditional, as its return value can simply be forwarded. * even without $$, this could have been done easier using a once-only loop and breaking out of the loop if :EN fails using :;. The last :EN result is still stored in QReg "_". * :EN could also be used to match header lines if lexer.tes would leave the first line (header line) in some Q-Reg, like the local .[header]. However, repeated :ENs would be necessary as globbing currently does not support {...,...} expansions. Since sooner or later, the header line must be evaluated for some lexer.set macro, this is probably more efficient than the current solution using SciTECO patterns and [lexer.checkheader] could be removed as well.
Diffstat (limited to 'lib/scite2co.lua')
-rwxr-xr-xlib/scite2co.lua16
1 files changed, 8 insertions, 8 deletions
diff --git a/lib/scite2co.lua b/lib/scite2co.lua
index b39c184..e03a59f 100755
--- a/lib/scite2co.lua
+++ b/lib/scite2co.lua
@@ -93,18 +93,18 @@ local file_patterns = expand(props["file.patterns."..language])
io.write([=[
@[lexer.test.]=]..language:lower()..[=[]{
]=])
-if shbang then io.write([=[ _#!M]=]..shbang..[=[M[lexer.checkheader]U.r
+if shbang then io.write([=[ _#!M]=]..shbang..[=[M[lexer.checkheader]"S -1 '
]=]) end
-local first_pattern = not shbang
+local patterns = {}
for pattern in file_patterns:gmatch("[^;]+") do
- io.write([=[ ]=])
- if not first_pattern then io.write([=[Q.r"F ]=]) end
- io.write([=[:EN]=]..pattern..[=[Q*U.r]=])
- if not first_pattern then io.write([=[ ']=]) end
+ table.insert(patterns, pattern)
+end
+for i, pattern in ipairs(patterns) do
+ io.write([=[ :EN]=]..pattern..[=[Q*]=])
+ if i ~= #patterns then io.write([=["S -1 ']=]) end
io.write("\n")
- first_pattern = false
end
-io.write([=[Q.r}
+io.write([=[}
]=])