X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fparsing%2Fparser%2FSCLParserImpl.java;fp=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fparsing%2Fparser%2FSCLParserImpl.java;h=a29368c2af31c33457ba3482cb110aa48fd84c90;hp=bda298bd661afd593eb59fc5766f9a6b72ba46da;hb=82a87b8535628d47d9c381e1a3a2296fb67c7fd0;hpb=b4ad5dec5012b96765e6bb85f990500d2b376a96 diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLParserImpl.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLParserImpl.java index bda298bd6..a29368c2a 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLParserImpl.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLParserImpl.java @@ -57,6 +57,7 @@ import org.simantics.scl.compiler.elaboration.expressions.accessor.FieldAccessor 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; @@ -761,7 +762,14 @@ public class SCLParserImpl extends SCLParser { 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; }