++ -> tokl=11 tokc=0x1
-- -> tokl=11 tokc=0xff
* -> tokl=1 tokc=0xc1af
/ -> tokl=1 tokc=0xf9f7
% -> tokl=1 tokc=0xf9f7
+ -> tokl=2 tokc=0xc801
- -> tokl=2 tokc=0xd8f7
<< -> tokl=3 tokc=0xe0d3
>> -> tokl=3 tokc=0xf8d3
...
! -> tokl=2 tokc=0x4
* -> tokl=0 tokc=0x0
For example *@R<^1c
^^ operator (padded with @ when one character)
^^^^ tokc (variable length)
^ toklThe first entry looks for "++", and if found sets tokc to 1 ('#' - 'b' + 64) and tokl to 11 ('m' - 'b').
The second entry looks for "--" and if found sets tokc to 255 and tokl to 11.
The third entry looks for "*" and if found sets tokc to 12693263 and tokl to 1. (12693263 is 0xc1af0f, which is an x86 IMUL instruction).
From the website:
``` binary operators, by decreasing priority order: '*' '/' '%', '+' '-', '>>' '<<', '<' '<=' '>' '>=', '==' '!=', '&', '^', '|', '=', '&&', '||'. ```
The unary operators ++ and -- have a higher precedence, so they come first. Then there are "*@R<^1c", "/@%[_[H3c", "%@%[_[H3c" (same as for '/', though), "[email protected]#d" and so.
I did not have time to read the source (my compile finished a minute ago), but maybe you can now figure out the rest? :)
//edit: ha, edflsafoiewq and xashor we're a bit faster and more thorough. But nice to see we agree on the overall idea.