At it's simplest .. the Facer parser ignores the bits its does not understand.
It gathers up all the elements of logic, delimited by '$', ':', and '?' symbols. BUT then only uses the first set, once any other text is found in that overall expression. So your expression was fine, but it only used some of the logic.
It's 'first stage' parser is quite good, and identifies ALL of the logic to be found. But it only supports minimal complexity for 'stage 2'; before again correctly converting that to 'machine code' to execute. In laymen's terms: 'lobotomised mid-brain'
I've written better parser/run-time compilers, on several projects..