Definición de gramática BNF para Solidity

Busqué en los repositorios Mix y Solidity algo así como una definición formal de la gramática del idioma, de modo que uno pueda generar analizadores usando herramientas como GrammarKit , pero no pude encontrar nada.

¿Algún consejo?

Si no hay respuesta aquí, sugiero probar gitter.im/ethereum/solidity

Respuestas (5)

Hay un archivo llamado grammar.txt en el repositorio de Solidity:

https://github.com/ethereum/solidity/blob/develop/docs/grammar.txt

¿Eso es probablemente lo que estás buscando?

¡Gracias! Busqué "gramática" en el mismo repositorio, y lo único que GitHub pudo encontrar fue "Scanner.cpp"... Lástima que no estén usando BNF, podría plantear un problema por eso. Sin embargo, debería ser fácil de convertir.
@Matthias, ¿podría explicar cómo convertir ese archivo a BNF?
el segundo enlace también está roto, pero aquí hay un "espejo": ethereumacademy.blogspot.com/2017/10/…

Escribí una gramática ANTLR4 para Solidity que puede resultarle útil:

https://github.com/solidityj/solidity-antlr4

Puede generar analizadores en cualquiera de los objetivos compatibles con ANTLR y, a partir de hoy, es totalmente compatible con el lenguaje Solidity.

Aquí hay otro enlace que apunta a la documentación de solidez:

http://solidity.readthedocs.io/en/develop/miscellaneous.html#language-grammar