Initial commit. A simple functional language with numeric and string constants, single-argument abstractions and let bindings.

This commit is contained in:
Fedor Isakov 2016-11-14 16:30:35 +01:00
parent 3763f3dfe8
commit e9c3191a59
17 changed files with 1642 additions and 0 deletions

10
samples/lambdacalc/.gitignore vendored Normal file
View File

@ -0,0 +1,10 @@
**/source_gen/*
**/source_gen.caches/*
**/test_gen/*
**/test_gen.caches/*
**/classes_gen/*
**/classes_jchr/*
.mps/workspace.xml
.idea/workspace.xml
out
build/*

View File

@ -0,0 +1 @@
Project24

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="PROJECT" charset="UTF-8" />
</component>
</project>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MigrationProperties">
<entry key="jetbrains.mps.cleanExp_3.4" value="executed" />
<entry key="jetbrains.mps.ide.mpsmigration.v34.EngagedLanguagesImports" value="executed" />
<entry key="jetbrains.mps.javaVersionMigration_JDKDefault" value="executed" />
</component>
</project>

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MPSFavoritesManager">
<option name="keepMe" value="true" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
<OptionsSetting value="true" id="Add" />
<OptionsSetting value="true" id="Remove" />
<OptionsSetting value="true" id="Checkout" />
<OptionsSetting value="true" id="Update" />
<OptionsSetting value="true" id="Status" />
<OptionsSetting value="true" id="Edit" />
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
</project>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MPSProject">
<projectModules>
<modulePath path="$PROJECT_DIR$/languages/sample.fooblin/sample.fooblin.mpl" folder="" />
<modulePath path="$PROJECT_DIR$/solutions/sample.demo/sample.demo.msd" folder="" />
</projectModules>
</component>
</project>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectVersion">
<option name="version" value="3.1" />
</component>
</project>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:751ff5d0-8cb2-405d-8c05-6bf4137771b3(sample.fooblin.generator.template.main@generator)">
<persistence version="9" />
<languages>
<use id="af858d84-85f2-42f4-a854-0b3c6b5cd482" name="sample.fooblin" version="-1" />
<devkit ref="a2eb3a43-fcc2-4200-80dc-c60110c4862d(jetbrains.mps.devkit.templates)" />
</languages>
<imports />
<registry>
<language id="b401a680-8325-4110-8fd3-84331ff25bef" name="jetbrains.mps.lang.generator">
<concept id="1095416546421" name="jetbrains.mps.lang.generator.structure.MappingConfiguration" flags="ig" index="bUwia" />
</language>
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
<property id="1169194664001" name="name" index="TrG5h" />
</concept>
</language>
</registry>
<node concept="bUwia" id="7_8aRkgDGPi">
<property role="TrG5h" value="main" />
</node>
</model>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:9dec6437-6097-4be2-891f-1792da0df61f(sample.fooblin.behavior)">
<persistence version="9" />
<languages>
<use id="af65afd8-f0dd-4942-87d9-63a55f2a9db1" name="jetbrains.mps.lang.behavior" version="0" />
<devkit ref="2677cb18-f558-4e33-bc38-a5139cee06dc(jetbrains.mps.devkit.language-design)" />
</languages>
<imports />
<registry />
</model>

View File

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:49af371c-e432-4e5a-a3df-e689ebe20a8d(sample.fooblin.constraints)">
<persistence version="9" />
<languages>
<use id="3f4bc5f5-c6c1-4a28-8b10-c83066ffa4a1" name="jetbrains.mps.lang.constraints" version="0" />
<use id="d4615e3b-d671-4ba9-af01-2b78369b0ba7" name="jetbrains.mps.lang.pattern" version="1" />
<use id="daafa647-f1f7-4b0b-b096-69cd7c8408c0" name="jetbrains.mps.baseLanguage.regexp" version="0" />
<devkit ref="2677cb18-f558-4e33-bc38-a5139cee06dc(jetbrains.mps.devkit.language-design)" />
</languages>
<imports>
<import index="8tt8" ref="r:e74c1bfc-387b-4b4b-abee-2eb77ee510ec(sample.fooblin.structure)" implicit="true" />
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
<import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
</imports>
<registry>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
<concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
<concept id="1197027756228" name="jetbrains.mps.baseLanguage.structure.DotExpression" flags="nn" index="2OqwBi">
<child id="1197027771414" name="operand" index="2Oq$k0" />
<child id="1197027833540" name="operation" index="2OqNvi" />
</concept>
<concept id="1137021947720" name="jetbrains.mps.baseLanguage.structure.ConceptFunction" flags="in" index="2VMwT0">
<child id="1137022507850" name="body" index="2VODD2" />
</concept>
<concept id="1070475926800" name="jetbrains.mps.baseLanguage.structure.StringLiteral" flags="nn" index="Xl_RD">
<property id="1070475926801" name="value" index="Xl_RC" />
</concept>
<concept id="1068580123155" name="jetbrains.mps.baseLanguage.structure.ExpressionStatement" flags="nn" index="3clFbF">
<child id="1068580123156" name="expression" index="3clFbG" />
</concept>
<concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
<child id="1068581517665" name="statement" index="3cqZAp" />
</concept>
<concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
<reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
<child id="1068499141038" name="actualArgument" index="37wK5m" />
</concept>
</language>
<language id="3f4bc5f5-c6c1-4a28-8b10-c83066ffa4a1" name="jetbrains.mps.lang.constraints">
<concept id="1147467115080" name="jetbrains.mps.lang.constraints.structure.NodePropertyConstraint" flags="ng" index="EnEH3">
<reference id="1147467295099" name="applicableProperty" index="EomxK" />
<child id="1212097481299" name="propertyValidator" index="QCWH9" />
</concept>
<concept id="1212096972063" name="jetbrains.mps.lang.constraints.structure.ConstraintFunction_PropertyValidator" flags="in" index="QB0g5" />
<concept id="1213093968558" name="jetbrains.mps.lang.constraints.structure.ConceptConstraints" flags="ng" index="1M2fIO">
<reference id="1213093996982" name="concept" index="1M2myG" />
<child id="1213098023997" name="property" index="1MhHOB" />
</concept>
<concept id="1153138554286" name="jetbrains.mps.lang.constraints.structure.ConstraintsFunctionParameter_propertyValue" flags="nn" index="1Wqviy" />
</language>
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
<concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
<property id="1193676396447" name="virtualPackage" index="3GE5qa" />
</concept>
</language>
</registry>
<node concept="1M2fIO" id="7_8aRkgG6CD">
<property role="3GE5qa" value="expr" />
<ref role="1M2myG" to="8tt8:7_8aRkgDGPo" resolve="Var" />
<node concept="EnEH3" id="7_8aRkgG6CE" role="1MhHOB">
<ref role="EomxK" to="tpck:h0TrG11" resolve="name" />
<node concept="QB0g5" id="7_8aRkgG6CG" role="QCWH9">
<node concept="3clFbS" id="7_8aRkgG6CH" role="2VODD2">
<node concept="3clFbF" id="7_8aRkgG6JP" role="3cqZAp">
<node concept="2OqwBi" id="hDMFLSy" role="3clFbG">
<node concept="1Wqviy" id="hDMFLSz" role="2Oq$k0" />
<node concept="liA8E" id="hDMFLS$" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~String.matches(java.lang.String):boolean" resolve="matches" />
<node concept="Xl_RD" id="hDMFLS_" role="37wK5m">
<property role="Xl_RC" value="[a-zA-Z$[_]][a-zA-Z0-9$[_]]*" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</model>

View File

@ -0,0 +1,961 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:a4cbccba-ea60-4d22-9e76-4b461414bf5b(sample.fooblin.editor)">
<persistence version="9" />
<languages>
<use id="18bc6592-03a6-4e29-a83a-7ff23bde13ba" name="jetbrains.mps.lang.editor" version="4" />
<devkit ref="2677cb18-f558-4e33-bc38-a5139cee06dc(jetbrains.mps.devkit.language-design)" />
</languages>
<imports>
<import index="c17a" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.language(MPS.OpenAPI/)" />
<import index="mhbf" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)" />
<import index="8tt8" ref="r:e74c1bfc-387b-4b4b-abee-2eb77ee510ec(sample.fooblin.structure)" />
<import index="18ew" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.util(MPS.Core/)" />
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
<import index="tpco" ref="r:00000000-0000-4000-0000-011c89590284(jetbrains.mps.lang.core.editor)" implicit="true" />
<import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
</imports>
<registry>
<language id="18bc6592-03a6-4e29-a83a-7ff23bde13ba" name="jetbrains.mps.lang.editor">
<concept id="2000375450116454183" name="jetbrains.mps.lang.editor.structure.ISubstituteMenu" flags="ng" index="22mbnS">
<child id="414384289274416996" name="parts" index="3ft7WO" />
</concept>
<concept id="1071666914219" name="jetbrains.mps.lang.editor.structure.ConceptEditorDeclaration" flags="ig" index="24kQdi" />
<concept id="1597643335227097138" name="jetbrains.mps.lang.editor.structure.QueryFunctionParameter_TransformationMenu_node" flags="ng" index="7Obwk" />
<concept id="1140524381322" name="jetbrains.mps.lang.editor.structure.CellModel_ListWithRole" flags="ng" index="2czfm3">
<property id="1140524450557" name="separatorText" index="2czwfO" />
<child id="1140524464360" name="cellLayout" index="2czzBx" />
<child id="1233141163694" name="separatorStyle" index="sWeuL" />
</concept>
<concept id="6089045305654894366" name="jetbrains.mps.lang.editor.structure.SubstituteMenuReference_Default" flags="ng" index="2kknPJ" />
<concept id="1237303669825" name="jetbrains.mps.lang.editor.structure.CellLayout_Indent" flags="nn" index="l2Vlx" />
<concept id="1237308012275" name="jetbrains.mps.lang.editor.structure.IndentLayoutNewLineStyleClassItem" flags="ln" index="ljvvj" />
<concept id="784421273959492578" name="jetbrains.mps.lang.editor.structure.TransformationMenuPart_IncludeMenu" flags="ng" index="mvV$s">
<child id="6718020819487784677" name="menuReference" index="A14EM" />
</concept>
<concept id="1142886221719" name="jetbrains.mps.lang.editor.structure.QueryFunction_NodeCondition" flags="in" index="pkWqt" />
<concept id="1142886811589" name="jetbrains.mps.lang.editor.structure.ConceptFunctionParameter_node" flags="nn" index="pncrf" />
<concept id="1233148810477" name="jetbrains.mps.lang.editor.structure.InlineStyleDeclaration" flags="ng" index="tppnM" />
<concept id="1177327274449" name="jetbrains.mps.lang.editor.structure.QueryFunctionParameter_pattern" flags="nn" index="ub8z3" />
<concept id="1177327570013" name="jetbrains.mps.lang.editor.structure.QueryFunction_SubstituteMenu_Substitute" flags="in" index="ucgPf" />
<concept id="8478191136883534237" name="jetbrains.mps.lang.editor.structure.IExtensibleSubstituteMenuPart" flags="ng" index="upBLQ">
<child id="8478191136883534238" name="features" index="upBLP" />
</concept>
<concept id="1080736578640" name="jetbrains.mps.lang.editor.structure.BaseEditorComponent" flags="ig" index="2wURMF">
<child id="1080736633877" name="cellModel" index="2wV5jI" />
</concept>
<concept id="6718020819487620876" name="jetbrains.mps.lang.editor.structure.TransformationMenuReference_Default" flags="ng" index="A1WHr" />
<concept id="3547227755871693971" name="jetbrains.mps.lang.editor.structure.PredefinedSelector" flags="ng" index="2B6iha">
<property id="2162403111523065396" name="cellId" index="1lyBwo" />
</concept>
<concept id="3473224453637651916" name="jetbrains.mps.lang.editor.structure.TransformationLocation_SideTransform_PlaceInCellHolder" flags="ng" index="CtIbL">
<property id="3473224453637651917" name="placeInCell" index="CtIbK" />
</concept>
<concept id="1638911550608571617" name="jetbrains.mps.lang.editor.structure.TransformationMenu_Default" flags="ng" index="IW6AY" />
<concept id="1638911550608610798" name="jetbrains.mps.lang.editor.structure.QueryFunction_TransformationMenu_Execute" flags="ig" index="IWg2L" />
<concept id="1638911550608610278" name="jetbrains.mps.lang.editor.structure.TransformationMenuPart_Action" flags="ng" index="IWgqT">
<child id="1638911550608610281" name="executeFunction" index="IWgqQ" />
<child id="5692353713941573325" name="textFunction" index="1hCUd6" />
</concept>
<concept id="1078939183254" name="jetbrains.mps.lang.editor.structure.CellModel_Component" flags="sg" stub="3162947552742194261" index="PMmxH">
<reference id="1078939183255" name="editorComponent" index="PMmxG" />
</concept>
<concept id="615427434521884870" name="jetbrains.mps.lang.editor.structure.SubstituteMenuPart_Subconcepts" flags="ng" index="2VfDsV" />
<concept id="1186414536763" name="jetbrains.mps.lang.editor.structure.BooleanStyleSheetItem" flags="ln" index="VOi$J">
<property id="1186414551515" name="flag" index="VOm3f" />
</concept>
<concept id="1630016958697718209" name="jetbrains.mps.lang.editor.structure.IMenuReference_Default" flags="ng" index="2Z_bC8">
<reference id="1630016958698373342" name="concept" index="2ZyFGn" />
</concept>
<concept id="1630016958697344083" name="jetbrains.mps.lang.editor.structure.IMenu_Concept" flags="ng" index="2ZABuq">
<reference id="6591946374543067572" name="conceptDeclaration" index="aqKnT" />
</concept>
<concept id="8998492695583109601" name="jetbrains.mps.lang.editor.structure.QueryFunction_SubstituteMenu_CanSubstitute" flags="ig" index="16Na2f" />
<concept id="8998492695583129991" name="jetbrains.mps.lang.editor.structure.SubstituteFeature_CanSubstitute" flags="ng" index="16NL3D">
<child id="8998492695583129992" name="query" index="16NL3A" />
</concept>
<concept id="1896914160037421068" name="jetbrains.mps.lang.editor.structure.TransformationMenuPart_WrapSubstituteMenu" flags="ng" index="3c8P5G">
<child id="1896914160037421069" name="menuReference" index="3c8P5H" />
<child id="1896914160037423677" name="handler" index="3c8PHt" />
</concept>
<concept id="1896914160037423680" name="jetbrains.mps.lang.editor.structure.QueryFunction_TransformationMenu_WrapperHandler" flags="ig" index="3c8PGw" />
<concept id="1896914160037437306" name="jetbrains.mps.lang.editor.structure.QueryFunctionParameter_TransformationMenu_CreatedNode" flags="ng" index="3c8USq" />
<concept id="2896773699153795590" name="jetbrains.mps.lang.editor.structure.TransformationLocation_SideTransform" flags="ng" index="3cWJ9i">
<child id="3473224453637651919" name="placeInCell" index="CtIbM" />
</concept>
<concept id="7342352913006985483" name="jetbrains.mps.lang.editor.structure.SubstituteMenuPart_Action" flags="ng" index="3eGOop">
<child id="8612453216082699922" name="substituteHandler" index="3aKz83" />
</concept>
<concept id="5692353713941573329" name="jetbrains.mps.lang.editor.structure.QueryFunction_TransformationMenu_ActionLabelText" flags="ig" index="1hCUdq" />
<concept id="3308396621974580100" name="jetbrains.mps.lang.editor.structure.SubstituteMenu_Default" flags="ng" index="3p36aQ" />
<concept id="1139848536355" name="jetbrains.mps.lang.editor.structure.CellModel_WithRole" flags="ng" index="1$h60E">
<reference id="1140103550593" name="relationDeclaration" index="1NtTu8" />
</concept>
<concept id="1073389214265" name="jetbrains.mps.lang.editor.structure.EditorCellModel" flags="ng" index="3EYTF0">
<child id="1142887637401" name="renderingCondition" index="pqm2j" />
</concept>
<concept id="1073389446423" name="jetbrains.mps.lang.editor.structure.CellModel_Collection" flags="sn" stub="3013115976261988961" index="3EZMnI">
<child id="1106270802874" name="cellLayout" index="2iSdaV" />
<child id="1073389446424" name="childCellModel" index="3EZMnx" />
</concept>
<concept id="1073389577006" name="jetbrains.mps.lang.editor.structure.CellModel_Constant" flags="sn" stub="3610246225209162225" index="3F0ifn">
<property id="1073389577007" name="text" index="3F0ifm" />
</concept>
<concept id="1073389658414" name="jetbrains.mps.lang.editor.structure.CellModel_Property" flags="sg" stub="730538219796134133" index="3F0A7n" />
<concept id="1219418625346" name="jetbrains.mps.lang.editor.structure.IStyleContainer" flags="ng" index="3F0Thp">
<child id="1219418656006" name="styleItem" index="3F10Kt" />
</concept>
<concept id="1073389882823" name="jetbrains.mps.lang.editor.structure.CellModel_RefNode" flags="sg" stub="730538219795960754" index="3F1sOY" />
<concept id="1073390211982" name="jetbrains.mps.lang.editor.structure.CellModel_RefNodeList" flags="sg" stub="2794558372793454595" index="3F2HdR" />
<concept id="5624877018228267058" name="jetbrains.mps.lang.editor.structure.ITransformationMenu" flags="ng" index="3INCJE">
<child id="1638911550608572412" name="sections" index="IW6Ez" />
</concept>
<concept id="6684862045052272180" name="jetbrains.mps.lang.editor.structure.QueryFunctionParameter_SubstituteMenu_NodeToWrap" flags="ng" index="3N4pyC" />
<concept id="6684862045052059649" name="jetbrains.mps.lang.editor.structure.QueryFunction_SubstituteMenu_WrapperHandler" flags="ig" index="3N5aqt" />
<concept id="6684862045052059291" name="jetbrains.mps.lang.editor.structure.SubstituteMenuPart_Wrapper" flags="ng" index="3N5dw7">
<child id="6089045305655104958" name="reference" index="2klrvf" />
<child id="6684862045053873740" name="handler" index="3Na0zg" />
</concept>
<concept id="3647146066980922272" name="jetbrains.mps.lang.editor.structure.SelectInEditorOperation" flags="nn" index="1OKiuA">
<child id="1948540814633499358" name="editorContext" index="lBI5i" />
<child id="1948540814635895774" name="cellSelector" index="lGT1i" />
</concept>
<concept id="1161622981231" name="jetbrains.mps.lang.editor.structure.ConceptFunctionParameter_editorContext" flags="nn" index="1Q80Hx" />
<concept id="7980428675268276156" name="jetbrains.mps.lang.editor.structure.TransformationMenuSection" flags="ng" index="1Qtc8_">
<child id="7980428675268276157" name="locations" index="1Qtc8$" />
<child id="7980428675268276159" name="parts" index="1Qtc8A" />
</concept>
<concept id="1166049232041" name="jetbrains.mps.lang.editor.structure.AbstractComponent" flags="ng" index="1XWOmA">
<reference id="1166049300910" name="conceptDeclaration" index="1XX52x" />
</concept>
</language>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
<concept id="1215693861676" name="jetbrains.mps.baseLanguage.structure.BaseAssignmentExpression" flags="nn" index="d038R">
<child id="1068498886297" name="rValue" index="37vLTx" />
<child id="1068498886295" name="lValue" index="37vLTJ" />
</concept>
<concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
<concept id="1197027756228" name="jetbrains.mps.baseLanguage.structure.DotExpression" flags="nn" index="2OqwBi">
<child id="1197027771414" name="operand" index="2Oq$k0" />
<child id="1197027833540" name="operation" index="2OqNvi" />
</concept>
<concept id="1164879751025" name="jetbrains.mps.baseLanguage.structure.TryCatchStatement" flags="nn" index="SfApY">
<child id="1164879758292" name="body" index="SfCbr" />
<child id="1164903496223" name="catchClause" index="TEbGg" />
</concept>
<concept id="1145552977093" name="jetbrains.mps.baseLanguage.structure.GenericNewExpression" flags="nn" index="2ShNRf">
<child id="1145553007750" name="creator" index="2ShVmc" />
</concept>
<concept id="1164903280175" name="jetbrains.mps.baseLanguage.structure.CatchClause" flags="nn" index="TDmWw">
<child id="1164903359218" name="catchBody" index="TDEfX" />
<child id="1164903359217" name="throwable" index="TDEfY" />
</concept>
<concept id="1137021947720" name="jetbrains.mps.baseLanguage.structure.ConceptFunction" flags="in" index="2VMwT0">
<child id="1137022507850" name="body" index="2VODD2" />
</concept>
<concept id="1070475926800" name="jetbrains.mps.baseLanguage.structure.StringLiteral" flags="nn" index="Xl_RD">
<property id="1070475926801" name="value" index="Xl_RC" />
</concept>
<concept id="1081236700937" name="jetbrains.mps.baseLanguage.structure.StaticMethodCall" flags="nn" index="2YIFZM">
<reference id="1144433194310" name="classConcept" index="1Pybhc" />
</concept>
<concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
<child id="1068431790190" name="initializer" index="33vP2m" />
</concept>
<concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
<reference id="1068581517664" name="variableDeclaration" index="3cqZAo" />
</concept>
<concept id="1068498886294" name="jetbrains.mps.baseLanguage.structure.AssignmentExpression" flags="nn" index="37vLTI" />
<concept id="4972933694980447171" name="jetbrains.mps.baseLanguage.structure.BaseVariableDeclaration" flags="ng" index="19Szcq">
<child id="5680397130376446158" name="type" index="1tU5fm" />
</concept>
<concept id="1068580123152" name="jetbrains.mps.baseLanguage.structure.EqualsExpression" flags="nn" index="3clFbC" />
<concept id="1068580123155" name="jetbrains.mps.baseLanguage.structure.ExpressionStatement" flags="nn" index="3clFbF">
<child id="1068580123156" name="expression" index="3clFbG" />
</concept>
<concept id="1068580123157" name="jetbrains.mps.baseLanguage.structure.Statement" flags="nn" index="3clFbH" />
<concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
<child id="1068581517665" name="statement" index="3cqZAp" />
</concept>
<concept id="1068580123137" name="jetbrains.mps.baseLanguage.structure.BooleanConstant" flags="nn" index="3clFbT">
<property id="1068580123138" name="value" index="3clFbU" />
</concept>
<concept id="1068580320020" name="jetbrains.mps.baseLanguage.structure.IntegerConstant" flags="nn" index="3cmrfG">
<property id="1068580320021" name="value" index="3cmrfH" />
</concept>
<concept id="1068581242878" name="jetbrains.mps.baseLanguage.structure.ReturnStatement" flags="nn" index="3cpWs6">
<child id="1068581517676" name="expression" index="3cqZAk" />
</concept>
<concept id="1068581242864" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" flags="nn" index="3cpWs8">
<child id="1068581242865" name="localVariableDeclaration" index="3cpWs9" />
</concept>
<concept id="1068581242863" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" flags="nr" index="3cpWsn" />
<concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
<reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
<child id="1068499141038" name="actualArgument" index="37wK5m" />
</concept>
<concept id="1107535904670" name="jetbrains.mps.baseLanguage.structure.ClassifierType" flags="in" index="3uibUv">
<reference id="1107535924139" name="classifier" index="3uigEE" />
</concept>
<concept id="1081773326031" name="jetbrains.mps.baseLanguage.structure.BinaryOperation" flags="nn" index="3uHJSO">
<child id="1081773367579" name="rightExpression" index="3uHU7w" />
<child id="1081773367580" name="leftExpression" index="3uHU7B" />
</concept>
</language>
<language id="aee9cad2-acd4-4608-aef2-0004f6a1cdbd" name="jetbrains.mps.lang.actions">
<concept id="767145758118872828" name="jetbrains.mps.lang.actions.structure.NF_Node_ReplaceWithNewOperation" flags="nn" index="2DeJnW" />
<concept id="767145758118872830" name="jetbrains.mps.lang.actions.structure.NF_Link_SetNewChildOperation" flags="nn" index="2DeJnY" />
</language>
<language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
<concept id="5820409030208923287" name="jetbrains.mps.lang.smodel.structure.Node_GetContainingLinkOperation" flags="nn" index="25OxAV" />
<concept id="1226359078165" name="jetbrains.mps.lang.smodel.structure.LinkRefExpression" flags="nn" index="28GBK8">
<reference id="1226359078166" name="conceptDeclaration" index="28GBKb" />
<reference id="1226359192215" name="linkDeclaration" index="28H3Ia" />
</concept>
<concept id="1140725362528" name="jetbrains.mps.lang.smodel.structure.Link_SetTargetOperation" flags="nn" index="2oxUTD">
<child id="1140725362529" name="linkTarget" index="2oxUTC" />
</concept>
<concept id="1138661924179" name="jetbrains.mps.lang.smodel.structure.Property_SetOperation" flags="nn" index="tyxLq">
<child id="1138662048170" name="value" index="tz02z" />
</concept>
<concept id="1138757581985" name="jetbrains.mps.lang.smodel.structure.Link_SetNewChildOperation" flags="nn" index="zfrQC">
<reference id="1139880128956" name="concept" index="1A9B2P" />
</concept>
<concept id="1180636770613" name="jetbrains.mps.lang.smodel.structure.SNodeCreator" flags="nn" index="3zrR0B">
<child id="1180636770616" name="createdType" index="3zrR0E" />
</concept>
<concept id="1139867745658" name="jetbrains.mps.lang.smodel.structure.Node_ReplaceWithNewOperation" flags="nn" index="1_qnLN">
<reference id="1139867957129" name="concept" index="1_rbq0" />
</concept>
<concept id="1138055754698" name="jetbrains.mps.lang.smodel.structure.SNodeType" flags="in" index="3Tqbb2">
<reference id="1138405853777" name="concept" index="ehGHo" />
</concept>
<concept id="1138056022639" name="jetbrains.mps.lang.smodel.structure.SPropertyAccess" flags="nn" index="3TrcHB">
<reference id="1138056395725" name="property" index="3TsBF5" />
</concept>
<concept id="1138056143562" name="jetbrains.mps.lang.smodel.structure.SLinkAccess" flags="nn" index="3TrEf2">
<reference id="1138056516764" name="link" index="3Tt5mk" />
</concept>
</language>
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
<concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
<property id="1193676396447" name="virtualPackage" index="3GE5qa" />
</concept>
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
<property id="1169194664001" name="name" index="TrG5h" />
</concept>
</language>
</registry>
<node concept="24kQdi" id="7_8aRkgDGQH">
<ref role="1XX52x" to="8tt8:7_8aRkgDGQC" resolve="Doc" />
<node concept="3EZMnI" id="7_8aRkgDGQJ" role="2wV5jI">
<node concept="3F0A7n" id="7_8aRkgDGQU" role="3EZMnx">
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
<node concept="ljvvj" id="7_8aRkgDGRh" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F0ifn" id="7_8aRkgDGQX" role="3EZMnx">
<property role="3F0ifm" value="--------" />
<node concept="ljvvj" id="7_8aRkgDGRj" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F2HdR" id="7_8aRkgDGRl" role="3EZMnx">
<property role="2czwfO" value=" " />
<ref role="1NtTu8" to="8tt8:7_8aRkgDGQF" resolve="clause" />
<node concept="l2Vlx" id="7_8aRkgDGRn" role="2czzBx" />
<node concept="tppnM" id="7_8aRkgDGRu" role="sWeuL">
<node concept="ljvvj" id="7_8aRkgDHAc" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
</node>
<node concept="l2Vlx" id="7_8aRkgDGRe" role="2iSdaV" />
</node>
</node>
<node concept="24kQdi" id="7_8aRkgDHAk">
<property role="3GE5qa" value="clause" />
<ref role="1XX52x" to="8tt8:7_8aRkgDHAe" resolve="LetClause" />
<node concept="3EZMnI" id="7_8aRkgDHAm" role="2wV5jI">
<node concept="3F0ifn" id="7_8aRkgHafS" role="3EZMnx">
<property role="3F0ifm" value="&gt;" />
</node>
<node concept="PMmxH" id="7_8aRkgDHAw" role="3EZMnx">
<ref role="PMmxG" to="tpco:2wZex4PafBj" resolve="alias" />
</node>
<node concept="3F1sOY" id="7_8aRkgDHAR" role="3EZMnx">
<ref role="1NtTu8" to="8tt8:7_8aRkgDHAf" resolve="var" />
</node>
<node concept="3F0ifn" id="7_8aRkgDHA_" role="3EZMnx">
<property role="3F0ifm" value="=" />
</node>
<node concept="3F1sOY" id="7_8aRkgDHAH" role="3EZMnx">
<ref role="1NtTu8" to="8tt8:7_8aRkgDHAh" resolve="expr" />
</node>
<node concept="l2Vlx" id="7_8aRkgDHAp" role="2iSdaV" />
</node>
</node>
<node concept="24kQdi" id="7_8aRkgDHAX">
<property role="3GE5qa" value="expr" />
<ref role="1XX52x" to="8tt8:7_8aRkgDGPo" resolve="Var" />
<node concept="3EZMnI" id="7_8aRkgDHAZ" role="2wV5jI">
<node concept="3F0A7n" id="7_8aRkgDHB9" role="3EZMnx">
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
</node>
<node concept="l2Vlx" id="7_8aRkgDHB2" role="2iSdaV" />
</node>
</node>
<node concept="24kQdi" id="7_8aRkgDHBf">
<property role="3GE5qa" value="expr.const" />
<ref role="1XX52x" to="8tt8:7_8aRkgDHBc" resolve="StringConst" />
<node concept="3EZMnI" id="7_8aRkgDHBh" role="2wV5jI">
<node concept="3F0ifn" id="7_8aRkgDHBo" role="3EZMnx">
<property role="3F0ifm" value="'" />
</node>
<node concept="3F0A7n" id="7_8aRkgDHBF" role="3EZMnx">
<ref role="1NtTu8" to="8tt8:7_8aRkgDHBd" resolve="value" />
</node>
<node concept="3F0ifn" id="7_8aRkgDHBu" role="3EZMnx">
<property role="3F0ifm" value="'" />
</node>
<node concept="l2Vlx" id="7_8aRkgDHBk" role="2iSdaV" />
</node>
</node>
<node concept="24kQdi" id="7_8aRkgDHCe">
<property role="3GE5qa" value="expr.const" />
<ref role="1XX52x" to="8tt8:7_8aRkgDHBK" resolve="NumConst" />
<node concept="3EZMnI" id="7_8aRkgDHCg" role="2wV5jI">
<node concept="3F0A7n" id="7_8aRkgDHCn" role="3EZMnx">
<ref role="1NtTu8" to="8tt8:7_8aRkgDHBL" resolve="value" />
</node>
<node concept="l2Vlx" id="7_8aRkgDHCj" role="2iSdaV" />
</node>
</node>
<node concept="24kQdi" id="7_8aRkgE07J">
<property role="3GE5qa" value="expr.fun" />
<ref role="1XX52x" to="8tt8:7_8aRkgDGQf" resolve="Abs" />
<node concept="3EZMnI" id="7_8aRkgE07L" role="2wV5jI">
<node concept="3F0ifn" id="7_8aRkgE07S" role="3EZMnx">
<property role="3F0ifm" value="(" />
</node>
<node concept="3F1sOY" id="7_8aRkgF1Cc" role="3EZMnx">
<ref role="1NtTu8" to="8tt8:7_8aRkgDGQg" resolve="bind" />
</node>
<node concept="3F0ifn" id="7_8aRkgE086" role="3EZMnx">
<property role="3F0ifm" value="-&gt;" />
</node>
<node concept="3F1sOY" id="7_8aRkgE08J" role="3EZMnx">
<ref role="1NtTu8" to="8tt8:7_8aRkgDGQl" resolve="expr" />
</node>
<node concept="3F0ifn" id="7_8aRkgE07Y" role="3EZMnx">
<property role="3F0ifm" value=")" />
</node>
<node concept="l2Vlx" id="7_8aRkgE07O" role="2iSdaV" />
</node>
</node>
<node concept="24kQdi" id="7_8aRkgE08o">
<property role="3GE5qa" value="expr.fun" />
<ref role="1XX52x" to="8tt8:7_8aRkgDGQi" resolve="VarType" />
<node concept="3EZMnI" id="7_8aRkgE08q" role="2wV5jI">
<node concept="3F1sOY" id="7_8aRkgE08x" role="3EZMnx">
<ref role="1NtTu8" to="8tt8:7_8aRkgDGQj" resolve="var" />
</node>
<node concept="l2Vlx" id="7_8aRkgE08t" role="2iSdaV" />
</node>
</node>
<node concept="24kQdi" id="7_8aRkgE08R">
<property role="3GE5qa" value="expr.fun" />
<ref role="1XX52x" to="8tt8:7_8aRkgDGPK" resolve="App" />
<node concept="3EZMnI" id="7_8aRkgE08T" role="2wV5jI">
<node concept="3F0ifn" id="7_8aRkgE2tK" role="3EZMnx">
<property role="3F0ifm" value="(" />
<node concept="pkWqt" id="7_8aRkgE2u0" role="pqm2j">
<node concept="3clFbS" id="7_8aRkgE2u1" role="2VODD2">
<node concept="3clFbF" id="7_8aRkgETAn" role="3cqZAp">
<node concept="3clFbC" id="7_8aRkgEUsG" role="3clFbG">
<node concept="2OqwBi" id="7_8aRkgEVfA" role="3uHU7w">
<node concept="pncrf" id="7_8aRkgEUTo" role="2Oq$k0" />
<node concept="25OxAV" id="7_8aRkgEW19" role="2OqNvi" />
</node>
<node concept="28GBK8" id="7_8aRkgETAl" role="3uHU7B">
<ref role="28GBKb" to="8tt8:7_8aRkgDGPK" resolve="App" />
<ref role="28H3Ia" to="8tt8:7_8aRkgDGPL" resolve="fun" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3F1sOY" id="7_8aRkgE090" role="3EZMnx">
<ref role="1NtTu8" to="8tt8:7_8aRkgDGPL" resolve="fun" />
</node>
<node concept="3F1sOY" id="7_8aRkgE096" role="3EZMnx">
<ref role="1NtTu8" to="8tt8:7_8aRkgDGPX" resolve="arg" />
</node>
<node concept="3F0ifn" id="7_8aRkgE2tU" role="3EZMnx">
<property role="3F0ifm" value=")" />
<node concept="pkWqt" id="7_8aRkgEXAl" role="pqm2j">
<node concept="3clFbS" id="7_8aRkgEXAm" role="2VODD2">
<node concept="3clFbF" id="7_8aRkgEXAs" role="3cqZAp">
<node concept="3clFbC" id="7_8aRkgEXAt" role="3clFbG">
<node concept="2OqwBi" id="7_8aRkgEXAu" role="3uHU7w">
<node concept="pncrf" id="7_8aRkgEXAv" role="2Oq$k0" />
<node concept="25OxAV" id="7_8aRkgEXAw" role="2OqNvi" />
</node>
<node concept="28GBK8" id="7_8aRkgEXAx" role="3uHU7B">
<ref role="28GBKb" to="8tt8:7_8aRkgDGPK" resolve="App" />
<ref role="28H3Ia" to="8tt8:7_8aRkgDGPL" resolve="fun" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="l2Vlx" id="7_8aRkgE08W" role="2iSdaV" />
</node>
</node>
<node concept="24kQdi" id="7_8aRkgEZ_Z">
<property role="3GE5qa" value="clause" />
<ref role="1XX52x" to="8tt8:7_8aRkgEZ_W" resolve="ExprClause" />
<node concept="3EZMnI" id="7_8aRkgEZA1" role="2wV5jI">
<node concept="3F0ifn" id="7_8aRkgH6Ew" role="3EZMnx">
<property role="3F0ifm" value="&gt;" />
</node>
<node concept="3F1sOY" id="7_8aRkgEZA8" role="3EZMnx">
<ref role="1NtTu8" to="8tt8:7_8aRkgEZ_X" resolve="expr" />
</node>
<node concept="l2Vlx" id="7_8aRkgEZA4" role="2iSdaV" />
</node>
</node>
<node concept="3p36aQ" id="7_8aRkgF2KR">
<property role="3GE5qa" value="expr" />
<ref role="aqKnT" to="8tt8:7_8aRkgDGPJ" resolve="Expr" />
<node concept="2VfDsV" id="7_8aRkgF5zg" role="3ft7WO" />
</node>
<node concept="3p36aQ" id="7_8aRkgF5zH">
<property role="3GE5qa" value="expr.const" />
<ref role="aqKnT" to="8tt8:7_8aRkgDHBc" resolve="StringConst" />
<node concept="3eGOop" id="7_8aRkgF72g" role="3ft7WO">
<node concept="ucgPf" id="7_8aRkgF72h" role="3aKz83">
<node concept="3clFbS" id="7_8aRkgF72i" role="2VODD2">
<node concept="3cpWs8" id="7_8aRkgFd8M" role="3cqZAp">
<node concept="3cpWsn" id="7_8aRkgFd8N" role="3cpWs9">
<property role="TrG5h" value="str" />
<node concept="3Tqbb2" id="7_8aRkgFd8K" role="1tU5fm">
<ref role="ehGHo" to="8tt8:7_8aRkgDHBc" resolve="StringConst" />
</node>
<node concept="2ShNRf" id="7_8aRkgFd8O" role="33vP2m">
<node concept="3zrR0B" id="7_8aRkgFd8P" role="2ShVmc">
<node concept="3Tqbb2" id="7_8aRkgFd8Q" role="3zrR0E">
<ref role="ehGHo" to="8tt8:7_8aRkgDHBc" resolve="StringConst" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7_8aRkgF9_V" role="3cqZAp">
<node concept="2OqwBi" id="7_8aRkgFepi" role="3clFbG">
<node concept="2OqwBi" id="7_8aRkgFdly" role="2Oq$k0">
<node concept="37vLTw" id="7_8aRkgFd8R" role="2Oq$k0">
<ref role="3cqZAo" node="7_8aRkgFd8N" resolve="str" />
</node>
<node concept="3TrcHB" id="7_8aRkgFdMb" role="2OqNvi">
<ref role="3TsBF5" to="8tt8:7_8aRkgDHBd" resolve="value" />
</node>
</node>
<node concept="tyxLq" id="7_8aRkgFePf" role="2OqNvi">
<node concept="2OqwBi" id="7_8aRkgFg14" role="tz02z">
<node concept="ub8z3" id="7_8aRkgFfGB" role="2Oq$k0" />
<node concept="liA8E" id="7_8aRkgFgP3" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~String.substring(int):java.lang.String" resolve="substring" />
<node concept="3cmrfG" id="7_8aRkgFgY0" role="37wK5m">
<property role="3cmrfH" value="1" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7_8aRkgFh8n" role="3cqZAp">
<node concept="37vLTw" id="7_8aRkgFh8l" role="3clFbG">
<ref role="3cqZAo" node="7_8aRkgFd8N" resolve="str" />
</node>
</node>
</node>
</node>
<node concept="16NL3D" id="7_8aRkgF76n" role="upBLP">
<node concept="16Na2f" id="7_8aRkgF76o" role="16NL3A">
<node concept="3clFbS" id="7_8aRkgF76p" role="2VODD2">
<node concept="3clFbF" id="7_8aRkgF7pY" role="3cqZAp">
<node concept="2OqwBi" id="7_8aRkgF89k" role="3clFbG">
<node concept="2YIFZM" id="7_8aRkgF7xm" role="2Oq$k0">
<ref role="37wK5l" to="wyt6:~String.valueOf(java.lang.Object):java.lang.String" resolve="valueOf" />
<ref role="1Pybhc" to="wyt6:~String" resolve="String" />
<node concept="ub8z3" id="7_8aRkgF7GJ" role="37wK5m" />
</node>
<node concept="liA8E" id="7_8aRkgF9h1" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~String.startsWith(java.lang.String):boolean" resolve="startsWith" />
<node concept="Xl_RD" id="7_8aRkgF9h7" role="37wK5m">
<property role="Xl_RC" value="'" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="IW6AY" id="7_8aRkgF6Dj">
<property role="3GE5qa" value="expr" />
<ref role="aqKnT" to="8tt8:7_8aRkgDGPJ" resolve="Expr" />
<node concept="1Qtc8_" id="7_8aRkgF6Dk" role="IW6Ez">
<node concept="3cWJ9i" id="7_8aRkgF6Do" role="1Qtc8$">
<node concept="CtIbL" id="7_8aRkgF6Dq" role="CtIbM">
<property role="CtIbK" value="RIGHT" />
</node>
</node>
<node concept="IWgqT" id="7_8aRkgFP5Q" role="1Qtc8A">
<node concept="1hCUdq" id="7_8aRkgFP5R" role="1hCUd6">
<node concept="3clFbS" id="7_8aRkgFP5S" role="2VODD2">
<node concept="3clFbF" id="7_8aRkgFPeu" role="3cqZAp">
<node concept="Xl_RD" id="7_8aRkgFPet" role="3clFbG">
<property role="Xl_RC" value="application" />
</node>
</node>
</node>
</node>
<node concept="IWg2L" id="7_8aRkgFP5T" role="IWgqQ">
<node concept="3clFbS" id="7_8aRkgFP5U" role="2VODD2">
<node concept="3cpWs8" id="7_8aRkgFQft" role="3cqZAp">
<node concept="3cpWsn" id="7_8aRkgFQfu" role="3cpWs9">
<property role="TrG5h" value="app" />
<node concept="3Tqbb2" id="7_8aRkgFQfr" role="1tU5fm">
<ref role="ehGHo" to="8tt8:7_8aRkgDGPK" resolve="App" />
</node>
<node concept="2OqwBi" id="7_8aRkgFQfv" role="33vP2m">
<node concept="7Obwk" id="7_8aRkgFQfw" role="2Oq$k0" />
<node concept="2DeJnW" id="7_8aRkgGPqR" role="2OqNvi">
<ref role="1_rbq0" to="8tt8:7_8aRkgDGPK" resolve="App" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7_8aRkgFPCl" role="3cqZAp">
<node concept="2OqwBi" id="7_8aRkgFQQn" role="3clFbG">
<node concept="2OqwBi" id="7_8aRkgFQoa" role="2Oq$k0">
<node concept="37vLTw" id="7_8aRkgFQfy" role="2Oq$k0">
<ref role="3cqZAo" node="7_8aRkgFQfu" resolve="app" />
</node>
<node concept="3TrEf2" id="7_8aRkgFQyW" role="2OqNvi">
<ref role="3Tt5mk" to="8tt8:7_8aRkgDGPL" resolve="fun" />
</node>
</node>
<node concept="2oxUTD" id="7_8aRkgFRdw" role="2OqNvi">
<node concept="7Obwk" id="7_8aRkgFRe8" role="2oxUTC" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3c8P5G" id="7_8aRkgH0zp" role="1Qtc8A">
<node concept="2kknPJ" id="7_8aRkgH0AM" role="3c8P5H">
<ref role="2ZyFGn" to="8tt8:7_8aRkgDGPo" resolve="Var" />
</node>
<node concept="3c8PGw" id="7_8aRkgH0zs" role="3c8PHt">
<node concept="3clFbS" id="7_8aRkgH0zu" role="2VODD2">
<node concept="3cpWs8" id="7_8aRkgHxhN" role="3cqZAp">
<node concept="3cpWsn" id="7_8aRkgHxhO" role="3cpWs9">
<property role="TrG5h" value="app" />
<node concept="3Tqbb2" id="7_8aRkgHxhP" role="1tU5fm">
<ref role="ehGHo" to="8tt8:7_8aRkgDGPK" resolve="App" />
</node>
<node concept="2OqwBi" id="7_8aRkgHxhQ" role="33vP2m">
<node concept="7Obwk" id="7_8aRkgHxhR" role="2Oq$k0" />
<node concept="2DeJnW" id="7_8aRkgHxhS" role="2OqNvi">
<ref role="1_rbq0" to="8tt8:7_8aRkgDGPK" resolve="App" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7_8aRkgHxhT" role="3cqZAp">
<node concept="2OqwBi" id="7_8aRkgHxhU" role="3clFbG">
<node concept="2OqwBi" id="7_8aRkgHxhV" role="2Oq$k0">
<node concept="37vLTw" id="7_8aRkgHxhW" role="2Oq$k0">
<ref role="3cqZAo" node="7_8aRkgHxhO" resolve="app" />
</node>
<node concept="3TrEf2" id="7_8aRkgHxhX" role="2OqNvi">
<ref role="3Tt5mk" to="8tt8:7_8aRkgDGPL" resolve="fun" />
</node>
</node>
<node concept="2oxUTD" id="7_8aRkgHxhY" role="2OqNvi">
<node concept="7Obwk" id="7_8aRkgHxhZ" role="2oxUTC" />
</node>
</node>
</node>
<node concept="3clFbF" id="7_8aRkgHxo0" role="3cqZAp">
<node concept="2OqwBi" id="7_8aRkgHycJ" role="3clFbG">
<node concept="2OqwBi" id="7_8aRkgHxxS" role="2Oq$k0">
<node concept="37vLTw" id="7_8aRkgHxnY" role="2Oq$k0">
<ref role="3cqZAo" node="7_8aRkgHxhO" resolve="app" />
</node>
<node concept="3TrEf2" id="7_8aRkgHxTk" role="2OqNvi">
<ref role="3Tt5mk" to="8tt8:7_8aRkgDGPX" resolve="arg" />
</node>
</node>
<node concept="2oxUTD" id="7_8aRkgHyzQ" role="2OqNvi">
<node concept="3c8USq" id="7_8aRkgHyA6" role="2oxUTC" />
</node>
</node>
</node>
<node concept="3clFbF" id="7_8aRkgHyKD" role="3cqZAp">
<node concept="2OqwBi" id="7_8aRkgHyZB" role="3clFbG">
<node concept="3c8USq" id="7_8aRkgHyKB" role="2Oq$k0" />
<node concept="1OKiuA" id="7_8aRkgHznQ" role="2OqNvi">
<node concept="1Q80Hx" id="7_8aRkgHzrr" role="lBI5i" />
<node concept="2B6iha" id="7_8aRkgHB0P" role="lGT1i">
<property role="1lyBwo" value="firstEditable" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3p36aQ" id="7_8aRkgFjlo">
<property role="3GE5qa" value="expr.const" />
<ref role="aqKnT" to="8tt8:7_8aRkgDHBK" resolve="NumConst" />
<node concept="3eGOop" id="7_8aRkgFjlr" role="3ft7WO">
<node concept="ucgPf" id="7_8aRkgFjlt" role="3aKz83">
<node concept="3clFbS" id="7_8aRkgFjlv" role="2VODD2">
<node concept="3cpWs8" id="7_8aRkgFmNC" role="3cqZAp">
<node concept="3cpWsn" id="7_8aRkgFmND" role="3cpWs9">
<property role="TrG5h" value="num" />
<node concept="3Tqbb2" id="7_8aRkgFmNA" role="1tU5fm">
<ref role="ehGHo" to="8tt8:7_8aRkgDHBK" resolve="NumConst" />
</node>
<node concept="2ShNRf" id="7_8aRkgFmNE" role="33vP2m">
<node concept="3zrR0B" id="7_8aRkgFmNF" role="2ShVmc">
<node concept="3Tqbb2" id="7_8aRkgFmNG" role="3zrR0E">
<ref role="ehGHo" to="8tt8:7_8aRkgDHBK" resolve="NumConst" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7_8aRkgFmtC" role="3cqZAp">
<node concept="37vLTI" id="7_8aRkgFpbs" role="3clFbG">
<node concept="2YIFZM" id="7_8aRkgFpLG" role="37vLTx">
<ref role="1Pybhc" to="wyt6:~Integer" resolve="Integer" />
<ref role="37wK5l" to="wyt6:~Integer.parseInt(java.lang.String):int" resolve="parseInt" />
<node concept="ub8z3" id="7_8aRkgFqqH" role="37wK5m" />
</node>
<node concept="2OqwBi" id="7_8aRkgFncQ" role="37vLTJ">
<node concept="37vLTw" id="7_8aRkgFmNH" role="2Oq$k0">
<ref role="3cqZAo" node="7_8aRkgFmND" resolve="num" />
</node>
<node concept="3TrcHB" id="7_8aRkgFnt4" role="2OqNvi">
<ref role="3TsBF5" to="8tt8:7_8aRkgDHBL" resolve="value" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7_8aRkgFsSg" role="3cqZAp">
<node concept="37vLTw" id="7_8aRkgFsSe" role="3clFbG">
<ref role="3cqZAo" node="7_8aRkgFmND" resolve="num" />
</node>
</node>
</node>
</node>
<node concept="16NL3D" id="7_8aRkgFjp_" role="upBLP">
<node concept="16Na2f" id="7_8aRkgFjpA" role="16NL3A">
<node concept="3clFbS" id="7_8aRkgFjpB" role="2VODD2">
<node concept="SfApY" id="7_8aRkgFj$L" role="3cqZAp">
<node concept="3clFbS" id="7_8aRkgFj$M" role="SfCbr">
<node concept="3clFbF" id="7_8aRkgFjXb" role="3cqZAp">
<node concept="2YIFZM" id="7_8aRkgFk72" role="3clFbG">
<ref role="37wK5l" to="wyt6:~Integer.parseInt(java.lang.String):int" resolve="parseInt" />
<ref role="1Pybhc" to="wyt6:~Integer" resolve="Integer" />
<node concept="2YIFZM" id="7_8aRkgFkHD" role="37wK5m">
<ref role="37wK5l" to="wyt6:~String.valueOf(java.lang.Object):java.lang.String" resolve="valueOf" />
<ref role="1Pybhc" to="wyt6:~String" resolve="String" />
<node concept="ub8z3" id="7_8aRkgFkQk" role="37wK5m" />
</node>
</node>
</node>
<node concept="3cpWs6" id="7_8aRkgFlkn" role="3cqZAp">
<node concept="3clFbT" id="7_8aRkgFlu4" role="3cqZAk">
<property role="3clFbU" value="true" />
</node>
</node>
<node concept="3clFbH" id="7_8aRkgFmjH" role="3cqZAp" />
</node>
<node concept="TDmWw" id="7_8aRkgFj$N" role="TEbGg">
<node concept="3cpWsn" id="7_8aRkgFj$O" role="TDEfY">
<property role="TrG5h" value="ignore" />
<node concept="3uibUv" id="7_8aRkgFlBH" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~RuntimeException" resolve="RuntimeException" />
</node>
</node>
<node concept="3clFbS" id="7_8aRkgFj$Q" role="TDEfX">
<node concept="3cpWs6" id="7_8aRkgFm0a" role="3cqZAp">
<node concept="3clFbT" id="7_8aRkgFm9U" role="3cqZAk">
<property role="3clFbU" value="false" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="24kQdi" id="7_8aRkgFwkP">
<property role="3GE5qa" value="expr.let" />
<ref role="1XX52x" to="8tt8:7_8aRkgDGQo" resolve="LetExpr" />
<node concept="3EZMnI" id="7_8aRkgFwkR" role="2wV5jI">
<node concept="3F0ifn" id="7_8aRkgFwkY" role="3EZMnx">
<property role="3F0ifm" value="let" />
</node>
<node concept="3F1sOY" id="7_8aRkgFwlQ" role="3EZMnx">
<ref role="1NtTu8" to="8tt8:7_8aRkgDGQv" resolve="bind" />
</node>
<node concept="3F0ifn" id="7_8aRkgFwlf" role="3EZMnx">
<property role="3F0ifm" value="in" />
</node>
<node concept="3F1sOY" id="7_8aRkgFwlr" role="3EZMnx">
<ref role="1NtTu8" to="8tt8:7_8aRkgDGQx" resolve="expr" />
</node>
<node concept="l2Vlx" id="7_8aRkgFwkU" role="2iSdaV" />
</node>
</node>
<node concept="24kQdi" id="7_8aRkgFz03">
<property role="3GE5qa" value="" />
<ref role="1XX52x" to="8tt8:7_8aRkgDGQp" resolve="Pattern" />
<node concept="3EZMnI" id="7_8aRkgFz05" role="2wV5jI">
<node concept="3F1sOY" id="7_8aRkgFz0f" role="3EZMnx">
<ref role="1NtTu8" to="8tt8:7_8aRkgDGQq" resolve="left" />
</node>
<node concept="3F0ifn" id="7_8aRkgFz0l" role="3EZMnx">
<property role="3F0ifm" value="=" />
</node>
<node concept="3F1sOY" id="7_8aRkgFz0y" role="3EZMnx">
<ref role="1NtTu8" to="8tt8:7_8aRkgDGQs" resolve="right" />
</node>
<node concept="l2Vlx" id="7_8aRkgFz08" role="2iSdaV" />
</node>
</node>
<node concept="3p36aQ" id="7_8aRkgFCnq">
<property role="3GE5qa" value="expr" />
<ref role="aqKnT" to="8tt8:7_8aRkgDGPo" resolve="Var" />
<node concept="3eGOop" id="7_8aRkgFCnt" role="3ft7WO">
<node concept="ucgPf" id="7_8aRkgFCnv" role="3aKz83">
<node concept="3clFbS" id="7_8aRkgFCnx" role="2VODD2">
<node concept="3cpWs8" id="7_8aRkgFJBd" role="3cqZAp">
<node concept="3cpWsn" id="7_8aRkgFJBe" role="3cpWs9">
<property role="TrG5h" value="var" />
<node concept="3Tqbb2" id="7_8aRkgFJBb" role="1tU5fm">
<ref role="ehGHo" to="8tt8:7_8aRkgDGPo" resolve="Var" />
</node>
<node concept="2ShNRf" id="7_8aRkgFJBf" role="33vP2m">
<node concept="3zrR0B" id="7_8aRkgFJBg" role="2ShVmc">
<node concept="3Tqbb2" id="7_8aRkgFJBh" role="3zrR0E">
<ref role="ehGHo" to="8tt8:7_8aRkgDGPo" resolve="Var" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7_8aRkgFFe7" role="3cqZAp">
<node concept="37vLTI" id="7_8aRkgFL8z" role="3clFbG">
<node concept="ub8z3" id="7_8aRkgFLnk" role="37vLTx" />
<node concept="2OqwBi" id="7_8aRkgFK0r" role="37vLTJ">
<node concept="37vLTw" id="7_8aRkgFJBi" role="2Oq$k0">
<ref role="3cqZAo" node="7_8aRkgFJBe" resolve="var" />
</node>
<node concept="3TrcHB" id="7_8aRkgFKgD" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7_8aRkgFLGL" role="3cqZAp">
<node concept="37vLTw" id="7_8aRkgFLGJ" role="3clFbG">
<ref role="3cqZAo" node="7_8aRkgFJBe" resolve="var" />
</node>
</node>
</node>
</node>
<node concept="16NL3D" id="7_8aRkgFCrB" role="upBLP">
<node concept="16Na2f" id="7_8aRkgFCrC" role="16NL3A">
<node concept="3clFbS" id="7_8aRkgFCrD" role="2VODD2">
<node concept="3clFbF" id="7_8aRkgFEu6" role="3cqZAp">
<node concept="2YIFZM" id="7_8aRkgFEG_" role="3clFbG">
<ref role="37wK5l" to="18ew:~JavaNameUtil.isJavaIdentifier(java.lang.String):boolean" resolve="isJavaIdentifier" />
<ref role="1Pybhc" to="18ew:~JavaNameUtil" resolve="JavaNameUtil" />
<node concept="2YIFZM" id="7_8aRkgFEVw" role="37wK5m">
<ref role="37wK5l" to="wyt6:~String.valueOf(java.lang.Object):java.lang.String" resolve="valueOf" />
<ref role="1Pybhc" to="wyt6:~String" resolve="String" />
<node concept="ub8z3" id="7_8aRkgFF33" role="37wK5m" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="IW6AY" id="7_8aRkgGces">
<property role="3GE5qa" value="expr" />
<ref role="aqKnT" to="8tt8:7_8aRkgDGPo" resolve="Var" />
<node concept="1Qtc8_" id="7_8aRkgG7na" role="IW6Ez">
<node concept="mvV$s" id="7_8aRkgHazp" role="1Qtc8A">
<node concept="A1WHr" id="7_8aRkgHhO4" role="A14EM">
<ref role="2ZyFGn" to="8tt8:7_8aRkgDGPJ" resolve="Expr" />
</node>
</node>
<node concept="IWgqT" id="7_8aRkgG7nm" role="1Qtc8A">
<node concept="1hCUdq" id="7_8aRkgG7no" role="1hCUd6">
<node concept="3clFbS" id="7_8aRkgG7nq" role="2VODD2">
<node concept="3clFbF" id="7_8aRkgG7w3" role="3cqZAp">
<node concept="Xl_RD" id="7_8aRkgG7w2" role="3clFbG">
<property role="Xl_RC" value="-&gt;" />
</node>
</node>
</node>
</node>
<node concept="IWg2L" id="7_8aRkgG7ns" role="IWgqQ">
<node concept="3clFbS" id="7_8aRkgG7nu" role="2VODD2">
<node concept="3cpWs8" id="7_8aRkgG8lg" role="3cqZAp">
<node concept="3cpWsn" id="7_8aRkgG8lh" role="3cpWs9">
<property role="TrG5h" value="abs" />
<node concept="3Tqbb2" id="7_8aRkgG8lf" role="1tU5fm">
<ref role="ehGHo" to="8tt8:7_8aRkgDGQf" resolve="Abs" />
</node>
<node concept="2OqwBi" id="7_8aRkgG8li" role="33vP2m">
<node concept="7Obwk" id="7_8aRkgG8lj" role="2Oq$k0" />
<node concept="2DeJnW" id="7_8aRkgGLPX" role="2OqNvi">
<ref role="1_rbq0" to="8tt8:7_8aRkgDGQf" resolve="Abs" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="7_8aRkgGaHw" role="3cqZAp">
<node concept="3cpWsn" id="7_8aRkgGaHx" role="3cpWs9">
<property role="TrG5h" value="varType" />
<node concept="3Tqbb2" id="7_8aRkgGaHp" role="1tU5fm">
<ref role="ehGHo" to="8tt8:7_8aRkgDGQi" resolve="VarType" />
</node>
<node concept="2OqwBi" id="7_8aRkgGaHy" role="33vP2m">
<node concept="2OqwBi" id="7_8aRkgGaHz" role="2Oq$k0">
<node concept="37vLTw" id="7_8aRkgGaH$" role="2Oq$k0">
<ref role="3cqZAo" node="7_8aRkgG8lh" resolve="abs" />
</node>
<node concept="3TrEf2" id="7_8aRkgGaH_" role="2OqNvi">
<ref role="3Tt5mk" to="8tt8:7_8aRkgDGQg" resolve="bind" />
</node>
</node>
<node concept="2DeJnY" id="7_8aRkgGRu1" role="2OqNvi">
<ref role="1A9B2P" to="8tt8:7_8aRkgDGQi" resolve="VarType" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7_8aRkgG7TC" role="3cqZAp">
<node concept="37vLTI" id="7_8aRkgGblU" role="3clFbG">
<node concept="2OqwBi" id="7_8aRkgGaTJ" role="37vLTJ">
<node concept="37vLTw" id="7_8aRkgGaHB" role="2Oq$k0">
<ref role="3cqZAo" node="7_8aRkgGaHx" resolve="varType" />
</node>
<node concept="3TrEf2" id="7_8aRkgGb2S" role="2OqNvi">
<ref role="3Tt5mk" to="8tt8:7_8aRkgDGQj" resolve="var" />
</node>
</node>
<node concept="7Obwk" id="7_8aRkgGcwZ" role="37vLTx" />
</node>
</node>
<node concept="3clFbF" id="7_8aRkgGAdN" role="3cqZAp">
<node concept="2OqwBi" id="7_8aRkgGATt" role="3clFbG">
<node concept="2OqwBi" id="7_8aRkgGAoQ" role="2Oq$k0">
<node concept="37vLTw" id="7_8aRkgGAdL" role="2Oq$k0">
<ref role="3cqZAo" node="7_8aRkgG8lh" resolve="abs" />
</node>
<node concept="3TrEf2" id="7_8aRkgGAC8" role="2OqNvi">
<ref role="3Tt5mk" to="8tt8:7_8aRkgDGQl" resolve="expr" />
</node>
</node>
<node concept="1OKiuA" id="7_8aRkgGB6K" role="2OqNvi">
<node concept="1Q80Hx" id="7_8aRkgGBfp" role="lBI5i" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3cWJ9i" id="7_8aRkgG7ne" role="1Qtc8$">
<node concept="CtIbL" id="7_8aRkgG7ng" role="CtIbM">
<property role="CtIbK" value="RIGHT" />
</node>
</node>
</node>
</node>
<node concept="3p36aQ" id="7_8aRkgGm38">
<property role="3GE5qa" value="clause" />
<ref role="aqKnT" to="8tt8:7_8aRkgEZ_W" resolve="ExprClause" />
<node concept="3N5dw7" id="7_8aRkgGm3e" role="3ft7WO">
<node concept="3N5aqt" id="7_8aRkgGm3f" role="3Na0zg">
<node concept="3clFbS" id="7_8aRkgGm3g" role="2VODD2">
<node concept="3cpWs8" id="7_8aRkgGmEn" role="3cqZAp">
<node concept="3cpWsn" id="7_8aRkgGmEo" role="3cpWs9">
<property role="TrG5h" value="ec" />
<node concept="3Tqbb2" id="7_8aRkgGmEm" role="1tU5fm">
<ref role="ehGHo" to="8tt8:7_8aRkgEZ_W" resolve="ExprClause" />
</node>
<node concept="2ShNRf" id="7_8aRkgGmEp" role="33vP2m">
<node concept="3zrR0B" id="7_8aRkgGmEq" role="2ShVmc">
<node concept="3Tqbb2" id="7_8aRkgGmEr" role="3zrR0E">
<ref role="ehGHo" to="8tt8:7_8aRkgEZ_W" resolve="ExprClause" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7_8aRkgGmeF" role="3cqZAp">
<node concept="37vLTI" id="7_8aRkgGnLV" role="3clFbG">
<node concept="3N4pyC" id="7_8aRkgGnVw" role="37vLTx" />
<node concept="2OqwBi" id="7_8aRkgGn28" role="37vLTJ">
<node concept="37vLTw" id="7_8aRkgGmEs" role="2Oq$k0">
<ref role="3cqZAo" node="7_8aRkgGmEo" resolve="ec" />
</node>
<node concept="3TrEf2" id="7_8aRkgGngC" role="2OqNvi">
<ref role="3Tt5mk" to="8tt8:7_8aRkgEZ_X" resolve="expr" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7_8aRkgGocU" role="3cqZAp">
<node concept="37vLTw" id="7_8aRkgGocS" role="3clFbG">
<ref role="3cqZAo" node="7_8aRkgGmEo" resolve="ec" />
</node>
</node>
</node>
</node>
<node concept="2kknPJ" id="7_8aRkgGm77" role="2klrvf">
<ref role="2ZyFGn" to="8tt8:7_8aRkgDGPJ" resolve="Expr" />
</node>
</node>
</node>
<node concept="3p36aQ" id="7_8aRkgHI81">
<property role="3GE5qa" value="expr.fun" />
<ref role="aqKnT" to="8tt8:7_8aRkgDGQf" resolve="Abs" />
</node>
<node concept="3p36aQ" id="7_8aRkgHI8t">
<property role="3GE5qa" value="expr.fun" />
<ref role="aqKnT" to="8tt8:7_8aRkgDGPK" resolve="App" />
</node>
</model>

View File

@ -0,0 +1,264 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:e74c1bfc-387b-4b4b-abee-2eb77ee510ec(sample.fooblin.structure)">
<persistence version="9" />
<languages>
<use id="c72da2b9-7cce-4447-8389-f407dc1158b7" name="jetbrains.mps.lang.structure" version="3" />
<devkit ref="2677cb18-f558-4e33-bc38-a5139cee06dc(jetbrains.mps.devkit.language-design)" />
</languages>
<imports>
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
</imports>
<registry>
<language id="c72da2b9-7cce-4447-8389-f407dc1158b7" name="jetbrains.mps.lang.structure">
<concept id="1169125787135" name="jetbrains.mps.lang.structure.structure.AbstractConceptDeclaration" flags="ig" index="PkWjJ">
<property id="6714410169261853888" name="conceptId" index="EcuMT" />
<property id="4628067390765956807" name="final" index="R5$K2" />
<property id="4628067390765956802" name="abstract" index="R5$K7" />
<property id="5092175715804935370" name="conceptAlias" index="34LRSv" />
<child id="1071489727083" name="linkDeclaration" index="1TKVEi" />
<child id="1071489727084" name="propertyDeclaration" index="1TKVEl" />
</concept>
<concept id="1169127622168" name="jetbrains.mps.lang.structure.structure.InterfaceConceptReference" flags="ig" index="PrWs8">
<reference id="1169127628841" name="intfc" index="PrY4T" />
</concept>
<concept id="1071489090640" name="jetbrains.mps.lang.structure.structure.ConceptDeclaration" flags="ig" index="1TIwiD">
<property id="1096454100552" name="rootable" index="19KtqR" />
<reference id="1071489389519" name="extends" index="1TJDcQ" />
<child id="1169129564478" name="implements" index="PzmwI" />
</concept>
<concept id="1071489288299" name="jetbrains.mps.lang.structure.structure.PropertyDeclaration" flags="ig" index="1TJgyi">
<property id="241647608299431129" name="propertyId" index="IQ2nx" />
<reference id="1082985295845" name="dataType" index="AX2Wp" />
</concept>
<concept id="1071489288298" name="jetbrains.mps.lang.structure.structure.LinkDeclaration" flags="ig" index="1TJgyj">
<property id="1071599776563" name="role" index="20kJfa" />
<property id="1071599893252" name="sourceCardinality" index="20lbJX" />
<property id="1071599937831" name="metaClass" index="20lmBu" />
<property id="241647608299431140" name="linkId" index="IQ2ns" />
<reference id="1071599976176" name="target" index="20lvS9" />
</concept>
</language>
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
<concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
<property id="1193676396447" name="virtualPackage" index="3GE5qa" />
</concept>
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
<property id="1169194664001" name="name" index="TrG5h" />
</concept>
</language>
</registry>
<node concept="1TIwiD" id="7_8aRkgDGPo">
<property role="EcuMT" value="8739282858702982488" />
<property role="TrG5h" value="Var" />
<property role="3GE5qa" value="expr" />
<ref role="1TJDcQ" node="7_8aRkgDGPJ" resolve="Expr" />
<node concept="PrWs8" id="7_8aRkgDGPp" role="PzmwI">
<ref role="PrY4T" to="tpck:h0TrEE$" resolve="INamedConcept" />
</node>
</node>
<node concept="1TIwiD" id="7_8aRkgDGPJ">
<property role="EcuMT" value="8739282858702982511" />
<property role="TrG5h" value="Expr" />
<property role="R5$K7" value="true" />
<property role="R5$K2" value="false" />
<property role="3GE5qa" value="expr" />
<ref role="1TJDcQ" to="tpck:gw2VY9q" resolve="BaseConcept" />
</node>
<node concept="1TIwiD" id="7_8aRkgDGPK">
<property role="EcuMT" value="8739282858702982512" />
<property role="TrG5h" value="App" />
<property role="3GE5qa" value="expr.fun" />
<ref role="1TJDcQ" node="7_8aRkgDGPJ" resolve="Expr" />
<node concept="1TJgyj" id="7_8aRkgDGPL" role="1TKVEi">
<property role="IQ2ns" value="8739282858702982513" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="fun" />
<property role="20lbJX" value="1" />
<ref role="20lvS9" node="7_8aRkgDGPJ" resolve="Expr" />
</node>
<node concept="1TJgyj" id="7_8aRkgDGPX" role="1TKVEi">
<property role="IQ2ns" value="8739282858702982525" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="arg" />
<property role="20lbJX" value="1" />
<ref role="20lvS9" node="7_8aRkgDGPJ" resolve="Expr" />
</node>
</node>
<node concept="1TIwiD" id="7_8aRkgDGQe">
<property role="EcuMT" value="8739282858702982542" />
<property role="TrG5h" value="Const" />
<property role="R5$K7" value="true" />
<property role="R5$K2" value="false" />
<property role="3GE5qa" value="expr.const" />
<ref role="1TJDcQ" node="7_8aRkgDGPJ" resolve="Expr" />
</node>
<node concept="1TIwiD" id="7_8aRkgDGQf">
<property role="EcuMT" value="8739282858702982543" />
<property role="TrG5h" value="Abs" />
<property role="3GE5qa" value="expr.fun" />
<ref role="1TJDcQ" node="7_8aRkgDGPJ" resolve="Expr" />
<node concept="1TJgyj" id="7_8aRkgDGQg" role="1TKVEi">
<property role="IQ2ns" value="8739282858702982544" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="bind" />
<property role="20lbJX" value="1" />
<ref role="20lvS9" node="7_8aRkgDGQi" resolve="VarType" />
</node>
<node concept="1TJgyj" id="7_8aRkgDGQl" role="1TKVEi">
<property role="IQ2ns" value="8739282858702982549" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="expr" />
<property role="20lbJX" value="1" />
<ref role="20lvS9" node="7_8aRkgDGPJ" resolve="Expr" />
</node>
</node>
<node concept="1TIwiD" id="7_8aRkgDGQi">
<property role="EcuMT" value="8739282858702982546" />
<property role="TrG5h" value="VarType" />
<property role="3GE5qa" value="expr.fun" />
<ref role="1TJDcQ" to="tpck:gw2VY9q" resolve="BaseConcept" />
<node concept="1TJgyj" id="7_8aRkgDGQj" role="1TKVEi">
<property role="IQ2ns" value="8739282858702982547" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="var" />
<property role="20lbJX" value="1" />
<ref role="20lvS9" node="7_8aRkgDGPo" resolve="Var" />
</node>
</node>
<node concept="1TIwiD" id="7_8aRkgDGQo">
<property role="EcuMT" value="8739282858702982552" />
<property role="3GE5qa" value="expr.let" />
<property role="TrG5h" value="LetExpr" />
<property role="34LRSv" value="let...in" />
<ref role="1TJDcQ" node="7_8aRkgDGPJ" resolve="Expr" />
<node concept="1TJgyj" id="7_8aRkgDGQv" role="1TKVEi">
<property role="IQ2ns" value="8739282858702982559" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="bind" />
<property role="20lbJX" value="1" />
<ref role="20lvS9" node="7_8aRkgDGQp" resolve="Pattern" />
</node>
<node concept="1TJgyj" id="7_8aRkgDGQx" role="1TKVEi">
<property role="IQ2ns" value="8739282858702982561" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="expr" />
<property role="20lbJX" value="1" />
<ref role="20lvS9" node="7_8aRkgDGPJ" resolve="Expr" />
</node>
</node>
<node concept="1TIwiD" id="7_8aRkgDGQp">
<property role="EcuMT" value="8739282858702982553" />
<property role="3GE5qa" value="" />
<property role="TrG5h" value="Pattern" />
<ref role="1TJDcQ" to="tpck:gw2VY9q" resolve="BaseConcept" />
<node concept="1TJgyj" id="7_8aRkgDGQq" role="1TKVEi">
<property role="IQ2ns" value="8739282858702982554" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="left" />
<property role="20lbJX" value="1" />
<ref role="20lvS9" node="7_8aRkgDGPJ" resolve="Expr" />
</node>
<node concept="1TJgyj" id="7_8aRkgDGQs" role="1TKVEi">
<property role="IQ2ns" value="8739282858702982556" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="right" />
<property role="20lbJX" value="1" />
<ref role="20lvS9" node="7_8aRkgDGPJ" resolve="Expr" />
</node>
</node>
<node concept="1TIwiD" id="7_8aRkgDGQ$">
<property role="EcuMT" value="8739282858702982564" />
<property role="3GE5qa" value="expr" />
<property role="TrG5h" value="Rec" />
<ref role="1TJDcQ" to="tpck:gw2VY9q" resolve="BaseConcept" />
<node concept="1TJgyj" id="7_8aRkgDGQ_" role="1TKVEi">
<property role="IQ2ns" value="8739282858702982565" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="slot" />
<property role="20lbJX" value="0..n" />
<ref role="20lvS9" node="7_8aRkgDGPJ" resolve="Expr" />
</node>
</node>
<node concept="1TIwiD" id="7_8aRkgDGQB">
<property role="EcuMT" value="8739282858702982567" />
<property role="TrG5h" value="Clause" />
<property role="R5$K7" value="true" />
<property role="R5$K2" value="false" />
<property role="3GE5qa" value="clause" />
<ref role="1TJDcQ" to="tpck:gw2VY9q" resolve="BaseConcept" />
</node>
<node concept="1TIwiD" id="7_8aRkgDGQC">
<property role="EcuMT" value="8739282858702982568" />
<property role="TrG5h" value="Doc" />
<property role="19KtqR" value="true" />
<ref role="1TJDcQ" to="tpck:gw2VY9q" resolve="BaseConcept" />
<node concept="1TJgyj" id="7_8aRkgDGQF" role="1TKVEi">
<property role="IQ2ns" value="8739282858702982571" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="clause" />
<property role="20lbJX" value="0..n" />
<ref role="20lvS9" node="7_8aRkgDGQB" resolve="Clause" />
</node>
<node concept="PrWs8" id="7_8aRkgDGQD" role="PzmwI">
<ref role="PrY4T" to="tpck:h0TrEE$" resolve="INamedConcept" />
</node>
</node>
<node concept="1TIwiD" id="7_8aRkgDHAe">
<property role="EcuMT" value="8739282858702985614" />
<property role="TrG5h" value="LetClause" />
<property role="34LRSv" value="let" />
<property role="3GE5qa" value="clause" />
<ref role="1TJDcQ" node="7_8aRkgDGQB" resolve="Clause" />
<node concept="1TJgyj" id="7_8aRkgDHAf" role="1TKVEi">
<property role="IQ2ns" value="8739282858702985615" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="var" />
<property role="20lbJX" value="1" />
<ref role="20lvS9" node="7_8aRkgDGPo" resolve="Var" />
</node>
<node concept="1TJgyj" id="7_8aRkgDHAh" role="1TKVEi">
<property role="IQ2ns" value="8739282858702985617" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="expr" />
<property role="20lbJX" value="1" />
<ref role="20lvS9" node="7_8aRkgDGPJ" resolve="Expr" />
</node>
</node>
<node concept="1TIwiD" id="7_8aRkgDHBc">
<property role="EcuMT" value="8739282858702985676" />
<property role="3GE5qa" value="expr.const" />
<property role="TrG5h" value="StringConst" />
<ref role="1TJDcQ" node="7_8aRkgDGQe" resolve="Const" />
<node concept="1TJgyi" id="7_8aRkgDHBd" role="1TKVEl">
<property role="IQ2nx" value="8739282858702985677" />
<property role="TrG5h" value="value" />
<ref role="AX2Wp" to="tpck:fKAOsGN" resolve="string" />
</node>
</node>
<node concept="1TIwiD" id="7_8aRkgDHBK">
<property role="EcuMT" value="8739282858702985712" />
<property role="3GE5qa" value="expr.const" />
<property role="TrG5h" value="NumConst" />
<ref role="1TJDcQ" node="7_8aRkgDGQe" resolve="Const" />
<node concept="1TJgyi" id="7_8aRkgDHBL" role="1TKVEl">
<property role="IQ2nx" value="8739282858702985713" />
<property role="TrG5h" value="value" />
<ref role="AX2Wp" to="tpck:fKAQMTA" resolve="integer" />
</node>
</node>
<node concept="1TIwiD" id="7_8aRkgEZ_W">
<property role="EcuMT" value="8739282858703321468" />
<property role="3GE5qa" value="clause" />
<property role="TrG5h" value="ExprClause" />
<property role="34LRSv" value="expr" />
<ref role="1TJDcQ" node="7_8aRkgDGQB" resolve="Clause" />
<node concept="1TJgyj" id="7_8aRkgEZ_X" role="1TKVEi">
<property role="IQ2ns" value="8739282858703321469" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="expr" />
<property role="20lbJX" value="1" />
<ref role="20lvS9" node="7_8aRkgDGPJ" resolve="Expr" />
</node>
</node>
</model>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:ea716504-770e-4d8e-a992-900e08e75062(sample.fooblin.typesystem)">
<persistence version="9" />
<languages>
<use id="7a5dda62-9140-4668-ab76-d5ed1746f2b2" name="jetbrains.mps.lang.typesystem" version="0" />
<devkit ref="2677cb18-f558-4e33-bc38-a5139cee06dc(jetbrains.mps.devkit.language-design)" />
</languages>
<imports />
<registry />
</model>

View File

@ -0,0 +1,108 @@
<?xml version="1.0" encoding="UTF-8"?>
<language namespace="sample.fooblin" uuid="af858d84-85f2-42f4-a854-0b3c6b5cd482" languageVersion="0" moduleVersion="0">
<models>
<modelRoot contentPath="${module}" type="default">
<sourceRoot location="models" />
</modelRoot>
</models>
<accessoryModels />
<generators>
<generator generatorUID="sample.fooblin#8739282858702982481" uuid="573e397c-a9e0-4dac-b6cd-7f7ee10cd915">
<models>
<modelRoot contentPath="${module}" type="default">
<sourceRoot location="generator/template" />
</modelRoot>
</models>
<external-templates />
<usedDevKits>
<usedDevKit>fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)</usedDevKit>
<usedDevKit>a2eb3a43-fcc2-4200-80dc-c60110c4862d(jetbrains.mps.devkit.templates)</usedDevKit>
</usedDevKits>
<languageVersions>
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="4" />
<language slang="l:ed6d7656-532c-4bc2-81d1-af945aeb8280:jetbrains.mps.baseLanguage.blTypes" version="0" />
<language slang="l:fd392034-7849-419d-9071-12563d152375:jetbrains.mps.baseLanguage.closures" version="0" />
<language slang="l:83888646-71ce-4f1c-9c53-c54016f6ad4f:jetbrains.mps.baseLanguage.collections" version="0" />
<language slang="l:f2801650-65d5-424e-bb1b-463a8781b786:jetbrains.mps.baseLanguage.javadoc" version="2" />
<language slang="l:760a0a8c-eabb-4521-8bfd-65db761a9ba3:jetbrains.mps.baseLanguage.logging" version="0" />
<language slang="l:a247e09e-2435-45ba-b8d2-07e93feba96a:jetbrains.mps.baseLanguage.tuples" version="0" />
<language slang="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" version="1" />
<language slang="l:b401a680-8325-4110-8fd3-84331ff25bef:jetbrains.mps.lang.generator" version="0" />
<language slang="l:d7706f63-9be2-479c-a3da-ae92af1e64d5:jetbrains.mps.lang.generator.generationContext" version="0" />
<language slang="l:289fcc83-6543-41e8-a5ca-768235715ce4:jetbrains.mps.lang.generator.generationParameters" version="0" />
<language slang="l:3a13115c-633c-4c5c-bbcc-75c4219e9555:jetbrains.mps.lang.quotation" version="0" />
<language slang="l:13744753-c81f-424a-9c1b-cf8943bf4e86:jetbrains.mps.lang.sharedConcepts" version="0" />
<language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="4" />
<language slang="l:9ded098b-ad6a-4657-bfd9-48636cfe8bc3:jetbrains.mps.lang.traceable" version="0" />
<language slang="l:af858d84-85f2-42f4-a854-0b3c6b5cd482:sample.fooblin" version="-1" />
</languageVersions>
<dependencyVersions>
<module reference="3f233e7f-b8a6-46d2-a57f-795d56775243(Annotations)" version="0" />
<module reference="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" version="0" />
<module reference="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)" version="0" />
<module reference="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" version="0" />
<module reference="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" version="0" />
<module reference="d7eb0a2a-bd50-4576-beae-e4a89db35f20(jetbrains.mps.lang.scopes.runtime)" version="0" />
<module reference="c72da2b9-7cce-4447-8389-f407dc1158b7(jetbrains.mps.lang.structure)" version="0" />
<module reference="af858d84-85f2-42f4-a854-0b3c6b5cd482(sample.fooblin)" version="0" />
<module reference="573e397c-a9e0-4dac-b6cd-7f7ee10cd915(sample.fooblin#8739282858702982481)" version="0" />
</dependencyVersions>
<mapping-priorities />
</generator>
</generators>
<sourcePath />
<dependencies>
<dependency reexport="false">8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)</dependency>
<dependency reexport="false">af858d84-85f2-42f4-a854-0b3c6b5cd482(sample.fooblin)</dependency>
</dependencies>
<usedDevKits>
<usedDevKit>2677cb18-f558-4e33-bc38-a5139cee06dc(jetbrains.mps.devkit.language-design)</usedDevKit>
</usedDevKits>
<languageVersions>
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="4" />
<language slang="l:ed6d7656-532c-4bc2-81d1-af945aeb8280:jetbrains.mps.baseLanguage.blTypes" version="0" />
<language slang="l:443f4c36-fcf5-4eb6-9500-8d06ed259e3e:jetbrains.mps.baseLanguage.classifiers" version="0" />
<language slang="l:fd392034-7849-419d-9071-12563d152375:jetbrains.mps.baseLanguage.closures" version="0" />
<language slang="l:83888646-71ce-4f1c-9c53-c54016f6ad4f:jetbrains.mps.baseLanguage.collections" version="0" />
<language slang="l:f2801650-65d5-424e-bb1b-463a8781b786:jetbrains.mps.baseLanguage.javadoc" version="2" />
<language slang="l:c7d5b9dd-a05f-4be2-bc73-f2e16994cc67:jetbrains.mps.baseLanguage.lightweightdsl" version="1" />
<language slang="l:760a0a8c-eabb-4521-8bfd-65db761a9ba3:jetbrains.mps.baseLanguage.logging" version="0" />
<language slang="l:daafa647-f1f7-4b0b-b096-69cd7c8408c0:jetbrains.mps.baseLanguage.regexp" version="0" />
<language slang="l:a247e09e-2435-45ba-b8d2-07e93feba96a:jetbrains.mps.baseLanguage.tuples" version="0" />
<language slang="l:df345b11-b8c7-4213-ac66-48d2a9b75d88:jetbrains.mps.baseLanguageInternal" version="0" />
<language slang="l:aee9cad2-acd4-4608-aef2-0004f6a1cdbd:jetbrains.mps.lang.actions" version="3" />
<language slang="l:af65afd8-f0dd-4942-87d9-63a55f2a9db1:jetbrains.mps.lang.behavior" version="0" />
<language slang="l:fe9d76d7-5809-45c9-ae28-a40915b4d6ff:jetbrains.mps.lang.checkedName" version="0" />
<language slang="l:3f4bc5f5-c6c1-4a28-8b10-c83066ffa4a1:jetbrains.mps.lang.constraints" version="0" />
<language slang="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" version="1" />
<language slang="l:7fa12e9c-b949-4976-b4fa-19accbc320b4:jetbrains.mps.lang.dataFlow" version="0" />
<language slang="l:18bc6592-03a6-4e29-a83a-7ff23bde13ba:jetbrains.mps.lang.editor" version="4" />
<language slang="l:64d34fcd-ad02-4e73-aff8-a581124c2e30:jetbrains.mps.lang.findUsages" version="0" />
<language slang="l:b401a680-8325-4110-8fd3-84331ff25bef:jetbrains.mps.lang.generator" version="0" />
<language slang="l:d7706f63-9be2-479c-a3da-ae92af1e64d5:jetbrains.mps.lang.generator.generationContext" version="0" />
<language slang="l:d7a92d38-f7db-40d0-8431-763b0c3c9f20:jetbrains.mps.lang.intentions" version="0" />
<language slang="l:d4615e3b-d671-4ba9-af01-2b78369b0ba7:jetbrains.mps.lang.pattern" version="1" />
<language slang="l:3a13115c-633c-4c5c-bbcc-75c4219e9555:jetbrains.mps.lang.quotation" version="0" />
<language slang="l:3ecd7c84-cde3-45de-886c-135ecc69b742:jetbrains.mps.lang.refactoring" version="0" />
<language slang="l:982eb8df-2c96-4bd7-9963-11712ea622e5:jetbrains.mps.lang.resources" version="2" />
<language slang="l:0eddeefa-c2d6-4437-bc2c-de50fd4ce470:jetbrains.mps.lang.script" version="0" />
<language slang="l:13744753-c81f-424a-9c1b-cf8943bf4e86:jetbrains.mps.lang.sharedConcepts" version="0" />
<language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="4" />
<language slang="l:c72da2b9-7cce-4447-8389-f407dc1158b7:jetbrains.mps.lang.structure" version="3" />
<language slang="l:b83431fe-5c8f-40bc-8a36-65e25f4dd253:jetbrains.mps.lang.textGen" version="0" />
<language slang="l:9ded098b-ad6a-4657-bfd9-48636cfe8bc3:jetbrains.mps.lang.traceable" version="0" />
<language slang="l:7a5dda62-9140-4668-ab76-d5ed1746f2b2:jetbrains.mps.lang.typesystem" version="0" />
</languageVersions>
<dependencyVersions>
<module reference="3f233e7f-b8a6-46d2-a57f-795d56775243(Annotations)" version="0" />
<module reference="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" version="0" />
<module reference="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)" version="0" />
<module reference="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" version="0" />
<module reference="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" version="0" />
<module reference="d7eb0a2a-bd50-4576-beae-e4a89db35f20(jetbrains.mps.lang.scopes.runtime)" version="0" />
<module reference="c72da2b9-7cce-4447-8389-f407dc1158b7(jetbrains.mps.lang.structure)" version="0" />
<module reference="af858d84-85f2-42f4-a854-0b3c6b5cd482(sample.fooblin)" version="0" />
</dependencyVersions>
<extendedLanguages />
</language>

View File

@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:64f472af-c4b1-4900-9ea3-aec5c51b6e6e(sample.demo.fooblah)">
<persistence version="9" />
<languages>
<use id="af858d84-85f2-42f4-a854-0b3c6b5cd482" name="sample.fooblin" version="0" />
</languages>
<imports />
<registry>
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
<property id="1169194664001" name="name" index="TrG5h" />
</concept>
</language>
<language id="af858d84-85f2-42f4-a854-0b3c6b5cd482" name="sample.fooblin">
<concept id="8739282858702982512" name="sample.fooblin.structure.App" flags="ng" index="1DVIo5">
<child id="8739282858702982513" name="fun" index="1DVIo4" />
<child id="8739282858702982525" name="arg" index="1DVIo8" />
</concept>
<concept id="8739282858702982488" name="sample.fooblin.structure.Var" flags="ng" index="1DVIoH" />
<concept id="8739282858702982568" name="sample.fooblin.structure.Doc" flags="ng" index="1DVIrt">
<child id="8739282858702982571" name="clause" index="1DVIru" />
</concept>
<concept id="8739282858702982546" name="sample.fooblin.structure.VarType" flags="ng" index="1DVIrB">
<child id="8739282858702982547" name="var" index="1DVIrA" />
</concept>
<concept id="8739282858702982543" name="sample.fooblin.structure.Abs" flags="ng" index="1DVIrU">
<child id="8739282858702982549" name="expr" index="1DVIrw" />
<child id="8739282858702982544" name="bind" index="1DVIr_" />
</concept>
<concept id="8739282858702985712" name="sample.fooblin.structure.NumConst" flags="ng" index="1DVJa5">
<property id="8739282858702985713" name="value" index="1DVJa4" />
</concept>
<concept id="8739282858702985614" name="sample.fooblin.structure.LetClause" flags="ng" index="1DVJbV">
<child id="8739282858702985617" name="expr" index="1DVJb$" />
<child id="8739282858702985615" name="var" index="1DVJbU" />
</concept>
</language>
</registry>
<node concept="1DVIrt" id="7_8aRkgE06U">
<property role="TrG5h" value="Demo1" />
<node concept="1DVJbV" id="7_8aRkgE06X" role="1DVIru">
<node concept="1DVIoH" id="7_8aRkgE06Z" role="1DVJbU">
<property role="TrG5h" value="x" />
</node>
<node concept="1DVJa5" id="7_8aRkgE076" role="1DVJb$">
<property role="1DVJa4" value="2" />
</node>
</node>
<node concept="1DVJbV" id="7_8aRkgHLyo" role="1DVIru">
<node concept="1DVIoH" id="7_8aRkgHLyq" role="1DVJbU">
<property role="TrG5h" value="Y" />
</node>
<node concept="1DVIrU" id="7_8aRkgHLz7" role="1DVJb$">
<node concept="1DVIo5" id="7_8aRkgHLPv" role="1DVIrw">
<node concept="1DVIrU" id="7_8aRkgHLzw" role="1DVIo4">
<node concept="1DVIo5" id="7_8aRkgHLzU" role="1DVIrw">
<node concept="1DVIo5" id="7_8aRkgHL$8" role="1DVIo8">
<node concept="1DVIoH" id="7_8aRkgHLzT" role="1DVIo4">
<property role="TrG5h" value="x" />
</node>
<node concept="1DVIoH" id="7_8aRkgHL$7" role="1DVIo8">
<property role="TrG5h" value="x" />
</node>
</node>
<node concept="1DVIoH" id="7_8aRkgHLPr" role="1DVIo4">
<property role="TrG5h" value="f" />
</node>
</node>
<node concept="1DVIrB" id="7_8aRkgHLzC" role="1DVIr_">
<node concept="1DVIoH" id="7_8aRkgHLzs" role="1DVIrA">
<property role="TrG5h" value="x" />
</node>
</node>
</node>
<node concept="1DVIrU" id="7_8aRkgHLQf" role="1DVIo8">
<node concept="1DVIo5" id="7_8aRkgHLQD" role="1DVIrw">
<node concept="1DVIoH" id="7_8aRkgHLQ$" role="1DVIo4">
<property role="TrG5h" value="f" />
</node>
<node concept="1DVIo5" id="7_8aRkgHLQR" role="1DVIo8">
<node concept="1DVIoH" id="7_8aRkgHLQC" role="1DVIo4">
<property role="TrG5h" value="x" />
</node>
<node concept="1DVIoH" id="7_8aRkgHLQQ" role="1DVIo8">
<property role="TrG5h" value="x" />
</node>
</node>
</node>
<node concept="1DVIrB" id="7_8aRkgHLQn" role="1DVIr_">
<node concept="1DVIoH" id="7_8aRkgHLPu" role="1DVIrA">
<property role="TrG5h" value="x" />
</node>
</node>
</node>
</node>
<node concept="1DVIrB" id="7_8aRkgHLzf" role="1DVIr_">
<node concept="1DVIoH" id="7_8aRkgHLz3" role="1DVIrA">
<property role="TrG5h" value="f" />
</node>
</node>
</node>
</node>
</node>
</model>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<solution name="sample.demo" uuid="05f15741-5274-4aed-a086-84d9a15ab93b" moduleVersion="0" compileInMPS="true">
<models>
<modelRoot contentPath="${module}" type="default">
<sourceRoot location="models" />
</modelRoot>
</models>
<sourcePath />
<languageVersions>
<language slang="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" version="1" />
<language slang="l:af858d84-85f2-42f4-a854-0b3c6b5cd482:sample.fooblin" version="0" />
</languageVersions>
<dependencyVersions>
<module reference="05f15741-5274-4aed-a086-84d9a15ab93b(sample.demo)" version="0" />
</dependencyVersions>
</solution>