Este es un análisis de trabajo sin pérdidas Lua 5.1+ escrito en óxido. Preservará todos los comentarios, espacios en blanco y distinciones de estilo, como citas y escapadas.
Quiero usar MAB para varios proyectos futuros:
Las contribuciones son bienvenidas: ¡hay mucho trabajo por hacer!
MAB admite Rust 1.26 estable y más nuevo.
Ya existe un conjunto de pruebas bastante considerable implementado como un sistema de "análisis por ejemplo". Las entradas del archivo de prueba se encuentran en parse_examples/source .
El corredor de prueba ( cargo test ) leerá, tokenizará y analizará estos archivos de origen y verificará la última carpeta de buenos resultados conocida ( parse_examples/results ) para ver si coinciden con lo que hicieron antes.
Si está realizando cambios que modifican el AST del analizador, elimine la lista de token serializada correspondiente y los archivos AST JSON. Cuando ejecute el corredor de prueba a continuación, generará archivos que deben revisarse y enviar manualmente junto con su cambio. El espectador de Diff de Git puede ayudar a identificar si lo que se cambió fue intencional.
Tenga cuidado con las terminaciones de línea cuando se desarrolle en Windows. El repositorio tiene un archivo .editorconfig , así como un archivo .gitattributes para tratar de garantizar que todos los archivos LUA tengan terminaciones de línea LF en lugar de CRLF . Verificar en una lista de tokens de análisis con ejemplo con terminaciones de línea CRLF horneadas en ella hará que CI falle.
Este proyecto está disponible bajo los términos de la Licencia Pública de Mozilla, versión 2.0. Los detalles están disponibles en la licencia.