UNPKG

solidity-antlr4

Version:

Solidity Lang Lexer and Parser by official ANTLR4 grammar

29 lines (27 loc) 1.18 kB
"use strict"; 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(); });