public override ASTN VisitCase([NotNull] CaseContext context) { CaseNode node = new CaseNode(context) { CaseBase = VisitExpr(context.case_expr) as ExprNode }; var list = context.expr().Skip(1); var zip = list.Zip(context.formal(), (x, y) => (x, y)); foreach (var(expr, formal) in zip) { node.Branchs.Add((VisitFormal(formal) as FormalNode, VisitExpr(expr) as ExprNode)); } return(node); }