Seed7 Library: Ref_list (original) (raw)

Types
ref_list Type to describe a list of reference objects.

ref_list

const type: ref_list

Type to describe a list of reference objects.

Operator Summary
ref_list (attr ref_list) . value Default value of ref_list (ref_list.EMPTY).
void (inout ref_list: dest) &:= (in ref_list: extension) Append the ref_list extension to dest.
void (inout ref_list: dest) @:= [ (in integer: position) ] (in reference: source) Assign reference source to the position of the dest.
boolean (in ref_list: refList1) = (in ref_list: refList2) Check if two ref_lists are equal.
boolean (in ref_list: refList1) <> (in ref_list: refList2) Check if two ref_lists are not equal.
reference (in ref_list: aRefList) [ (in integer: index) ] Access one element from the ref_list aRefList.
ref_list (in ref_list: aRefList) [ (in integer: start) .. ] Get a sublist from aRefList beginning at a start position.
ref_list (in ref_list: aRefList) [ .. (in integer: stop) ] Get a sublist from aRefList ending at a stop position.
ref_list (in ref_list: aRefList) [ (in integer: start) .. (in integer: stop) ] Get a sublist from a start position to a stop position.
ref_list (in ref_list: refList1) & (in ref_list: refList2) Concatenate two ref_lists.
boolean (in reference: element) in (in ref_list: aRefList) Membership test for a ref_list.
boolean (in reference: element) not in (in ref_list: aRefList) Negated membership test for a ref_list.
Function Summary
ref_list make_list (in reference: element) Create ref_list with the given element.
integer pos (in ref_list: main, in reference: searched) Search for the first occurrence of searched in main.
integer pos (in ref_list: main, in reference: searched, in integer: start) Search for searched in main at or after start.
integer length (in ref_list: aRefList) Determine the length of a ref_list.
void for (inout reference: forVar) range (in ref_list: aRefList) do (in proc: statement) end for For-loop where forVar loops over the elements of aRefList.
void for (inout reference: forVar) range (in ref_list: aRefList) until (ref func boolean: condition) do (in proc: statement) end for For-loop where forVar loops over the elements of aRefList.

. value

const ref_list: (attr ref_list) . value

Default value of ref_list (ref_list.EMPTY).


&:=

const proc: (inout ref_list: dest) &:= (in ref_list: extension)

Append the ref_list extension to dest.

Raises:

MEMORY_ERROR - Not enough memory for the concatenated ref_list.


@:= [

const proc: (inout ref_list: dest) @:= [ (in integer: position) ] (in reference: source)

Assign reference source to the position of the dest.

A @:= [B] C;

is equivalent to

A := A[..pred(B)] & make_list(C) & A[succ(B)..];

Raises:

INDEX_ERROR - If position is negative or zero, or an element beyond dest would be overwritten (position > length(dest) holds).


=

const func boolean: (in ref_list: refList1) = (in ref_list: refList2)

Check if two ref_lists are equal.

Returns:

TRUE if both ref_lists are equal, FALSE otherwise.


<>

const func boolean: (in ref_list: refList1) <> (in ref_list: refList2)

Check if two ref_lists are not equal.

Returns:

FALSE if both ref_lists are equal, TRUE otherwise.


[

const func reference: (in ref_list: aRefList) [ (in integer: index) ]

Access one element from the ref_list aRefList.

Returns:

the element with the specified index from aRefList.

Raises:

INDEX_ERROR - If the index is less than 1 or greater than the length of the ref_list.


[

const func ref_list: (in ref_list: aRefList) [ (in integer: start) .. ]

Get a sublist from aRefList beginning at a start position. The first element in a ref_list has the position 1.

Returns:

the sublist beginning at the start position.

Raises:

MEMORY_ERROR - Not enough memory to represent the result.


[ ..

const func ref_list: (in ref_list: aRefList) [ .. (in integer: stop) ]

Get a sublist from aRefList ending at a stop position. The first element in a ref_list has the position 1.

Returns:

the substring ending at the stop position.

Raises:

MEMORY_ERROR - Not enough memory to represent the result.


[

const func ref_list: (in ref_list: aRefList) [ (in integer: start) .. (in integer: stop) ]

Get a sublist from a start position to a stop position. The first element in a ref_list has the position 1.

Returns:

the substring from position start to stop.

Raises:

MEMORY_ERROR - Not enough memory to represent the result.


&

const func ref_list: (in ref_list: refList1) & (in ref_list: refList2)

Concatenate two ref_lists.

Returns:

the result of the concatenation.

Raises:

MEMORY_ERROR - Not enough memory to represent the result.


in

const func boolean: (in reference: element) in (in ref_list: aRefList)

Membership test for a ref_list. Determine if aRefList contains element.

Returns:

TRUE if element is a member of aRefList, FALSE otherwise.


not in

const func boolean: (in reference: element) not in (in ref_list: aRefList)

Negated membership test for a ref_list. Determine if aRefList does not contain element.

Returns:

FALSE if element is a member of aRefList, TRUE otherwise.

make_list

const func ref_list: make_list (in reference: element)

Create ref_list with the given element.

Returns:

a ref_list of length 1 with the given element.

Raises:

MEMORY_ERROR - Not enough memory to represent the result.


pos

const func integer: pos (in ref_list: main, in reference: searched)

Search for the first occurrence of searched in main. The first element in a ref_list has the position 1.

Returns:

the position of searched or 0 if main does not contain searched.


pos

const func integer: pos (in ref_list: main, in reference: searched, in integer: start)

Search for searched in main at or after start. The search begins at position start and proceeds to the end. The first element in a ref_list has the position 1. The pos function is designed to allow loops like:

index := pos(aList, aReference); while index <> 0 do

Do something with index

index := pos(aList, aReference, succ(index)); end while;

Returns:

the position of searched or 0 if main does not contain searched at or after start.

Raises:

RANGE_ERROR - start <= 0 holds.


length

const func integer: length (in ref_list: aRefList)

Determine the length of a ref_list.

Returns:

the length of the ref_list.


for

const proc: for (inout reference: forVar) range (in ref_list: aRefList) do (in proc: statement) end for

For-loop where forVar loops over the elements of aRefList.


for

const proc: for (inout reference: forVar) range (in ref_list: aRefList) until (ref func boolean: condition) do (in proc: statement) end for

For-loop where forVar loops over the elements of aRefList. Additionally a condition is checked before the statements in the loop body are executed.