Attributes

object=
    <Declaration attribute>
    <Initialization attribute>
    <Events attribute>
    <Messages attribute>
    <Rewards attribute>

<Declaration attribute>=
     Declaration=
     <Declaration definition>

     <Declaration definition>=
         <Var definition>
         <Const definition>
         <Param definition>

         <Var definition>=
              State          : <identifier list> ;
              Float          : <identifier list> ;
              Integer        : <identifier list> ;
              FloatQueue     : <identifier list> ;
              IntegerQueue   : <identifier list> ;


         <Const definition>=
              Integer        : <identifier list> ;
              | Float        : <identifier list> ;
              | Object       : <identifier list> ;
              | Port         : <identifier list> ;

         <Param definition>=
              Integer        : <identifier list> ;
              | Float        : <identifier list> ;

<Initialization attribute>=
    <state identifier>        = <integer number>
    |<integer identifie>      = <integer number>
    |<float identifier>       = <float number>
    |<object identifier       = <object name>
    |<port identifier>        = <port name>


<Events attribute>=
    Events=
    <Event description>

    <Event description>=
    <event definition>
    <event condition definition>
      <action definition>

    <event definition>=
        event = <event name>(<distribution type>, <expression>)
            <distribution type> = exp | det
        <event condition definition>=
            condition = (<boolean expression>)
        <action definition>=
            action   = <action code>;
            | action = <action prob list>;

            <action code>=
                
                  <variable declaration attribute>
                  <statement sequence>
                
            <action prob list>=
                <action code>;  <prob definition>
                <prob definition>=
                    prob = <expression>;

<Message attribute>=
    Messages=
    <Message description>

    <Message description>=
        <message definition>
        <action definition>

        <message definition>=
            msg_rec = <port identifier>

<Rewards attribute>=
    Rewards=
    <reward definition>

    <reward definition>=
        <reward rate header> <reward cond value list>
        | <reward impulse header> <reward event value list>

        <reward rate header>=
            rate_reward = <reward identifier>

        <reward impulse header>=
            impulse_reward = <reward identifier>

        <reward cond value list>=
            condition = ( <boolean expression> )
            value     = <expression> ;

        <reward event value list>=
            event     = <event name>, <triggers>
            value     = <expression> ;                

Guilherme Dutra Gonzaga Jaime 2010-10-27