solidity-parser-diligence
Advanced tools
Weekly downloads
Readme
A Solidity parser built on top of a robust ANTLR4 grammar.
Now maintained by the ConsenSys Diligence team! :tada:
You can find this new package in NPM at solidity-parser-diligence
(https://www.npmjs.com/package/solidity-parser-diligence).
import parser from 'solidity-parser-diligence';
var input = `
contract test {
uint256 a;
function f() {}
}
`
try {
parser.parse(input)
} catch (e) {
if (e instanceof parser.ParserError) {
console.log(e.errors)
}
}
The parse
method also accepts a second argument which lets you specify the
following options, in a style similar to the esprima API:
Key | Type | Default | Description |
---|---|---|---|
tolerant | Boolean | false | When set to true it will collect syntax errors and place them in a list under the key errors inside the root node of the returned AST. Otherwise, it will raise a parser.ParserError . |
loc | Boolean | false | When set to true , it will add location information to each node, with start and stop keys that contain the corresponding line and column numbers. Column numbers start from 0, lines start from 1. |
range | Boolean | false | When set to true , it will add range information to each node, which consists of a two-element array with start and stop character indexes in the input. |
parser.parse('contract test { uint a; }', { loc: true })
// { type: 'SourceUnit',
// children:
// [ { type: 'ContractDefinition',
// name: 'test',
// baseContracts: [],
// subNodes: [Array],
// kind: 'contract',
// loc: [Object] } ],
// loc: { start: { line: 1, column: 0 }, end: { line: 1, column: 24 } } }
var ast = parser.parse('contract test { uint a; }')
// output the path of each import found
parser.visit(ast, {
ImportDirective: function(node) {
console.log(node.path)
}
})
Gonçalo Sá (@gnsps)
Federico Bond (@federicobond)
MIT
FAQs
A Solidity parser built from a robust ANTLR 4 grammar
The npm package solidity-parser-diligence receives a total of 732 weekly downloads. As such, solidity-parser-diligence popularity was classified as not popular.
We found that solidity-parser-diligence demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.