public TableValue(RecordLayout layout) { if (layout.Count < 2) { throw new Exception("A table must consist of at least two fields"); } this.layout = layout; }
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)); }
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; }
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); }
public TableValue(RecordLayout layout) { if (layout.Count < 2) throw new Exception("A table must consist of at least two fields"); this.layout = layout; }
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; }