Fix indentation in GPL headers
[hcoop/domtool2.git] / src / ast.sml
index b48f13e..efc2fb0 100644 (file)
@@ -14,7 +14,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-*)
+ *)
 
 (* Configuration language abstract syntax *)
 
@@ -48,7 +48,7 @@ datatype typ' =
        *  - Is valid in the given pred
        *  - Expects an environment compatible with the first record
        *  - Modifies it according to the second record *)
-       | TNested of pred * pred
+       | TNested of pred * typ
        (* Allow nested configuration, in the form of a function from an action
        * satisfying the first predicate to an action satisfying the second and
        * with the same environment variable IO behavior. *)
@@ -84,9 +84,9 @@ datatype exp' =
        (* Get an environment variable *)
        | ESeq of exp list
        (* Monad sequencer; execute a number of commands in order *)
-       | ELocal of exp
-       (* Local execution; execute the action and then restore the previous
-       * environment. *)
+       | ELocal of exp * exp
+       (* Local execution; like ESeq, but the writes of the first
+       * action are abandoned *)
        | EWith of exp * exp
        (* Apply a TNested to an action *)
 withtype exp = exp' * position
@@ -94,6 +94,7 @@ withtype exp = exp' * position
 datatype decl' =
         DExternType of string
        | DExternVal of string * typ
+       | DVal of string * typ option * exp
 type decl = decl' * string option * position
 
 type file = decl list * exp option