Недокументированный TParser
Автор: Mike Scott
... тем не менее я хотел бы знать как это работает (при
возможности точный синтаксис), так как я еще не получил свою копию Delphi и на
руках у меня только часть электронной документации, где ни слова не сказано про
Tparser.
Я не думаю, что смогу вам здесь дать полное описание того, как работает
TParser. Тем не менее, я дам вам несколько важных замечаний. При этом я
допускаю, что у вас есть файл CLASSES.INT, описывающий интерфейс анализатора.
В основном вы открываете поток и передаете это конструктору парсера. Затем вы
можете изучать свойство Token, которое будет или символом, представляющим из
себя один из четырех лексических признаков (плюс пятый EOF), или следующий
символ в потоке, если следующим идет символ, не относящийся ни к одному из
вышеописанных. Специальные символы имеют следующие значения:
toEOF = Char(0);
toSymbol = Char(1);
toString = Char(2);
toInteger = Char(3);
toFloat = Char(4);
В зависимости от значения, для получения элемента вы вызываете
соответствующий. Например, если Token = toString, то фактический элемент строки
извлекается с помощью вызова TokenString. Если это toInteger, то вызывайте
TokenInt и т.д.. Для получения следуюшего символа вызывайте NextToken, который
возвратит его значение.
Я надеюсь, что при получении вашей копии Delphi вы найдете ответы на
остальные ваши вопросы.
|