Similarly to how parentheses are omitted at the end of commands, this
change allows them to be omitted at the end of function arguments.
Notice however than this omission is *ambiguous* when the parser does
not know in advance the number of arguments.
GCD(Ent(x;y -> GCD(Ent(x;y))
-> GCD(Ent(x);y)
The fx-92 SC+ parser knows the number of arguments for each function,
and will use the second interpretation, because Ent() has one argument
and GCD() has two. This interpreter, however, uses a generic extensible
construction for function calls and cannot decide on this ground. The
current interpretation is the first.
* Fix angle units for reverse trigonometric functions
* Add a streaming option to capture the output in real-time as a series
of bitmap images
* Switch to Decimal due to the non-continuity of Ent() breaking
assumptions about the fidelity of floats. Trigonometry functions are
still computed as floats.
* Fix the line rendering algorithm for edge cases and add a new test
line-positive.txt that ensures basic patterns are all correct.
* Use custom rules to generate text representation of decimal numbers as
to better match the output of the fx-92.
* Improve the test constants.txt to better evaluate this representation.
The interpreter automatically checks that the representation matches
the value and fails on error to avoid scratching heads.
* Fix EQUAL not being treated as a relational symbol.