It's been a while.... But I also said I wouldn't let MLC die.
I worked on the MLC tokenizer for a few hours yesterday, and then for a few more hours today (after not working on it in months)...and now it's finished.
What does it do? It converts human-readable MLC source code (stored in a TI-OS text file) into a more compact format (the custom MLC file type). This of course not only makes the resulting program smaller, but makes the MLC interpreter able to interpret it faster.
While at the moment it's fully functional and supports tokenization of all of the MLC commands, I still could probably improve it a bit more to not only make the resulting tokenized programs be smaller, but the MLC tokenizer itself be smaller.
Anyway, to give you an example of how much smaller it can make MLC programs, here are some sample inputs and outputs:
Input: 30 bytes Output: 21 bytes
Input: 51 bytes Output: 42 bytes
UPDATE: I've actually found a bug when tokenization certain source files...I'll hopefully have it fixed soon
EDIT: The bug is that for whatever reason, sometimes the calculator freezes with the BUSY indicator (TIGCC programmers here...what is this normally a sign of?) after tokenizing a file. Even if you don't know anything about TIGCC/C, any testing at all would be nice.
You can download the latest version of the MLC tokenizer with the following links (
Remember: The MLC tokenizer is still unstable and may damage your calculator, download at your own risk)
http://bfr.tifreakware.net/miscarchives/mlc/mlctok.89z http://bfr.tifreakware.net/miscarchives/mlc/mlctok.9xz http://bfr.tifreakware.net/miscarchives/mlc/mlctok.v2zNote that the file type of the outputted program should be "MLC", and NOT "EXPR" or anything else.
http://web.archive.org/web/20060710202041/http://dysfunction.earthforge.com/?p=mlc-readme.php lists some commands you can test with (don't worry about the arguments for the commands...anything, correct or not, should be able to be tokenized at the moment). You can also try typing in random text to see what happens. Anything with the "MLC:" header should get tokenized, otherwise, the tokenizer should return an error.