Lephe
ff6013b603
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. |
||
---|---|---|
doc | ||
fx92 | ||
tests | ||
.gitignore | ||
README.md | ||
fx92.py | ||
tests.py |
README.md
Python-based fx-92 Scientifique Collège+ interpreter
This is an alternate imlementation of the fx-92 SC+ Algorithmic application. It interprets programs read from QR code URLs or text files, and renders images using the SDL.
Requirements:
- Python ≥ 3.5 (may work with older versions)
- PySDL2 (
pip3 install --user PySDL2
)
Running programs
To run programs, execute fx92.py
and specify an input file:
./fx92.py [-s|-u] <input file> [options...]
- If the input file contains text instructions (for example
goto 12,35
), specify-s
(this is the default). - If the input file contains a QR code URL (for example
https://...F908313200333500
), specify-u
.
The input can also be set to -
, in which case the interpreter reads from
standard input. Typical use case is for URLs:
echo -n "F908313200333500" | ./fx92.py -u -
Output options
--scale <n>
lets you set the (integer) scaling ratio of the output.--save <bmp>
will save a screenshot of the output to the designated file.--quiet
will "hide" the window while executing. (At the moment the window is still shown, but closed immediately, due to SDL subtleties.)
Tests
A few units tests are provided. Run tests.py
to execute them.