I am about to commit two interesting changed to the syntax. In expressions "endif" and "endmatch" are now optional.
So you can write: println (if 1 > 2 then 0 else if 1 > 1 then 2 else 1); No need for endif. It is still useful: println (if 1 > 2 then 0 else 1 endif + 42); which is equivalent to println ((if 1 > 2 then 0 else 1) + 42); For matches, the branches are right associative: println (match 3 with | 1 => 1 | 2 => match 42 with | 42 => 42 | 3 => 3); so the 3 case is part of the inner (second) match. And here the first match: println (match 3 with | 1 => 1 | 2 => match 42 with | 42 => 42 endmatch | 3 => 3 ); Statement still matches require "endmatch". Be warned, to implement the match thing I have changed the merge rule to keep all possible interpretations of expressions. If you do something ambiguous it may propagate into statements. These don't allow ambiguity. -- john skaller skal...@users.sourceforge.net ------------------------------------------------------------------------------ Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d _______________________________________________ Felix-language mailing list Felix-language@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/felix-language