tdf#120413 LibreLogo: handle complex Logo expressions
Instead of the incomplete heuristic parenthesis expansion, now expressions with Logo functions and with own procedures are parsed completely, solving several issues with complex Logo expressions. For example, now functions with more than 1 argument don't need explicit parenthesization. NOTE: to handle both Logo and Python syntaxes of function calls, we differentiate the forms "f(x)" and "f (x)". The second form is handled as Logo syntax, not the Python one: f x*2 y z -> f(x*2, y, z) f(x*2, x, z) -> f(x*2, y, z) f (x*2) y z -> f((x*2), y, z) so if you want to avoid of the following expansion: sin 45 + cos 45 -> sin(45 + cos(45)) it's possible to use the following parenthesizations: sin(45) + cos 45 -> sin(45) + cos(45) (sin 45) + cos 45 -> (sin(45)) + cos(45) but not sin (45) + cos 45 -> sin((45) + cos(45)) Change-Id: Ib0602b47b8b678a352313f471599d44d6904ce17 Reviewed-on: https://gerrit.libreoffice.org/62901 Tested-by: Jenkins Reviewed-by:László Németh <nemeth@numbertext.org>
Showing
This diff is collapsed.
Please
register
or
sign in
to comment