solidity-antlr4
Version:
Solidity Lang Lexer and Parser by official ANTLR4 grammar
24 lines (23 loc) • 631 B
JavaScript
import { BaseNodeString } from "../base.js";
class TypeNameWithArray extends BaseNodeString {
type = "TypeName";
baseType;
expression;
constructor(ctx, visitor) {
super(ctx, visitor);
const target = [
ctx.elementaryTypeName(),
ctx.functionTypeName(),
ctx.mappingType(),
ctx.identifierPath(),
ctx.typeName()
].find(Boolean);
if (!ctx.LBrack()) {
return target.accept(visitor);
}
this.name = ctx.getText();
this.baseType = target.accept(visitor);
this.expression = ctx.expression()?.accept(visitor) ?? null;
}
}
export const TypeName = TypeNameWithArray;