Solidity Parsing Using SmaCC: Challenges and Irregularities

Henrique Rocha 1 Stéphane Ducasse 1 Marcus Denker 1 Jason Lecerf 2
1 RMOD - Analyses and Languages Constructs for Object-Oriented Application Evolution
Inria Lille - Nord Europe, CRIStAL - Centre de Recherche en Informatique, Signal et Automatique de Lille (CRIStAL) - UMR 9189
Abstract : Solidity is a language used to implement smart contracts on a blockchain platform. Since its initial conception in 2014, Solidity has evolved into one of the major languages for the Ethereum platform as well as other blockchain technologies. Due to its popularity, there are many tools specifically designed to handle smart contracts written in Solidity. However , there is a lack of tools for Pharo to handle Solidity contracts. Therefore, we implemented a parser using SmaCC to serve as a base for further developing Solidity support in Pharo. In this paper we describe the parser creation, the irregularities we found in the Solidity grammar specification, and common practices on how to adapt the grammar to an LR type parser. Our experiences with parsing the Solidity language using SmaCC may help other developers trying to convert similar grammars.
Type de document :
Communication dans un congrès
Proceedings of the 12th Edition of the International Workshop on Smalltalk Technologies, Sep 2017, Maribor, Slovenia. ACM, pp.2:1--2:9, 〈10.1145/3139903.3139906〉
Liste complète des métadonnées

Littérature citée [15 références]  Voir  Masquer  Télécharger

https://hal.inria.fr/hal-01651858
Contributeur : Lse Lse <>
Soumis le : mercredi 29 novembre 2017 - 15:46:49
Dernière modification le : lundi 24 septembre 2018 - 11:34:03

Fichier

Roch17a-IWST-SolidityParser.pd...
Fichiers produits par l'(les) auteur(s)

Identifiants

Citation

Henrique Rocha, Stéphane Ducasse, Marcus Denker, Jason Lecerf. Solidity Parsing Using SmaCC: Challenges and Irregularities. Proceedings of the 12th Edition of the International Workshop on Smalltalk Technologies, Sep 2017, Maribor, Slovenia. ACM, pp.2:1--2:9, 〈10.1145/3139903.3139906〉. 〈hal-01651858〉

Partager

Métriques

Consultations de la notice

450

Téléchargements de fichiers

276