## instruction.pkg
# Compiled by:
#
src/lib/reactive/reactive.lib# An AST representation of reactive scripts.
package instruction {
Config X
= POS_CONFIG X
| NEG_CONFIG X
| OR_CONFIG ((Config(X), Config(X)) )
| AND_CONFIG ((Config(X), Config(X)) );
Signal = quickstring__premicrothread::Quickstring;
Instr X
= OR ((Instr(X), Instr(X)) )
| AND ((Instr(X), Instr(X)) )
| NOTHING
| STOP
| SUSPEND
| ACTION X -> Void
| EXEC X -> { stop: Void -> Void, done: Void -> Bool }
| IF_THEN_ELSE (((X -> Bool), Instr(X), Instr(X)) )
| REPEAT ((Int, Instr(X)) )
| LOOP Instr(X)
| CLOSE Instr(X)
| SIGNAL ((Signal, Instr(X)) )
| REBIND ((Signal, Signal, Instr(X)) )
| WHEN ((Config( Signal ), Instr(X), Instr(X)) )
| TRAP_WITH ((Config( Signal ), Instr(X), Instr(X)) )
| EMIT Signal
| AWAIT Config( Signal );
};
## COPYRIGHT (c) 1997 Bell Labs, Lucent Technologies.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.