solidity-antlr4
Version:
Solidity Lang Lexer and Parser by official ANTLR4 grammar
25 lines (20 loc) • 675 B
JavaScript
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));
});