aboutsummaryrefslogtreecommitdiffhomepage
path: root/lexlua/makefile.lua
diff options
context:
space:
mode:
authormitchell <unknown>2020-04-25 16:26:31 -0400
committermitchell <unknown>2020-04-25 16:26:31 -0400
commitfad15f79b1230b3076be515d6894c8919562809b (patch)
tree72c848ef02c3331de5ca54eff7adaea3a9a6fb88 /lexlua/makefile.lua
parent1fd02a367dec125c0b49dd9246a0928433866b96 (diff)
downloadscintilla-mirror-fad15f79b1230b3076be515d6894c8919562809b.tar.gz
Reformatted Lua LPeg lexers and added new convenience functions and pattern.
`lexer.range()` replaces `lexer.delimited_range()` and `lexer.nested_pair()`. `lexer.to_eol()` replaces `patt * lexer.nonnewline^0` constructs. `lexer.number` replaces `lexer.float + lexer.integer`. Also added unit tests for lexer functions.
Diffstat (limited to 'lexlua/makefile.lua')
-rw-r--r--lexlua/makefile.lua37
1 files changed, 19 insertions, 18 deletions
diff --git a/lexlua/makefile.lua b/lexlua/makefile.lua
index e1f9fef99..ee8f0ac59 100644
--- a/lexlua/makefile.lua
+++ b/lexlua/makefile.lua
@@ -29,7 +29,7 @@ local special_target = token(lexer.CONSTANT, word_match[[
]])
local normal_target = token('target', (lexer.any - lexer.space - S(':#='))^1)
lex:add_rule('target', lexer.starts_line((special_target + normal_target) *
- ws^0 * #(':' * -P('='))))
+ ws^0 * #(':' * -P('='))))
lex:add_style('target', lexer.STYLE_LABEL)
-- Variables.
@@ -52,21 +52,22 @@ local implicit_var = word_match[[
DESTDIR MAKE MAKEFLAGS MAKEOVERRIDES MFLAGS
]] * #(ws^0 * assign)
local computed_var = token(lexer.OPERATOR, '$' * S('({')) *
- token(lexer.FUNCTION, word_match[[
- -- Functions for String Substitution and Analysis.
- subst patsubst strip findstring filter filter-out sort word wordlist words
- firstword lastword
- -- Functions for File Names.
- dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath
- -- Functions for Conditionals.
- if or and
- -- Miscellaneous Functions.
- foreach call value eval origin flavor shell
- -- Functions That Control Make.
- error warning info
-]])
+ token(lexer.FUNCTION, word_match[[
+ -- Functions for String Substitution and Analysis.
+ subst patsubst strip findstring filter filter-out sort word wordlist words
+ firstword lastword
+ -- Functions for File Names.
+ dir notdir suffix basename addsuffix addprefix join wildcard realpath
+ abspath
+ -- Functions for Conditionals.
+ if or and
+ -- Miscellaneous Functions.
+ foreach call value eval origin flavor shell
+ -- Functions That Control Make.
+ error warning info
+ ]])
local variable = token(lexer.VARIABLE, expanded_var + auto_var + special_var +
- implicit_var) + computed_var
+ implicit_var) + computed_var
lex:add_rule('variable', variable)
-- Operators.
@@ -76,14 +77,14 @@ lex:add_rule('operator', token(lexer.OPERATOR, assign + S(':$(){}')))
lex:add_rule('identifier', token(lexer.IDENTIFIER, word_char^1))
-- Comments.
-lex:add_rule('comment', token(lexer.COMMENT, '#' * lexer.nonnewline^0))
+lex:add_rule('comment', token(lexer.COMMENT, lexer.to_eol('#')))
-- Embedded Bash.
local bash = lexer.load('bash')
bash:modify_rule('variable', token(lexer.VARIABLE, '$$' * word_char^1) +
- bash:get_rule('variable') + variable)
+ bash:get_rule('variable') + variable)
local bash_start_rule = token(lexer.WHITESPACE, P('\t')) +
- token(lexer.OPERATOR, P(';'))
+ token(lexer.OPERATOR, P(';'))
local bash_end_rule = token(lexer.WHITESPACE, P('\n'))
lex:embed(bash, bash_start_rule, bash_end_rule)