solidity-antlr4
Version:
Solidity Lang Lexer and Parser by official ANTLR4 grammar
29 lines (27 loc) • 1.18 kB
JavaScript
;
var _parser = require("../parser/index.cjs");
var _vitest = require("vitest");
(0, _vitest.test)("parser", () => {
const ast = (0, _parser.parse)(`// SPDX-License-Identifier: MIT
// compiler version must be greater than or equal to 0.8.20 and less than 0.9.0
pragma solidity ^0.8.20;
contract HelloWorld {
string public greet = "Hello World!";
}`);
(0, _vitest.expect)(ast.type).toBe("SourceUnit");
(0, _vitest.expect)((0, _parser.tokenizer)(`// SPDX-License-Identifier: MIT
// compiler version must be greater than or equal to 0.8.20 and less than 0.9.0
pragma solidity ^0.8.20;
contract HelloWorld {
string public greet = "Hello World!";
}`).length).toBe(15);
(0, _vitest.expect)(() => (0, _parser.parse)("contract 1fOO {}")).toThrow();
(0, _vitest.expect)(() => (0, _parser.parse)("asdfalsdkfjasdlfjasdfadsf")).toThrow();
(0, _vitest.expect)(() => (0, _parser.parse)("contract HelloW", {
tolerant: false
})).toThrow();
(0, _vitest.expect)(() => (0, _parser.tokenizer)("contract 1fOO {}")).not.toThrow();
(0, _vitest.expect)(() => (0, _parser.tokenizer)("asdfalsdkfjasdlfjasdfadsf", {
tolerant: true
})).not.toThrow();
});