0.4.18-alpha • Published 7 years ago

language-solidity v0.4.18-alpha

Weekly downloads
6
License
Apache-2.0
Repository
github
Last release
7 years ago

Solidity Parser

Build Status

A Solidity parser written in TypeScript.

Usage

The following code snippet prints the contract names contained in MetaCoin.sol.

import * as fs from "fs";

import {
    ASTVisitor,
    CharStream,
    ContractDefinition,
    DiagnosticReporter,
    Parser,
    Scanner,
    SourceUnit
} from "../src";

class ContractNameCollector extends ASTVisitor {
    public contractNames: string[] = [];

    constructor(node: SourceUnit) {
        super();
        node.accept(this);
    }

    public visitContractDefinition(node: ContractDefinition): boolean {
        this.contractNames.push(node.name);
        return true;
    }
}

function main() {
    const source = fs.readFileSync("MetaCoin.sol").toString();
    const scanner = new Scanner(new CharStream(source));
    const reporter = new DiagnosticReporter();
    const parser = new Parser(reporter);
    const node = parser.parse(scanner);
    const collector = new ContractNameCollector(node);
    console.log(collector.contractNames);
}

main();