示例#1
0
 public static UnifiedExpression CreateFor(XElement node)
 {
     Contract.Requires(node != null);
     Contract.Requires(node.Name() == "for");
     Contract.Assert(
         node.NthElement(1).Name() == "lasgn" ||
         node.NthElement(1).Name() == "masgn");
     return(UnifiedForeach.Create(
                CreateExpresion(node.NthElement(0)),
                CreateExpresion(node.NthElement(1).FirstElement()),
                CreateBlock(node.NthElement(2))));
 }
示例#2
0
        public UnifiedElement VisitForeachStatement(
            ForeachStatement stmt, object data)
        {
            var type = LookupType(stmt.VariableType);
            var name = stmt.VariableName.ToVariableIdentifier();
            var set  = stmt.InExpression.TryAcceptForExpression(this);
            var body =
                stmt.EmbeddedStatement.TryAcceptForExpression(this).ToBlock();

            var varDec = UnifiedVariableDefinition.Create(
                type: type, name: name);

            return(UnifiedForeach.Create(
                       varDec.ToVariableDefinitionList(), set, body));
        }