solidity-antlr4
Version:
Solidity Lang Lexer and Parser by official ANTLR4 grammar
24 lines (23 loc) • 653 B
JavaScript
import { BaseNode } from "../base.js";
export class YulStatement extends BaseNode {
type = "YulStatement";
expression = null;
constructor(ctx, visitor) {
super(ctx, visitor);
const target = [
ctx.yulBlock(),
ctx.yulVariableDeclaration(),
ctx.yulAssignment(),
ctx.yulFunctionCall(),
ctx.yulIfStatement(),
ctx.yulForStatement(),
ctx.yulSwitchStatement(),
ctx.yulFunctionDefinition()
].find(Boolean);
if (target) {
this.expression = target.accept(visitor);
} else if (ctx.YulBreak() || ctx.YulContinue() || ctx.YulLeave()) {
this.expression = ctx.getText();
}
}
}