diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2016-02-17 13:11:58 +0100 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2016-02-17 13:11:58 +0100 |
commit | 6efa2ebd0e44b758740120374d63874beda7ba6a (patch) | |
tree | cb02fc1b2015cdc0037a7686760321873627fba3 /lib/scite2co.lua | |
parent | c9c6e63472701017041e66d3eeb2d750b1aafb32 (diff) | |
download | sciteco-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-x | lib/scite2co.lua | 16 |
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([=[} ]=]) |