import org.simantics.scl.compiler.elaboration.expressions.accessor.IdAccessor;
import org.simantics.scl.compiler.elaboration.expressions.accessor.StringAccessor;
import org.simantics.scl.compiler.elaboration.expressions.block.BindStatement;
+import org.simantics.scl.compiler.elaboration.expressions.block.BlockType;
import org.simantics.scl.compiler.elaboration.expressions.block.CHRStatement;
import org.simantics.scl.compiler.elaboration.expressions.block.ConstraintStatement;
import org.simantics.scl.compiler.elaboration.expressions.block.GuardStatement;
protected Object reduceDo() {
EBlock block = (EBlock)get(1);
Token doToken = (Token)get(0);
- block.setMonadic( doToken.text.equals("mdo") );
+ switch(doToken.text) {
+ case "mdo":
+ block.setBlockType(BlockType.Monad);
+ break;
+ case "edo":
+ block.setBlockType(BlockType.MonadE);
+ break;
+ }
block.location = Locations.location(Locations.beginOf(doToken.location), Locations.endOf(block.location));
return block;
}