Repeat Service

The repeat service can transform/run a quantified set of repeated goals.

    repeat#run(<quantified_process_set>)
    repeat#path(<quantified_process_set>, Path)
    repeat#list(<quantified_process_set>, List)
    repeat#service(Service, <quantified_process_set>, Path)

BNF

    <quantified_process_set> ::=
        <repeated goal>
        [<repeated goal> , <quantified_process_set>]

        (<repeated goal> , <quantified_process_set>)

    <repeated goal> ::=
        <goal>
        <repetition> * <goal>

    <goal> ::=
        <predicate>
        <remote procedure call>
        <quantified_process_set>

    <remote procedure call> ::=
                       # <goal>
        <service name> # <goal>

    <repetition> ::= <integer>

    <predicate> ::=
        <predicate name>
        <predicate name> (<argument list>)

    <argument list> ::=
        <logix_term>
        <logix_term> , < argument list>

Notes:

A <service name> or a <predicate name> may be a string or a variable.

A <service name> or a <predicate name>, which is an undefined writable variable whose name begins with a capital letter, is transformed to its literal string name -

e.g. A#B(X), where A#B(X) and B are writable variables, is transformed to "A"#"B"(X). To suppress this behavior, add the argument "false" following the last argument of the call to repeat -

e.g. repeat#path(Input, Output, false) does NOT treat the Input variable as the literal string, "Input".

Read-only variables, and variables whose names begin with other than an alphabetic capital are NOT transformed.

A negative < repetition> is treated as zero.

Examples:

1. repeat#run(64*dimerization#A_PROTEIN)

2. repeat#run([activator#6*(A_PROTEIN,A_GENE), repressor#R_GENE])

3. repeat#run([2*(activator#A_GENE,3*repressor#R_GENE), hysteresis#MODULE])

The repeat service is applied to the first argument of the Logix user macros: at, c, d, i, l, profile, record, rpc, run, time, trace, vi..

It is also applied to the first argument of the BioSpi and SpiFcp macros "#", atrace, pdb, record, rpc, run, trace, time and to the first two arguments of the macro vtree.

4. atrace(porin#(4*Mole, 2*Cell), file, 10)

5. Logix_Users#SpiFcp_Users#spi_object#SPC(SpiChannel)

This document is licensed under Gnu General Public License - Version 3
http://www.nongnu.org/efcp/gnu-gpl3.html