solidity-parser-antlr - A Solidity parser for JS built on top of a robust ANTLR4 grammar

  •        77

A Solidity parser built on top of a robust ANTLR4 grammar.



Related Projects

ANTLR - ANother Tool for Language Recognition

  •    Java

ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files. It's widely used to build languages, tools, and frameworks. From a grammar, ANTLR generates a parser that can build and walk parse trees. Twitter search uses ANTLR for query parsing, with over 2 billion queries a day.

awesome-solidity - :small_blue_diamond: A curated list of awesome Solidity resources, libraries, tools and more

  •    Shell

A curated list of awesome Solidity resources, libraries, tools and more. Please check the contribution guidelines for info on formatting and writing pull requests.

solgraph - Visualize Solidity control flow for smart contract security analysis

  •    Javascript

Generates a DOT graph that visualizes function control flow of a Solidity contract and highlights potential security vulnerabilities.

browser-solidity - Browser-Only Solidity IDE and Runtime Environment

  •    Javascript

Remix (aka. Browser-Solidity) is a browser-based Solidity compiler and IDE.Visit to use; it will always deliver the latest version.

solidity-workshop - Educational material for Solidity. Complement to


This is a resource for Solidity and Ethereum smart-contract programming. Currently under construction. It's a side project with no deadlines, or any form of plan. NOTE: Old code, i.e. code in articles that are more then a few months old, should not be considered to be correct. Solidity moves forward at a high pace. Don't use coding techniques from old articles.

Solidity - The Solidity Contract-Oriented Programming Language

  •    C++

Solidity is a contract-oriented, high-level language for implementing smart contracts. It was influenced by C++, Python and JavaScript and is designed to target the Ethereum Virtual Machine (EVM). It is statically typed, supports inheritance, libraries and complex user-defined types among other features. With Solidity you can create contracts for uses such as voting, crowdfunding, blind auctions, and multi-signature wallets.

language - A fast PEG parser written in JavaScript with first class errors

  •    Objective-J

Language.js is an experimental new parser based on PEG (Parsing Expression Grammar), with the special addition of the "naughty OR" operator to handle errors in a unique new way. It makes use of memoization to achieve linear time parsing speed, and support for automatic cut placement is coming to maintain mostly constant space as well (for a discussion of cut operators see: The most unique addition Language.js makes to PEG is how it handles errors. No parse ever fails in Language.js, instead SyntaxErrorNodes are placed into the resultant tree. This makes it trivial to do things like write syntax highlighters that have live error reporting. This also means that Language.js is very competent at handling multiple errors (as opposed to aborting on the first one that is reached).

dapple - EVM contract system developer multitool

  •    Javascript

Dapple is a Solidity developer multitool designed to manage the growing complexity of interconnected smart contract systems. These concepts are related in a way unique to the smart contract ecosystem, due to each blockchain's universal singleton nature.

solidity-stringutils - Basic string utilities for Solidity


Functionality in this library is largely implemented using an abstraction called a 'slice'. A slice represents a part of a string - anything from the entire string to a single character, or even no characters at all (a 0-length slice). Since a slice only has to specify an offset and a length, copying and manipulating slices is a lot less expensive than copying and manipulating the strings they reference. To further reduce gas costs, most functions on slice that need to return a slice modify the original one instead of allocating a new one; for instance, s.split(".") will return the text up to the first '.', modifying s to only contain the remainder of the string after the '.'. In situations where you do not want to modify the original slice, you can make a copy first with .copy(), for example: s.copy().split("."). Try and avoid using this idiom in loops; since Solidity has no memory management, it will result in allocating many short-lived slices that are later discarded.

remix-ide - Browser-Only Solidity IDE and Runtime Environment

  •    Javascript

Remix is a browser-based compiler and IDE that enables users to build Ethereum contracts with Solidity language and to debug transactions. To try it out, visit

ethereum-api - Oraclize API for Ethereum smart contracts

  •    Solidity

Thanks to this Ethereum API helpers using Oraclize in your Solidity/Serpent code is very easy. In Solidity it is as simple as inheriting the usingOraclize contract: this will provide you some functions, like oraclize_query, which make it trivial to leverage our technology straight away.

openzeppelin-solidity - OpenZeppelin is a library for secure smart contract development

  •    Javascript

OpenZeppelin is a library for secure smart contract development. It provides implementations of standards like ERC20 and ERC721 which you can deploy as-is or extend to suit your needs, as well as Solidity components to build custom contracts and more complex decentralized systems. To write your custom contracts, import ours and extend them through inheritance.

Solium - Linter to identify and fix style & security issues in Solidity

  •    Javascript

Solium analyzes your Solidity code for style & security issues and fixes them. To know which lint rules Solium applies for you, see Style rules and Security rules.

Verilog 2005 parser

  •    Java

Verilog 2005 synthesizable subset parser built on ANTLR framework. Branch continues to evolve here:


  •    Java

JFlex is a lexical analyzer generator (also known as scanner generator). It is also a rewrite of the very useful tool JLex which was developed by Elliot Berk at Princeton University. JFlex is designed to work together with the LALR parser generator CUP by Scott Hudson, and the Java modification of Berkeley Yacc BYacc/J by Bob Jamison. It can also be used together with other parser generators like ANTLR or as a standalone tool.

ANTLR C# grammar


This project will generate a C# 4.0 parser using ANTLR v3.2. Then you can add your own logic to do what you want. It generates CSharp target and has a reasonably small amount of code for the preprocessor in the lexar.

BlockchainStore - :moneybag: Retail Store that runs on Ethereum

  •    TypeScript

It is written in Solidity and represents a retail store. It supports customer and product registrations. Every registered customer owns a shopping cart to collect products before checking out.