ArtemKAD писал(а):
На самом деле естественно, когда есть слово которое потом разбирает последующую абракадабру двойного прохода нет. Но при этом нет и всех инструментов исходного транслятора. Т.е. строку-то разобрали а че с кусками потом делать? Кроме того - а первый пробел если он не пробел (сразу после test) чем ловить?
а не проблема, ведь test - это пример, а не реальный код.
В реальном коде просто даешь адрес начала буфера и все.
К тому же обрати внимание, что значение разделителя легко получается.
ArtemKAD писал(а):
mOleg писал(а):на самом деле все просто. Для каждого случая своя табличка разделителей, в примере 'proba', ты подсовываешь табличку - получаещь слово, ограниченное одним из разделителей.
Да это я понял и даже испытал. Хотя когда ограничителей становится слишком много длинные строки приходится писать...
это смотря какие разделители. С другой стороны, если заранее известно, что не будет неотображаемых разделителей, то можно просто подсовывать строку, или, как вариант, можно скомбинировать данную либу с
http://spf.cvs.sourceforge.net/spf/deve ... iew=markupи с немного другим синтаксисом получить что-то такое:
s" ()[]{},.+-= .... \013\t\n\r" DELIMITERS: proba
будет удобнее и короче одновременно
ArtemKAD писал(а):
Да, я бы делал Delimiter: немного иначе
Код:
: Delimiter: ( | xC xC xC EOL --> )
CREATE HERE DUP 256 DUP ALLOT ERASE +delimiters
DOES> + C@ 0xFF = ;
можно и так, но вроде более удобный вариант я только что описал