vierundzwanzig-
I'm glad to see you're putting EM through its paces.
if/elseif/else clauses can be a pain to deal with in recursive descent parsers, so I didn't try to support them. Yes, when nested if(test,true,false) clauses get deep, they can be a bit of a pain to debug, but if you count parentheses, you can get them right pretty quickly.
Also, the error checker will tell you if you have extra right parentheses. So, unbalanced parentheses mean you're missing at least one right parentheses (perhaps I should update the documentation).
Regardless, you were missing a right parenthesis before the empty string at the end of the if().
Attached is a working version of your test.
And here is the corrected expression
Wow {if(!is_empty(name),implode(' ', ', ', name, ', '),'' )} {if(!is_empty(age),if (age < 5, 'You are kind of young',if (age >= 5 && age < 10, 'Is kindergarden or school fun?',if (age >=10 && age < 18, 'Moah, I want to be an adult right now!', 'You are already an adult!'))),'')}
Once we have a GUI for EM, I expect we'll try to support parenthesis matching - so if you select a parenthesis, it will highlight the matching one.
/Tom