<> <> DIRECTORY DBDefs USING [Index, IndexObject, FieldSequenceObject, FieldSequence, ValueSequence, ValueSequenceObject, Constraint, ConstraintObject, Value, ValueConstraint], DB USING [FieldSpec, FieldSpecObject]; CypressSequences: CEDAR PROGRAM ~ BEGIN MakeFieldSpec: PROC [count: CARDINAL] RETURNS [fields: DB.FieldSpec] ~ { fields _ NEW[DB.FieldSpecObject[count]] }; MakeIndex: PROC [count: CARDINAL] RETURNS [index: DBDefs.Index] ~ { index _ NEW[DBDefs.IndexObject _ [key: 0, index: NIL, fields: MakeFieldSequence[count]]] }; MakeFieldSequence: PROC [count: CARDINAL] RETURNS [fields: DBDefs.FieldSequence] ~ { fields _ NEW[DBDefs.FieldSequenceObject[count]] }; MakeValueSequence: PROC [count: CARDINAL] RETURNS [vals: DBDefs.ValueSequence] ~ { vals _ NEW[DBDefs.ValueSequenceObject[count]] }; SetValueSequence: PROC [vals: DBDefs.ValueSequence, pos: CARDINAL, v: DBDefs.Value] ~ TRUSTED { vals[pos] _ v }; MakeConstraintSequence: PROC [count: CARDINAL, cList: LIST OF DBDefs.ValueConstraint] RETURNS [c: DBDefs.Constraint] ~ TRUSTED { pos: CARDINAL _ 0; c _ NEW[DBDefs.ConstraintObject[count]]; FOR cL: LIST OF DBDefs.ValueConstraint _ cList, cL.rest UNTIL cL = NIL DO c[pos] _ cL.first; pos _ pos + 1 ENDLOOP }; END.