private ParameterDeclaration VisitArrayPatternElement(IArrayPatternElement arrayPatternElement) { ParameterDeclaration paramDecl; if (arrayPatternElement is Identifier identifier) { var name = VisitIdentifier(identifier); paramDecl = new ParameterDeclaration(null, null, name, name.TextSpan); } else if (arrayPatternElement is AssignmentPattern assignmentPattern) { var assignExpr = VisitAssignmentPattern(assignmentPattern); UstTokens.IdToken name; if (assignExpr.Left is UstTokens.IdToken idToken) { name = idToken; } else { Logger?.LogDebug($"Not {nameof(UstTokens.IdToken)} nodes are not support as parameter names"); // TODO name = null; } paramDecl = new ParameterDeclaration(null, null, name, assignExpr.TextSpan) { Initializer = assignExpr.Right }; } else if (arrayPatternElement == null) { paramDecl = null; } else { // TODO: other types paramDecl = null; } return(paramDecl); }
public VariableDeclarator(IArrayPatternElement id, Expression init) : base(Nodes.VariableDeclarator) { Id = id; Init = init; }
public CatchClause(IArrayPatternElement param, BlockStatement body) : base(Nodes.CatchClause) { Param = param; Body = body; }