Charles, i am experiencing a weird issue for which (yet again) i have no explanation. This is some output of the sample tokenizer i made:
-----------------------
TOKEN===>INCLUDES
PEEK ADDRESS: 6216514
LENGTH => 8
strptr(contents(12)) => 6212828 ' 12 is the include file #12.
-----------------------
RECALL===>uriBASIC
PEEK ADDRESS: 6216514
LENGTH => 8
strptr(contents(12)) => 6212828 ' 12 is the include file #12.
The top portion is output during the parsing step, it correctly displays the parsed word, its address and its length. It also displays the address of the array's string element that holds the data.
The bottom portion is output after about 430000 words have been parsed. It displays incorrectly the parsed word, but its address and its length are correct. It also displays the address of the array's string element that holds the data using strptr, and apparently the array's string element address is still the same.
The addresses and lengths of the indexed words are retained correctly... but the parsed word differs even if the string is still in the same address...
The parsing and the displaying is performed in a different function, could it be that Oxygen is doing something funny to the string even though it's address (and AFAIK its contents) is the same?
By the way, this is what my PEEK$ function looks like:
FUNCTION PEEK$(sys src, int l) as string
STRING b = news(l)
copy(strptr(b), src, l)
return b
END function