Shopify / liquid-c

Liquid performance extension in C.
MIT License
120 stars 25 forks source link

allow extra string after raw tag delimiter #207

Closed ggmichaelgo closed 1 year ago

ggmichaelgo commented 1 year ago

What are you trying to solve?

This PR https://github.com/Shopify/liquid-c/pull/200 has broke how Liquid-C parses the raw tag's delimiter with extra string after the tag delimiter.

raw tag delimiter like this should be allowed, but Liquid-C is raising a syntax error:

{% raw %}
  message
{% endraw this_is_allowed %}

How are you solving this?

Following the Liquid's raw tag delimiter regex, I have updated the Liquid-C's raw tag delimiter to allow extra string after a valid tag delimiter string.

match_full_token_possibly_invalid scans the token string backward, and when it finds a word character after a whitespace character, it will reset its last match.