Это работа в процессе работы без потерь Lua 5.1+ анализатор, написанный в ржавчине. Это сохранит все комментарии, пробелы и различия в стиле, такие как цитаты и побег.
Я хочу использовать MAB для ряда будущих проектов:
Взносы приветствуются - предстоит проделать много работы!
MAB поддерживает Rust 1.26 стабильную и новую.
Уже существует довольно значительный тестовый набор, реализованный в виде системы «Parse By Пример». Входные входы файлов испытаний расположены в parse_examples/source .
Тестовый бегун ( cargo test ) будет читать, токенизировать и анализировать эти исходные файлы и проверять последнюю известную папку хороших результатов ( parse_examples/results ), чтобы увидеть, соответствуют ли они тому, что они делали раньше.
Если вы вносите изменения, которые изменяют AST анализатора, удалите соответствующий сериализованный список токенов и файлы AST JSON. Когда вы запускаете Test Runner в следующий раз, он будет генерировать файлы, которые должны быть рассмотрены вручную и отправлены вместе с вашим изменением. Разница GIT Diff может помочь определить, было ли то, что было изменено, было преднамеренным.
Будьте осторожны с линейными окончаниями при разработке в Windows. Репозиторий имеет файл .editorconfig , а также файл .gitattributes , чтобы гарантировать, что все файлы LUA имеют окончания LF Line, а не CRLF . Проверка в списке токенов PARSE с примером окончания линейки CRLF , выпеченных в него, приведет к провалу CI.
Этот проект доступен в соответствии с условиями общественной лицензии Mozilla, версия 2.0. Детали доступны в лицензии.