2010-11-10 7 views
3

premières choses d'abord; J'écris un peu de LUA-Id en C#. L'exécution du code est effectuée par un assembly nommé LuaInterface. L'édition de code est effectuée par un Scintilla-Port & l'interface RAD/UI est via l'extensible IDesignSurfaceExt Visual Studio (génération de code à sens unique). La gestion des fichiers est assurée par un petit sql-lite-db utilisé comme un fichier-paquet-projet.C# Lua Analyseur/Analyseur

Donc dans tout ce que j'ai tout ce que je besoin ensemble ...

Le seul problème non résolu est l'analyseur/lexer pour lua. Je ne veux pas charger & exécuter le code! Je veux juste analyser la chaîne contenant le code Lua et obtenir des informations à ce sujet comme la fonction et les variables globales. Je ne veux vraiment pas écrire l'analyseur complètement moi-même ... (Je déteste regex - je me trompe tout le temps ^^)

Quelqu'un at-il un lien vers un .net lua parser qui traîne?

Juste pour préciser - je ne veux analyser le code à ce moment - je les dont wnat à run it!

Merci d'avance!

Corelgott

Répondre

3

Pour la petite histoire:

Je suis allé avec un comibination de:

http://irony.codeplex.com/ - Un kit de mise en œuvre de la langue qui peut être adapté pour analyser plusieurs langues . (. BTW celui-ci a pratiquement pas ducumentation ce que si jamais ... Donc code docs commentaires ... mais pas beaucoup de plaisir ...)

et une version personnalisée de

http://luairony.codeplex.com/ - Lua Syntaxe pour l'ironie (ajouté une certaine tolérance d'erreur de degré)

Mais je dois administrer, les deux sont des choses assez lourdes ... et vous ouvrent en quelque sorte une boîte de nouveaux problèmes aussi bien que beaucoup de possibilités ...

Cheers, Corelgott

0

This est pas tout à fait ce que vous êtes après, mais peut-être la moitié peut fournir la moitié de la réponse.

Il convertit Lua en C, en analysant le Lua à un AST. Vous pouvez ensuite extraire l'information dont vous avez besoin de l'AST. Il est écrit en Lua, mais vous savez déjà comment appeler ça :)

0

Regardez ici: Lua recipes for LPeg Peut-être que vous pouvez en utiliser un - sinon je regarderais en utilisant le BNF étendu de la documentation.