You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Predicates works in a very weird manner. For example this doesn't work as expected: static_content_symbol: ( / [^\{] / | "{" !"{" | "{" !"*" )+
but this (which is logically equivalent) works fine: static_content_symbol: ( / [^\{] / | "{" !( "{" | "*" ) )+
and this is not because of several predicates in the same rule, because this one works ok: comment_content: ( / [^\*\{] / | "*" !"}" | "{" !"*" ) comment_content | comment comment_content | ""
Maybe this is because of the same start "{" of both alternatives in the first (nonworking) example?
Full grammar and test sample see in description of bug #6.
The text was updated successfully, but these errors were encountered:
The subexpression "{" !"{" | "{" !"*"isn't equivalent to "{" !( "{" | "*") in the general case. The first reads, "accept { if it is not followed by {, or else accept { if it is not followed by *". The string "{{" would fail the first branch, but succeed the second ( "{{"is a { not followed by a *).
The second variant effectively reads, "accept { if it is not followed by either{ or *" -- a clearly different expression.
Predicates works in a very weird manner. For example this doesn't work as expected:
static_content_symbol: ( / [^\{] / | "{" !"{" | "{" !"*" )+
but this (which is logically equivalent) works fine:
static_content_symbol: ( / [^\{] / | "{" !( "{" | "*" ) )+
and this is not because of several predicates in the same rule, because this one works ok:
comment_content: ( / [^\*\{] / | "*" !"}" | "{" !"*" ) comment_content | comment comment_content | ""
Maybe this is because of the same start "{" of both alternatives in the first (nonworking) example?
Full grammar and test sample see in description of bug #6.
The text was updated successfully, but these errors were encountered: