Инструменты пользователя

Инструменты сайта


axapta:класс:scannerclass

Раздел: Программирование > XPlusPlus


../Extends/Object

Описание

ScannerClass осуществляет ЛексическийРазбор ~X++

При его помощи можно выполнять следующие задачи:

  • удалить все комментарии из кода
  • найти все употребления ключегого слова
  • поискать что-нибудь в строках
  • и т.д.

См. Также

Использование

  • Передайте 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();
    }

test_scannerclass.zip более продвинутый пример

axapta/класс/scannerclass.txt · Последнее изменение: 2018/04/13 22:43 (внешнее изменение)