mirror of
https://github.com/Shopify/liquid.git
synced 2026-10-03 00:55:11 -07:00
Merge pull request #1606 from Watson1978/performance-lexer-tokenize
Increase performance in Liquid::Lexer#tokenize
This commit is contained in:
+2
-3
@@ -18,6 +18,7 @@ module Liquid
|
|||||||
IDENTIFIER = /[a-zA-Z_][\w-]*\??/
|
IDENTIFIER = /[a-zA-Z_][\w-]*\??/
|
||||||
SINGLE_STRING_LITERAL = /'[^\']*'/
|
SINGLE_STRING_LITERAL = /'[^\']*'/
|
||||||
DOUBLE_STRING_LITERAL = /"[^\"]*"/
|
DOUBLE_STRING_LITERAL = /"[^\"]*"/
|
||||||
|
STRING_LITERAL = Regexp.union(SINGLE_STRING_LITERAL, DOUBLE_STRING_LITERAL)
|
||||||
NUMBER_LITERAL = /-?\d+(\.\d+)?/
|
NUMBER_LITERAL = /-?\d+(\.\d+)?/
|
||||||
DOTDOT = /\.\./
|
DOTDOT = /\.\./
|
||||||
COMPARISON_OPERATOR = /==|!=|<>|<=?|>=?|contains(?=\s)/
|
COMPARISON_OPERATOR = /==|!=|<>|<=?|>=?|contains(?=\s)/
|
||||||
@@ -35,9 +36,7 @@ module Liquid
|
|||||||
break if @ss.eos?
|
break if @ss.eos?
|
||||||
tok = if (t = @ss.scan(COMPARISON_OPERATOR))
|
tok = if (t = @ss.scan(COMPARISON_OPERATOR))
|
||||||
[:comparison, t]
|
[:comparison, t]
|
||||||
elsif (t = @ss.scan(SINGLE_STRING_LITERAL))
|
elsif (t = @ss.scan(STRING_LITERAL))
|
||||||
[:string, t]
|
|
||||||
elsif (t = @ss.scan(DOUBLE_STRING_LITERAL))
|
|
||||||
[:string, t]
|
[:string, t]
|
||||||
elsif (t = @ss.scan(NUMBER_LITERAL))
|
elsif (t = @ss.scan(NUMBER_LITERAL))
|
||||||
[:number, t]
|
[:number, t]
|
||||||
|
|||||||
Reference in New Issue
Block a user