UNPKG

solidity-antlr4

Version:

Solidity Lang Lexer and Parser by official ANTLR4 grammar

25 lines (20 loc) 675 B
import { test } from "vitest"; import { parse, tokenizer } from "../parser/index.js"; import { generate } from "../generator/index.js"; test("generator", async () => { const code = ` pragma solidity solidity soliditysoliditysoliditysoliditysoliditysoliditysoliditysoliditysoliditysolidity ^0.8.20; contract Hi { struct MyStruct { string name; uint[2] nums; } } // asdf `; const ast = parse(code, { tolerant: true }); const tokens = tokenizer(code, { tolerant: true }); const target = ast.nodes[1].nodes[0]; target.comments = tokens.filter((token) => token.type?.includes("COMMENT")); console.log(await generate(target)); });