Раздел: [[../Программирование]] > [[../XPlusPlus]] ---- ../Extends/Object ===Описание=== ScannerClass осуществляет [[:ЛексическийРазбор]] ~X++ При его помощи можно выполнять следующие задачи: *удалить все комментарии из кода *найти все употребления ключегого слова *поискать что-нибудь в строках *и т.д. === См. Также === ParserClass === Использование === *Передайте X++ код в виде параметра конструктору класса *подключите ../Макрос/TokenTypes с переченем видов токенов *вызовите firstSymbol для получение первого токена *вызывайте nextSymbol для последующей обработки пока он не вернет 0 *создайте собственного наследника ScannerClass если вы хотите обрабатывать комментарии (перекройте методы comment и lineComment) ====Пример==== #TokenTypes ScannerClass s=new ScannerClass( "void /*test*/new(){int a=1.23;return \"my string\";}"); int token; ; token=s.firstSymbol(); while(token) { info(strFmt("%1, %2: '%3', %4", s.line(),s.col(), s.string(), token==#DBL_SYM?s.realValue():0.0)); token=s.nextSymbol(); } [[file:!/test_scannerclass.zip]] более продвинутый пример