Thanks Marijn for those insights.
The biggest difficulty of FEEL is that it allows space in variable and function name which makes me doubt it is LL(1). I have to look forward until I find a match to one of the existing variables to know it is a variable. They even allow language keyword (such as if, for) to show un in those variable names, but not at the beginning. So in FEEL something like that could be valid, assuming “Gift for teacher” is a variable in the context.
if Gift for teacher = "apple" then
return "grocery store"
So the produced highlight in that post isn’t that bad, except that “for” should not be black as it is not a keyword in that case.