C # Lua Parser / Analyzer - PullRequest
       44

C # Lua Parser / Analyzer

3 голосов
/ 10 ноября 2010

обо всем по порядку;

Я пишу немного LUA-Ide на C #. Выполнение кода выполняется сборкой с именем LuaInterface. Редактирование кода выполняется с помощью Scintilla-Port, а интерфейс RAD / UI - через расширяемую IDesignSurfaceExt Visual Studio (генерация кода в одном направлении). Обработка файлов обеспечивается небольшим sql-lite-db, используемым как файл-проекта-проекта.

Так что в целом у меня есть все, что мне нужно вместе ...

Единственная нерешенная проблема - это синтаксический анализатор / лексер для lua. Я не хочу загружать и выполнять код! Я просто хочу проанализировать строку, содержащую код Lua, и получить некоторую информацию о ней, например функцию и глобальные переменные. Я действительно не хочу писать синтаксический анализатор полностью сам (я ненавижу регулярное выражение - я все время ошибаюсь ^^)

Кто-нибудь получил ссылку на .net lua parser?

Просто чтобы уточнить - я только хочу проанализировать код на данном этапе - я не хочу запустить это!

Заранее спасибо!

Corelgott

Ответы [ 5 ]

3 голосов
/ 17 апреля 2011

Только для записи:

Я пошел с комбинацией:

http://irony.codeplex.com/ - Набор языковых реализаций, который можно адаптировать для анализа нескольких языков. (Между прочим, у этого практически не было никакой документации, так что когда-либо ... Итак, комментарии к коду - нет документов ... но очень весело ...)

и настроенная версия

http://luairony.codeplex.com/ - синтаксис Lua для иронии (добавлен некоторый уровень погрешности)

Но я должен быть администратором, оба довольно тяжелые вещи ... и вы как бы открываете ящик новых проблем, а также множество возможностей ...

Приветствия, Корелготт

1 голос
/ 12 апреля 2011

Не полностью, но:

http://luairony.codeplex.com/

1 голос
/ 10 ноября 2010

Ответы на этот вопрос SO могут быть полезны.

Самый простой способ анализа структуры данных Lua в C # / .Net

0 голосов
/ 10 ноября 2010

Посмотрите здесь: Рецепты Lua для LPeg Может быть, вы можете использовать один - иначе я бы посмотрел на использование расширенного BNF из документации.

0 голосов
/ 10 ноября 2010

Это не совсем то, что вы ищете, но, возможно, половина из них может дать половину ответа.

Преобразует Lua в C, анализируя Lua в AST. Затем вы можете извлечь необходимую информацию из AST. Это написано на Lua, но вы уже знаете, как это назвать:)

...