# language-solidity

> A parser for Solidity language

Latest version **0.4.18-alpha** (published 2017-11-06) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install language-solidity
pnpm add language-solidity
yarn add language-solidity
bun add language-solidity
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.4.18-alpha |
| Published | 2017-11-06 |
| First published | 2017-11-06 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Kwang Yul Seo |
| Maintainers | kwangseo |

## Links

- npm: https://www.npmjs.com/package/language-solidity
- Repository: https://github.com/CodeChain-io/language-solidity
- npm.io page: https://npm.io/package/language-solidity

## Recent versions

- 0.4.18-alpha (latest) — 2017-11-06

## README

Solidity Parser
===============
[![Build Status](https://travis-ci.org/CodeChain-io/solidity-parser.svg?branch=master)](https://travis-ci.org/CodeChain-io/solidity-parser)

A Solidity parser written in TypeScript.

# Usage

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

```typescript
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();
```

---
_Source: https://npm.io/package/language-solidity · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
