From fad15f79b1230b3076be515d6894c8919562809b Mon Sep 17 00:00:00 2001 From: mitchell Date: Sat, 25 Apr 2020 16:26:31 -0400 Subject: 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. --- lexlua/props.lua | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'lexlua/props.lua') diff --git a/lexlua/props.lua b/lexlua/props.lua index 74281a8dd..ab0bde27b 100644 --- a/lexlua/props.lua +++ b/lexlua/props.lua @@ -12,22 +12,22 @@ lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) -- Colors. lex:add_rule('color', token('color', '#' * lexer.xdigit * lexer.xdigit * - lexer.xdigit * lexer.xdigit * - lexer.xdigit * lexer.xdigit)) + lexer.xdigit * lexer.xdigit * lexer.xdigit * lexer.xdigit)) lex:add_style('color', lexer.STYLE_NUMBER) -- Comments. -lex:add_rule('comment', token(lexer.COMMENT, '#' * lexer.nonnewline^0)) +lex:add_rule('comment', token(lexer.COMMENT, lexer.to_eol('#'))) -- Equals. lex:add_rule('equals', token(lexer.OPERATOR, '=')) -- Strings. -lex:add_rule('string', token(lexer.STRING, lexer.delimited_range("'") + - lexer.delimited_range('"'))) +local sq_str = lexer.range("'") +local dq_str = lexer.range('"') +lex:add_rule('string', token(lexer.STRING, sq_str + dq_str)) -- Variables. -lex:add_rule('variable', token(lexer.VARIABLE, '$(' * (lexer.any - ')')^1 * - ')')) +lex:add_rule('variable', token(lexer.VARIABLE, '$' * + lexer.range('(', ')', true))) return lex -- cgit v1.2.3