public override AssignLhs VisitMapAssignLhs(MapAssignLhs node) { //Contract.Requires(node != null); Contract.Ensures(Contract.Result<AssignLhs>() != null); CheckTypeParams(node, cce.NonNull(node.TypeParameters)); return base.VisitMapAssignLhs(node); }
public override AssignLhs VisitMapAssignLhs(MapAssignLhs node) { //Contract.Requires(node != null); Contract.Ensures(Contract.Result<AssignLhs>() != null); MapAssignLhs clone = (MapAssignLhs)node.Clone(); clone.Indexes = new List<Expr/*!*/>(clone.Indexes); return base.VisitMapAssignLhs(clone); }
public override AssignLhs VisitMapAssignLhs(MapAssignLhs node) { Contract.Ensures(Contract.Result<AssignLhs>() == node); this.Visit(node.Map); for (int i = 0; i < node.Indexes.Count; ++i) this.Visit(node.Indexes[i]); return node; }
public virtual AssignLhs VisitMapAssignLhs(MapAssignLhs node) { Contract.Requires(node != null); Contract.Ensures(Contract.Result<AssignLhs>() != null); node.Map = cce.NonNull((AssignLhs)this.Visit(node.Map)); for (int i = 0; i < node.Indexes.Count; ++i) node.Indexes[i] = cce.NonNull((Expr)this.Visit(node.Indexes[i])); return node; }
void LabelOrAssign(out Cmd c, out IToken label) { IToken/*!*/ id; IToken/*!*/ x, y; Expr/*!*/ e0; c = dummyCmd; label = null; AssignLhs/*!*/ lhs; List<AssignLhs/*!*/>/*!*/ lhss; List<Expr/*!*/>/*!*/ rhss; List<Expr/*!*/>/*!*/ indexes; Ident(out id); x = t; if (la.kind == 12) { Get(); c = null; label = x; } else if (la.kind == 13 || la.kind == 18 || la.kind == 51) { lhss = new List<AssignLhs/*!*/>(); lhs = new SimpleAssignLhs(id, new IdentifierExpr(id, id.val)); while (la.kind == 18) { MapAssignIndex(out y, out indexes); lhs = new MapAssignLhs(y, lhs, indexes); } lhss.Add(lhs); while (la.kind == 13) { Get(); Ident(out id); lhs = new SimpleAssignLhs(id, new IdentifierExpr(id, id.val)); while (la.kind == 18) { MapAssignIndex(out y, out indexes); lhs = new MapAssignLhs(y, lhs, indexes); } lhss.Add(lhs); } Expect(51); x = t; /* use location of := */ Expression(out e0); rhss = new List<Expr/*!*/> (); rhss.Add(e0); while (la.kind == 13) { Get(); Expression(out e0); rhss.Add(e0); } Expect(9); c = new AssignCmd(x, lhss, rhss); } else SynErr(111); }