RainbowLexer — это конфигурируемый лексический анализатор 💾
RainbowLexer принимает описание правил, которое он может распознать в документах с расширением .RL [.RL файл 📃]
RainbowLexer может использовать правила, описанные в этих файлах, чтобы проанализировать ваш целевой файл
RainbowLexer также может скомпилировать C-файл, содержащий код на C для анализа документов, описанных в этих файлах.
type union index_series;
// Примечание:
// type — это статическое слово или разделитель
// статическое слово type — это sw/staticWord
// разделитель type — это sp/seperator
// union — это объединение слов
// index_series — это серия индексов
// Например, [1,2,3,4] соответствует четырем лексемам с ID Yöntem 1, 2, 3, 4 соответственно
// [4:] указывает на любое количество лексем с ID, начиная с 4 и увеличивающимся
// [:4] указывает на любое количество лексем с ID, начиная с 4 и уменьшающимся
// [:] указывает на любое количество лексем с ID, начинающихся с 0 и увеличивающихся
// IGNORE указывает на то, что данная лексема не будет добавлена в список результатов
sw {"hello", "world", "test", "hel"} [1,2,3,4];
sw {"dididi", "hahaha", "ppp", __VAR__} [4:];
sp {"%", "/", "*"} [20:];
sp {" ", "\n", "\t"} IGNORE;
}
Важно отметить, что каждая лексема должна быть заключена в "" Некоторые уже определенные наборы слов предоставляются:
type "token" id
Используется в командной строке
Список параметров:
-D [file.RL]
>> режим отладки (не компилируется, позволяет анализировать построчно или читать файл)-C file.RL
>> режим компиляции (скомпилирует file.RL
в outputfile.c
)В компилированном C-файле содержится три интерфейса:
(void)RainbowLex(const char* string)
— анализирует строку string
(token*)RainbowNext()
— последовательно возвращает один объект token
, содержащий (id[size_t]
, token[char*]
)FINAL()
— завершает анализ, отказываясь от всех объектов token
Оставлено пустым
Лицензия MIT> Copyright (c) 2020-ГоуЦзи
Данное программное обеспечение и связанные с ним документы («Программа») предоставляются бесплатно любому лицу, которое получило копию Программы, с правом использовать Программу без ограничений, включая использование, копирование, модификацию, объединение, публикацию, распространение, предоставление sublicense и/или продажу копий Программы, а также возможность лицам, которым данная Программа была предоставлена, делать то же самое, при условии выполнения следующих условий:
Вышеуказанное уведомление об авторском праве и это уведомление о лицензии должны быть включены во все копии или значительные части Программы.
ПРЕДМЕТНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЯ, ГАРАНТИЯМИ ТОРГОВЛЕНИЯ, ПРИГОДНОСТИ ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ И НЕНАРУШЕНИЯ ПРАВ. В НИКАКОМ СЛУЧАЕ АВТОРЫ И ДОЛЖНИКИ АВТОРСКИХ ПРАВ НЕ ДОЛЖНЫ БЫТЬ УЧТЕНО В ЛЮБОМ ТРЕБОВАНИИ, УЩЕРБЕ ИЛИ ДРУГИХ ОТВЕТСТВЕННОСТИ, ВОЗНИКШИХ ИЗ ДЕЙСТВИЯ КОНТРАКТА, ДЕЛИКТА ИЛИ ДРУГОГО, ВОЗНИКШИХ ИЗ, ВЫПУСКА, ИЛИ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ДРУГИХ СДЕЛОК С ЭТИМ ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.
Помощь
Если вы столкнулись с проблемами при использовании RainbowLexer, вы можете найти решения здесь или в разделе issues.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )