From 631fc87d6e354d3d51cb602aefcdd101fd59b1fc Mon Sep 17 00:00:00 2001 From: Alec Thomas Date: Tue, 19 Sep 2017 12:05:36 +1000 Subject: [PATCH] Fix lua lexer, and actually check error value from compiling regexes :( --- lexer.go | 4 +++- lexers/lua.go | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lexer.go b/lexer.go index 4ae6f43..ab98488 100644 --- a/lexer.go +++ b/lexer.go @@ -293,7 +293,9 @@ func (r *RegexLexer) maybeCompile() (err error) { } func (r *RegexLexer) Tokenise(options *TokeniseOptions, text string, out func(*Token)) error { - r.maybeCompile() + if err := r.maybeCompile(); err != nil { + return err + } if options == nil { options = defaultOptions } diff --git a/lexers/lua.go b/lexers/lua.go index 39dea16..aa64ca3 100644 --- a/lexers/lua.go +++ b/lexers/lua.go @@ -18,7 +18,7 @@ var Lua = Register(MustNewLexer( Default(Push("base")), }, "ws": { - {`(?:--\[(?P=*)\[[\w\W]*?\](?P=level)\])`, CommentMultiline, nil}, + {`(?:--\[(=*)\[[\w\W]*?\](\1)\])`, CommentMultiline, nil}, {`(?:--.*$)`, CommentSingle, nil}, {`(?:\s+)`, Text, nil}, }, @@ -46,7 +46,7 @@ var Lua = Register(MustNewLexer( "funcname": { Include("ws"), {`[.:]`, Punctuation, nil}, - {`(?:[^\W\d]\w*)(?=(?:(?:--\[(?P=*)\[[\w\W]*?\](?P=level)\])|(?:--.*$)|(?:\s+))*[.:])`, NameClass, nil}, + {`(?:[^\W\d]\w*)(?=(?:(?:--\[(=*)\[[\w\W]*?\](\2)\])|(?:--.*$)|(?:\s+))*[.:])`, NameClass, nil}, {`(?:[^\W\d]\w*)`, NameFunction, Pop(1)}, {`\(`, Punctuation, Pop(1)}, },