1

The tag used to express the part function (0xB1) has 1 required argument and 1 optional argument.
But for some reason ti placed it in the range of tags that take two required arguments.
www.nyall.net

2

I'll describe some more things:

Tags 0xD7 and 0xD8 (min and max functions) are hardcoded as two argument tags, but they take a variable number of arguments.

Tag 0xEA takes 1 argument: fixed so no need to worry about END_LIST.
Tag 0xEB takes 2 arguments: fixed so no need to worry about END_LIST.

Tag 0xED and 0xEE (eigVc and eigVl) take 1 argument: fixed so no need to worry about END_LIST.

Tag 0xF0 is the local tag, it takes 1 argument: the variable name: the short form for a to z, or the variable length form.

Tag 0xEF is the prime tag used for differential equations. Beneath it there can be: a) more prime tags. b) a local variable. c) a normal variable. d)a combination of more prime tags and a local variable.

www.nyall.net

3

Thanks a lot for your report.
I have done only a minimal implementation of next_expression_index.
Until a CAS compatible with AMS is done, I don't think it is usefull to implement it completly,
but I will fix this.

4

I think next_expression_index is important for more than a CAS. It is important for executing basic programs: A numeric only ti-basic interpreter is easily in sights for PEDROM.

If you look at the tags for if/else/else if/then structures used in ti-basic there is no offset used to instantly jump over code that is not executed. (Note that the ENDLOOP_ITAG does use an offset) I therefore assume that the basic interpreter uses next_expression_index to skip over RPN data that is not to be executed.

So for ti-basic programs that have lots of branches it would not suprise me if more time is spent in next_expression_index than executing code.


-Samuel
www.nyall.net

5

By the way, for the loop tokens, TI's tokenizer is not always able to compute the offsets, so they are sometimes left at zero. Tokens89 does compute all the offsets. smile
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

6

It may be a good idea to patch the original AMS "next_expression_index" of AMS by a faster but compatible version (Using TIB Receiver).