https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269906

--- Comment #5 from Christos Margiolis <chris...@margiolis.net> ---
Apparently, this patch doesn't really work and, in fact, allowing a predicate
with no acts is probably impossible in D without introducing a significant
amount of complexity. awk can do that just fine because awk's predicates cannot
contain unescaped "/", since it searches for regexes. D on the other hand
allows normal computation inside the predicate, meaning one can do division
inside it:

kinst::vm_fault: /(cpu / 2) == 1/


This is a problem because the D lexer considers "/" to be a division token (and
not a start/end of predicate token) when the next non-whitespace character
coming after it is anything other than EOF, 0, ;, { and }, so if we try and
run:

kinst::vm_fault: /cpu == 1/ fbt::malloc:entry

The lexer will think the end of predicate is actually a division token because
the succeeding non-whitespace character "f" doesn't match the character set
that indicate the end of predicate.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to