Example #1
0
 public TableValue(RecordLayout layout)
 {
     if (layout.Count < 2)
     {
         throw new Exception("A table must consist of at least two fields");
     }
     this.layout = layout;
 }
Example #2
0
        public override HeronValue Eval(VM vm)
        {
            RecordLayout      layout = ComputeRecordLayout();
            List <HeronValue> vals   = new List <HeronValue>();

            for (int i = 0; i < fields.Count; ++i)
            {
                vals.Add(vm.Eval(fields[i]));
            }
            return(new RecordValue(layout, vals));
        }
Example #3
0
 public RecordValue(RecordLayout layout, List <HeronValue> values)
 {
     if (layout == null)
     {
         throw new ArgumentNullException("missing layout value");
     }
     if (values.Count != layout.Count)
     {
         throw new Exception("Layout has different number of values from record");
     }
     this.layout = layout;
     this.values = values;
 }
Example #4
0
        public override HeronValue Eval(VM vm)
        {
            RecordLayout layout = ComputeRecordLayout();
            TableValue   r      = new TableValue(layout);

            foreach (ExpressionList row in rows)
            {
                List <HeronValue> vals = new List <HeronValue>();
                for (int i = 0; i < row.Count; ++i)
                {
                    vals.Add(vm.Eval(row[i]));
                }
                RecordValue rv = new RecordValue(layout, vals);
                r.Add(rv);
            }
            return(r);
        }
Example #5
0
 public TableValue(RecordLayout layout)
 {
     if (layout.Count < 2)
         throw new Exception("A table must consist of at least two fields");
     this.layout = layout;
 }
Example #6
0
 public RecordValue(RecordLayout layout, List<HeronValue> values)
 {
     if (layout == null)
         throw new ArgumentNullException("missing layout value");
     if (values.Count != layout.Count)
         throw new Exception("Layout has different number of values from record");
     this.layout = layout;
     this.values = values;
 }