I-Script

Author: Jeff Dalton

Updated: Wed Aug 24 04:52:14 2005 by Jeff Dalton


XML Syntax:

EXPRESSION ::= AND | ASSIGNMENT | CALL | IF
            |  LAMBDA | LET | LITERAL | OR | SEQUENCE
            |  VAR-REF | WHILE

AND ::=
   <and>
      <of><list>EXPRESSION...</list></of>
   </and>

ASSIGNMENT ::=
   <assignment
         to="NAME">
      <value>EXPRESSION</value>
   </assignment>

BINDING ::=
   <binding
         name="NAME">
      <value>EXPRESSION</value>
   </binding>

CALL ::=
   <call>
      <function>EXPRESSION</function>
      <arguments><list>EXPRESSION...</list></arguments>
   </call>

I-SCRIPT-XML-SOURCE ::=
   <i-script-XML-source>
      <expression>EXPRESSION</expression>
   </i-script-XML-source>

IF ::=
   <if>
      <test>EXPRESSION</test>
      <if-true>EXPRESSION</if-true>
      <if-false>EXPRESSION</if-false>
   </if>

LAMBDA ::=
   <lambda>
      <parameters><list>NAME...</list></parameters>
      <in>EXPRESSION</in>
   </lambda>

LET ::=
   <let>
      <bindings><list>BINDING...</list></bindings>
      <in>EXPRESSION</in>
   </let>

LITERAL ::=
   <literal>
      <value>OBJECT</value>
   </literal>

OR ::=
   <or>
      <of><list>EXPRESSION...</list></of>
   </or>

SEQUENCE ::=
   <sequence>
      <of><list>EXPRESSION...</list></of>
   </sequence>

VAR-REF ::=
   <var-ref
         name="NAME">
   </var-ref>

WHILE ::=
   <while>
      <test>EXPRESSION</test>
      <repeat>EXPRESSION</repeat>
   </while>
