From d8dfede4dc16846dd15ceeafa79a51c446d7f84e Mon Sep 17 00:00:00 2001 From: mitchell Date: Sun, 29 Mar 2020 20:12:40 -0400 Subject: lexlua: Fixed incorrect grammar building for lexers that embed themselves. When there is no initial '*_whitespace' style, child lexers should prefer their parent's grammar rather than their own. --- lexlua/lexer.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lexlua/lexer.lua') diff --git a/lexlua/lexer.lua b/lexlua/lexer.lua index 8b8afe548..68183aa29 100644 --- a/lexlua/lexer.lua +++ b/lexlua/lexer.lua @@ -1245,7 +1245,8 @@ function M.lex(lexer, text, init_style) if lexer._CHILDREN then for style, style_num in pairs(lexer._TOKENSTYLES) do if style_num == init_style then - local lexer_name = style:match('^(.+)_whitespace') or lexer._NAME + local lexer_name = style:match('^(.+)_whitespace') or + lexer._PARENTNAME or lexer._NAME if lexer._INITIALRULE ~= lexer_name then lexer:build_grammar(lexer_name) end -- cgit v1.2.3