Commit b7d03e0f authored by André Pacak's avatar André Pacak

untested implementation of fo recursive type checker in IncA

parent 345377ca
......@@ -7,6 +7,7 @@
<modulePath path="$PROJECT_DIR$/languages/ProductTypes/ProductTypes.mpl" folder="" />
<modulePath path="$PROJECT_DIR$/languages/RecordTypes/RecordTypes.mpl" folder="" />
<modulePath path="$PROJECT_DIR$/languages/VariantTypes/VariantTypes.mpl" folder="" />
<modulePath path="$PROJECT_DIR$/solutions/FORecursiveTypes_Checker/FORecursiveTypes_Checker.msd" folder="" />
<modulePath path="$PROJECT_DIR$/solutions/RecordTypes_Checker/RecordTypes_Checker.msd" folder="" />
<modulePath path="$PROJECT_DIR$/solutions/SumTypes_Checker/SumTypes_Checker.msd" folder="." />
<modulePath path="$PROJECT_DIR$/solutions/VariantTypes_Checker/VariantTypes_Checker.msd" folder="" />
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -15,7 +15,7 @@
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1153952380246:jetbrains.mps.baseLanguage.structure.TryStatement" />
<root>
<file name="EditorAspectDescriptorImpl.java">
<unit at="18,0,158,0" name="FORecursiveTypes.editor.EditorAspectDescriptorImpl" />
<unit at="18,0,162,0" name="FORecursiveTypes.editor.EditorAspectDescriptorImpl" />
</file>
<file name="GrammarActionsDescriptor.java">
<unit at="858,51,862,5" name="FORecursiveTypes.editor.GrammarActionsDescriptor$12" />
......@@ -159,6 +159,10 @@
<unit at="45,0,55,0" name="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_TypeVar$GrammarCellsSubstituteMenuPart_nasubc_a" />
<unit at="20,0,56,0" name="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_TypeVar" />
</file>
<file name="GrammarCellsSubstituteMenu_UnitTerm.java">
<unit at="45,0,55,0" name="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_UnitTerm$GrammarCellsSubstituteMenuPart_f5wgwm_a" />
<unit at="20,0,56,0" name="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_UnitTerm" />
</file>
<file name="GrammarCellsSubstituteMenu_UnitType.java">
<unit at="45,0,55,0" name="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_UnitType$GrammarCellsSubstituteMenuPart_f5woal_a" />
<unit at="20,0,56,0" name="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_UnitType" />
......@@ -8000,5 +8004,48 @@
<unit id="8032141838602455031" at="48,0,544,0" name="FORecursiveTypes.editor.LetType_EditorBuilder_a" />
</file>
</root>
<root nodeRef="r:e04d5d3a-ed4c-4c4e-9fd2-08a19036ac61(FORecursiveTypes.editor)/8032141838602814370">
<file name="UnitTerm_Editor.java">
<node id="8032141838602814370" at="11,79,12,74" concept="8" />
<node id="8032141838602814370" at="11,0,14,0" concept="6" trace="createEditorCell#(Ljetbrains/mps/openapi/editor/EditorContext;Lorg/jetbrains/mps/openapi/model/SNode;)Ljetbrains/mps/openapi/editor/cells/EditorCell;" />
<scope id="8032141838602814370" at="11,79,12,74" />
<scope id="8032141838602814370" at="11,0,14,0">
<var name="editorContext" id="8032141838602814370" />
<var name="node" id="8032141838602814370" />
</scope>
<unit id="8032141838602814370" at="10,0,15,0" name="FORecursiveTypes.editor.UnitTerm_Editor" />
</file>
<file name="UnitTerm_EditorBuilder_a.java">
<node id="8032141838602814370" at="16,88,17,19" concept="11" />
<node id="8032141838602814370" at="17,19,18,18" concept="2" />
<node id="8032141838602814370" at="23,26,24,18" concept="8" />
<node id="8032141838602814370" at="27,39,28,30" concept="8" />
<node id="8032141838602814372" at="31,41,32,97" concept="7" />
<node id="8032141838602814372" at="32,97,33,46" concept="2" />
<node id="8032141838602814372" at="33,46,34,28" concept="2" />
<node id="8032141838602814372" at="34,28,35,31" concept="2" />
<node id="8032141838602814372" at="35,31,36,34" concept="2" />
<node id="8032141838602814372" at="36,34,37,22" concept="8" />
<node id="8032141838602814370" at="13,0,15,0" concept="3" trace="myNode" />
<node id="8032141838602814370" at="27,0,30,0" concept="6" trace="createCell#()Ljetbrains/mps/openapi/editor/cells/EditorCell;" />
<node id="8032141838602814370" at="16,0,20,0" concept="1" trace="UnitTerm_EditorBuilder_a#(Ljetbrains/mps/openapi/editor/EditorContext;Lorg/jetbrains/mps/openapi/model/SNode;)V" />
<node id="8032141838602814370" at="21,0,26,0" concept="6" trace="getNode#()Lorg/jetbrains/mps/openapi/model/SNode;" />
<node id="8032141838602814372" at="31,0,39,0" concept="6" trace="createConstant_0#()Ljetbrains/mps/openapi/editor/cells/EditorCell;" />
<scope id="8032141838602814370" at="23,26,24,18" />
<scope id="8032141838602814370" at="27,39,28,30" />
<scope id="8032141838602814370" at="16,88,18,18" />
<scope id="8032141838602814370" at="27,0,30,0" />
<scope id="8032141838602814370" at="16,0,20,0">
<var name="context" id="8032141838602814370" />
<var name="node" id="8032141838602814370" />
</scope>
<scope id="8032141838602814370" at="21,0,26,0" />
<scope id="8032141838602814372" at="31,41,37,22">
<var name="editorCell" id="8032141838602814372" />
</scope>
<scope id="8032141838602814372" at="31,0,39,0" />
<unit id="8032141838602814370" at="12,0,40,0" name="FORecursiveTypes.editor.UnitTerm_EditorBuilder_a" />
</file>
</root>
</debug-info>
......@@ -188,6 +188,7 @@
<classNode dependClassName="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_Term" />
<classNode dependClassName="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_Type" />
<classNode dependClassName="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_TypeVar" />
<classNode dependClassName="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_UnitTerm" />
<classNode dependClassName="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_UnitType" />
<classNode dependClassName="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_Var" />
<classNode dependClassName="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_VariantType" />
......@@ -208,6 +209,7 @@
<classNode dependClassName="FORecursiveTypes.editor.Succ_Editor" />
<classNode dependClassName="FORecursiveTypes.editor.Tag_Editor" />
<classNode dependClassName="FORecursiveTypes.editor.TypeVar_Editor" />
<classNode dependClassName="FORecursiveTypes.editor.UnitTerm_Editor" />
<classNode dependClassName="FORecursiveTypes.editor.UnitType_Editor" />
<classNode dependClassName="FORecursiveTypes.editor.Var_Editor" />
<classNode dependClassName="FORecursiveTypes.editor.VariantTypeEntry_Editor" />
......@@ -729,6 +731,23 @@
<classNode dependClassName="org.jetbrains.mps.openapi.persistence.PersistenceFacade" />
<classNode extendsClassName="jetbrains.mps.nodeEditor.menus.substitute.SubstituteMenuBase" />
</dependency>
<dependency className="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_UnitTerm">
<classNode dependClassName="com.mbeddr.mpsutil.grammarcells.runtime.menu.GrammarCellsSubstituteMenuPart" />
<classNode dependClassName="java.lang.Override" />
<classNode dependClassName="java.util.ArrayList" />
<classNode dependClassName="java.util.List" />
<classNode dependClassName="jetbrains.mps.lang.editor.menus.EditorMenuDescriptorBase" />
<classNode dependClassName="jetbrains.mps.lang.editor.menus.MenuPart" />
<classNode dependClassName="jetbrains.mps.openapi.editor.menus.substitute.SubstituteMenuContext" />
<classNode dependClassName="jetbrains.mps.openapi.editor.menus.substitute.SubstituteMenuItem" />
<classNode dependClassName="jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory" />
<classNode dependClassName="org.jetbrains.annotations.NotNull" />
<classNode dependClassName="org.jetbrains.mps.openapi.language.SAbstractConcept" />
<classNode dependClassName="org.jetbrains.mps.openapi.module.SModule" />
<classNode dependClassName="org.jetbrains.mps.openapi.module.SRepository" />
<classNode dependClassName="org.jetbrains.mps.openapi.persistence.PersistenceFacade" />
<classNode extendsClassName="jetbrains.mps.nodeEditor.menus.substitute.SubstituteMenuBase" />
</dependency>
<dependency className="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_UnitType">
<classNode dependClassName="com.mbeddr.mpsutil.grammarcells.runtime.menu.GrammarCellsSubstituteMenuPart" />
<classNode dependClassName="java.lang.Override" />
......@@ -1364,6 +1383,22 @@
<classNode dependClassName="org.jetbrains.mps.openapi.model.SNode" />
<classNode extendsClassName="jetbrains.mps.editor.runtime.descriptor.AbstractEditorBuilder" />
</dependency>
<dependency className="FORecursiveTypes.editor.UnitTerm_Editor">
<classNode dependClassName="FORecursiveTypes.editor.UnitTerm_EditorBuilder_a" />
<classNode dependClassName="jetbrains.mps.openapi.editor.EditorContext" />
<classNode dependClassName="jetbrains.mps.openapi.editor.cells.EditorCell" />
<classNode dependClassName="org.jetbrains.mps.openapi.model.SNode" />
<classNode extendsClassName="jetbrains.mps.nodeEditor.DefaultNodeEditor" />
</dependency>
<dependency className="FORecursiveTypes.editor.UnitTerm_EditorBuilder_a">
<classNode dependClassName="java.lang.Override" />
<classNode dependClassName="jetbrains.mps.nodeEditor.cells.EditorCell_Constant" />
<classNode dependClassName="jetbrains.mps.openapi.editor.EditorContext" />
<classNode dependClassName="jetbrains.mps.openapi.editor.cells.EditorCell" />
<classNode dependClassName="org.jetbrains.annotations.NotNull" />
<classNode dependClassName="org.jetbrains.mps.openapi.model.SNode" />
<classNode extendsClassName="jetbrains.mps.editor.runtime.descriptor.AbstractEditorBuilder" />
</dependency>
<dependency className="FORecursiveTypes.editor.UnitType_Editor">
<classNode dependClassName="FORecursiveTypes.editor.UnitType_EditorBuilder_a" />
<classNode dependClassName="jetbrains.mps.openapi.editor.EditorContext" />
......
<?xml version="1.0" encoding="UTF-8"?>
<product version="3" modelHash="-9vtg9kfobzqpccbxgyce9wo7u4wxt0f">
<files names="Add_Editor.java:Add_EditorBuilder_a.java:Anno_Editor.java:Anno_EditorBuilder_a.java:App_Editor.java:App_EditorBuilder_a.java:Case_Editor.java:Case_EditorBuilder_a.java:EditorAspectDescriptorImpl.java:Fun_Editor.java:Fun_EditorBuilder_a.java:GrammarActionsDescriptor.java:GrammarCellsSubstituteMenu_Add.java:GrammarCellsSubstituteMenu_Anno.java:GrammarCellsSubstituteMenu_App.java:GrammarCellsSubstituteMenu_Case.java:GrammarCellsSubstituteMenu_Fun.java:GrammarCellsSubstituteMenu_IModuleElem.java:GrammarCellsSubstituteMenu_Lam.java:GrammarCellsSubstituteMenu_Let.java:GrammarCellsSubstituteMenu_LetType.java:GrammarCellsSubstituteMenu_Match.java:GrammarCellsSubstituteMenu_Module.java:GrammarCellsSubstituteMenu_ModuleElemDef.java:GrammarCellsSubstituteMenu_ModuleElemEmpty.java:GrammarCellsSubstituteMenu_ModuleImport.java:GrammarCellsSubstituteMenu_Mult.java:GrammarCellsSubstituteMenu_Nat.java:GrammarCellsSubstituteMenu_ParensTerm.java:GrammarCellsSubstituteMenu_ParensType.java:GrammarCellsSubstituteMenu_Succ.java:GrammarCellsSubstituteMenu_Tag.java:GrammarCellsSubstituteMenu_Term.java:GrammarCellsSubstituteMenu_Type.java:GrammarCellsSubstituteMenu_TypeVar.java:GrammarCellsSubstituteMenu_UnitType.java:GrammarCellsSubstituteMenu_Var.java:GrammarCellsSubstituteMenu_VariantType.java:GrammarCellsSubstituteMenu_VariantTypeEntry.java:GrammarCellsSubstituteMenu_Zero.java:Lam_Editor.java:Lam_EditorBuilder_a.java:LetType_Editor.java:LetType_EditorBuilder_a.java:Let_Editor.java:Let_EditorBuilder_a.java:Match_Editor.java:Match_EditorBuilder_a.java:ModuleElemDef_Editor.java:ModuleElemDef_EditorBuilder_a.java:ModuleElemEmpty_SubstituteMenu.java:ModuleImport_Editor.java:ModuleImport_EditorBuilder_a.java:Module_Editor.java:Module_EditorBuilder_a.java:Mult_Editor.java:Mult_EditorBuilder_a.java:Nat_Editor.java:Nat_EditorBuilder_a.java:ParensTerm_Editor.java:ParensTerm_EditorBuilder_a.java:ParensType_Editor.java:ParensType_EditorBuilder_a.java:Succ_Editor.java:Succ_EditorBuilder_a.java:Tag_Editor.java:Tag_EditorBuilder_a.java:TypeVar_Editor.java:TypeVar_EditorBuilder_a.java:UnitType_Editor.java:UnitType_EditorBuilder_a.java:Var_Editor.java:Var_EditorBuilder_a.java:VariantTypeEntry_Editor.java:VariantTypeEntry_EditorBuilder_a.java:VariantType_Editor.java:VariantType_EditorBuilder_a.java:Zero_Editor.java:Zero_EditorBuilder_a.java:template_GrammarCellsSideTransformationsMenu.java" />
<product version="3" modelHash="7ee9xvnhord90wp8apfuhkscgg6hmao">
<files names="Add_Editor.java:Add_EditorBuilder_a.java:Anno_Editor.java:Anno_EditorBuilder_a.java:App_Editor.java:App_EditorBuilder_a.java:Case_Editor.java:Case_EditorBuilder_a.java:EditorAspectDescriptorImpl.java:Fun_Editor.java:Fun_EditorBuilder_a.java:GrammarActionsDescriptor.java:GrammarCellsSubstituteMenu_Add.java:GrammarCellsSubstituteMenu_Anno.java:GrammarCellsSubstituteMenu_App.java:GrammarCellsSubstituteMenu_Case.java:GrammarCellsSubstituteMenu_Fun.java:GrammarCellsSubstituteMenu_IModuleElem.java:GrammarCellsSubstituteMenu_Lam.java:GrammarCellsSubstituteMenu_Let.java:GrammarCellsSubstituteMenu_LetType.java:GrammarCellsSubstituteMenu_Match.java:GrammarCellsSubstituteMenu_Module.java:GrammarCellsSubstituteMenu_ModuleElemDef.java:GrammarCellsSubstituteMenu_ModuleElemEmpty.java:GrammarCellsSubstituteMenu_ModuleImport.java:GrammarCellsSubstituteMenu_Mult.java:GrammarCellsSubstituteMenu_Nat.java:GrammarCellsSubstituteMenu_ParensTerm.java:GrammarCellsSubstituteMenu_ParensType.java:GrammarCellsSubstituteMenu_Succ.java:GrammarCellsSubstituteMenu_Tag.java:GrammarCellsSubstituteMenu_Term.java:GrammarCellsSubstituteMenu_Type.java:GrammarCellsSubstituteMenu_TypeVar.java:GrammarCellsSubstituteMenu_UnitTerm.java:GrammarCellsSubstituteMenu_UnitType.java:GrammarCellsSubstituteMenu_Var.java:GrammarCellsSubstituteMenu_VariantType.java:GrammarCellsSubstituteMenu_VariantTypeEntry.java:GrammarCellsSubstituteMenu_Zero.java:Lam_Editor.java:Lam_EditorBuilder_a.java:LetType_Editor.java:LetType_EditorBuilder_a.java:Let_Editor.java:Let_EditorBuilder_a.java:Match_Editor.java:Match_EditorBuilder_a.java:ModuleElemDef_Editor.java:ModuleElemDef_EditorBuilder_a.java:ModuleElemEmpty_SubstituteMenu.java:ModuleImport_Editor.java:ModuleImport_EditorBuilder_a.java:Module_Editor.java:Module_EditorBuilder_a.java:Mult_Editor.java:Mult_EditorBuilder_a.java:Nat_Editor.java:Nat_EditorBuilder_a.java:ParensTerm_Editor.java:ParensTerm_EditorBuilder_a.java:ParensType_Editor.java:ParensType_EditorBuilder_a.java:Succ_Editor.java:Succ_EditorBuilder_a.java:Tag_Editor.java:Tag_EditorBuilder_a.java:TypeVar_Editor.java:TypeVar_EditorBuilder_a.java:UnitTerm_Editor.java:UnitTerm_EditorBuilder_a.java:UnitType_Editor.java:UnitType_EditorBuilder_a.java:Var_Editor.java:Var_EditorBuilder_a.java:VariantTypeEntry_Editor.java:VariantTypeEntry_EditorBuilder_a.java:VariantType_Editor.java:VariantType_EditorBuilder_a.java:Zero_Editor.java:Zero_EditorBuilder_a.java:template_GrammarCellsSideTransformationsMenu.java" />
</product>
<?xml version="1.0" encoding="UTF-8"?>
<product version="3" modelHash="e70j5gmxiye4aart33v3pnd50wns9wk">
<product version="3" modelHash="-aiary2y1quar5v7z08gm245a1yjju6j">
<files names="Language.java" />
</product>
<?xml version="1.0" encoding="UTF-8"?>
<product version="3" modelHash="-53ensqckq49c0wc9ne5czqhxmtcmbkt">
<product version="3" modelHash="-b8duzatn7b155dta7d00w0hjek1eikt">
<files names="ConceptPresentationAspectImpl.java:LanguageConceptSwitch.java:StructureAspectDescriptor.java" />
</product>
package FORecursiveTypes.editor;
/*Generated by MPS */
import jetbrains.mps.nodeEditor.menus.substitute.SubstituteMenuBase;
import org.jetbrains.annotations.NotNull;
import java.util.List;
import jetbrains.mps.lang.editor.menus.MenuPart;
import jetbrains.mps.openapi.editor.menus.substitute.SubstituteMenuItem;
import jetbrains.mps.openapi.editor.menus.substitute.SubstituteMenuContext;
import java.util.ArrayList;
import jetbrains.mps.lang.editor.menus.EditorMenuDescriptorBase;
import com.mbeddr.mpsutil.grammarcells.runtime.menu.GrammarCellsSubstituteMenuPart;
import org.jetbrains.mps.openapi.module.SModule;
import org.jetbrains.mps.openapi.module.SRepository;
import org.jetbrains.mps.openapi.persistence.PersistenceFacade;
import org.jetbrains.mps.openapi.language.SAbstractConcept;
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
public class GrammarCellsSubstituteMenu_UnitTerm extends SubstituteMenuBase {
public GrammarCellsSubstituteMenu_UnitTerm() {
super(true);
}
@NotNull
@Override
protected List<MenuPart<SubstituteMenuItem, SubstituteMenuContext>> getParts(final SubstituteMenuContext _context) {
List<MenuPart<SubstituteMenuItem, SubstituteMenuContext>> result = new ArrayList<MenuPart<SubstituteMenuItem, SubstituteMenuContext>>();
result.add(new GrammarCellsSubstituteMenu_UnitTerm.GrammarCellsSubstituteMenuPart_f5wgwm_a());
return result;
}
@NotNull
@Override
public List<SubstituteMenuItem> createMenuItems(@NotNull SubstituteMenuContext context) {
context.getEditorMenuTrace().pushTraceInfo();
context.getEditorMenuTrace().setDescriptor(new EditorMenuDescriptorBase("contribution to the " + "default substitute menu for " + "UnitTerm", null));
try {
return super.createMenuItems(context);
} finally {
context.getEditorMenuTrace().popTraceInfo();
}
}
private class GrammarCellsSubstituteMenuPart_f5wgwm_a extends GrammarCellsSubstituteMenuPart {
@Override
public SModule getModule(SRepository repository) {
return PersistenceFacade.getInstance().createModuleReference("83519d5a-e8d8-40b1-b958-7bbbda82ff24(FORecursiveTypes)").resolve(repository);
}
@Override
public SAbstractConcept getExpectedOutputConcept() {
return MetaAdapterFactory.getConcept(0x83519d5ae8d840b1L, 0xb9587bbbda82ff24L, 0x6f77e67233794384L, "FORecursiveTypes.structure.UnitTerm");
}
}
}
package FORecursiveTypes.editor;
/*Generated by MPS */
import jetbrains.mps.nodeEditor.DefaultNodeEditor;
import jetbrains.mps.openapi.editor.cells.EditorCell;
import jetbrains.mps.openapi.editor.EditorContext;
import org.jetbrains.mps.openapi.model.SNode;
public class UnitTerm_Editor extends DefaultNodeEditor {
public EditorCell createEditorCell(EditorContext editorContext, SNode node) {
return new UnitTerm_EditorBuilder_a(editorContext, node).createCell();
}
}
package FORecursiveTypes.editor;
/*Generated by MPS */
import jetbrains.mps.editor.runtime.descriptor.AbstractEditorBuilder;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.mps.openapi.model.SNode;
import jetbrains.mps.openapi.editor.EditorContext;
import jetbrains.mps.openapi.editor.cells.EditorCell;
import jetbrains.mps.nodeEditor.cells.EditorCell_Constant;
/*package*/ class UnitTerm_EditorBuilder_a extends AbstractEditorBuilder {
@NotNull
private SNode myNode;
public UnitTerm_EditorBuilder_a(@NotNull EditorContext context, @NotNull SNode node) {
super(context);
myNode = node;
}
@NotNull
@Override
public SNode getNode() {
return myNode;
}
/*package*/ EditorCell createCell() {
return createConstant_0();
}
private EditorCell createConstant_0() {
EditorCell_Constant editorCell = new EditorCell_Constant(getEditorContext(), myNode, "unit");
editorCell.setCellId("Constant_sj0f9a_a");
editorCell.setBig(true);
setCellContext(editorCell);
editorCell.setDefaultText("");
return editorCell;
}
}
......@@ -15,7 +15,7 @@
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1153952380246:jetbrains.mps.baseLanguage.structure.TryStatement" />
<root>
<file name="EditorAspectDescriptorImpl.java">
<unit at="18,0,158,0" name="FORecursiveTypes.editor.EditorAspectDescriptorImpl" />
<unit at="18,0,162,0" name="FORecursiveTypes.editor.EditorAspectDescriptorImpl" />
</file>
<file name="GrammarActionsDescriptor.java">
<unit at="858,51,862,5" name="FORecursiveTypes.editor.GrammarActionsDescriptor$12" />
......@@ -159,6 +159,10 @@
<unit at="45,0,55,0" name="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_TypeVar$GrammarCellsSubstituteMenuPart_nasubc_a" />
<unit at="20,0,56,0" name="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_TypeVar" />
</file>
<file name="GrammarCellsSubstituteMenu_UnitTerm.java">
<unit at="45,0,55,0" name="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_UnitTerm$GrammarCellsSubstituteMenuPart_f5wgwm_a" />
<unit at="20,0,56,0" name="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_UnitTerm" />
</file>
<file name="GrammarCellsSubstituteMenu_UnitType.java">
<unit at="45,0,55,0" name="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_UnitType$GrammarCellsSubstituteMenuPart_f5woal_a" />
<unit at="20,0,56,0" name="FORecursiveTypes.editor.GrammarCellsSubstituteMenu_UnitType" />
......@@ -8000,5 +8004,48 @@
<unit id="8032141838602455031" at="48,0,544,0" name="FORecursiveTypes.editor.LetType_EditorBuilder_a" />
</file>
</root>
<root nodeRef="r:e04d5d3a-ed4c-4c4e-9fd2-08a19036ac61(FORecursiveTypes.editor)/8032141838602814370">
<file name="UnitTerm_Editor.java">
<node id="8032141838602814370" at="11,79,12,74" concept="8" />
<node id="8032141838602814370" at="11,0,14,0" concept="6" trace="createEditorCell#(Ljetbrains/mps/openapi/editor/EditorContext;Lorg/jetbrains/mps/openapi/model/SNode;)Ljetbrains/mps/openapi/editor/cells/EditorCell;" />
<scope id="8032141838602814370" at="11,79,12,74" />
<scope id="8032141838602814370" at="11,0,14,0">
<var name="editorContext" id="8032141838602814370" />
<var name="node" id="8032141838602814370" />
</scope>
<unit id="8032141838602814370" at="10,0,15,0" name="FORecursiveTypes.editor.UnitTerm_Editor" />
</file>
<file name="UnitTerm_EditorBuilder_a.java">
<node id="8032141838602814370" at="16,88,17,19" concept="11" />
<node id="8032141838602814370" at="17,19,18,18" concept="2" />
<node id="8032141838602814370" at="23,26,24,18" concept="8" />
<node id="8032141838602814370" at="27,39,28,30" concept="8" />
<node id="8032141838602814372" at="31,41,32,97" concept="7" />
<node id="8032141838602814372" at="32,97,33,46" concept="2" />
<node id="8032141838602814372" at="33,46,34,28" concept="2" />
<node id="8032141838602814372" at="34,28,35,31" concept="2" />
<node id="8032141838602814372" at="35,31,36,34" concept="2" />
<node id="8032141838602814372" at="36,34,37,22" concept="8" />
<node id="8032141838602814370" at="13,0,15,0" concept="3" trace="myNode" />
<node id="8032141838602814370" at="27,0,30,0" concept="6" trace="createCell#()Ljetbrains/mps/openapi/editor/cells/EditorCell;" />
<node id="8032141838602814370" at="16,0,20,0" concept="1" trace="UnitTerm_EditorBuilder_a#(Ljetbrains/mps/openapi/editor/EditorContext;Lorg/jetbrains/mps/openapi/model/SNode;)V" />
<node id="8032141838602814370" at="21,0,26,0" concept="6" trace="getNode#()Lorg/jetbrains/mps/openapi/model/SNode;" />
<node id="8032141838602814372" at="31,0,39,0" concept="6" trace="createConstant_0#()Ljetbrains/mps/openapi/editor/cells/EditorCell;" />
<scope id="8032141838602814370" at="23,26,24,18" />
<scope id="8032141838602814370" at="27,39,28,30" />
<scope id="8032141838602814370" at="16,88,18,18" />
<scope id="8032141838602814370" at="27,0,30,0" />
<scope id="8032141838602814370" at="16,0,20,0">
<var name="context" id="8032141838602814370" />
<var name="node" id="8032141838602814370" />
</scope>
<scope id="8032141838602814370" at="21,0,26,0" />
<scope id="8032141838602814372" at="31,41,37,22">
<var name="editorCell" id="8032141838602814372" />
</scope>
<scope id="8032141838602814372" at="31,0,39,0" />
<unit id="8032141838602814370" at="12,0,40,0" name="FORecursiveTypes.editor.UnitTerm_EditorBuilder_a" />
</file>
</root>
</debug-info>
......@@ -32,6 +32,7 @@ public class ConceptPresentationAspectImpl extends ConceptPresentationAspectBase
private ConceptPresentation props_Term;
private ConceptPresentation props_Type;
private ConceptPresentation props_TypeVar;
private ConceptPresentation props_UnitTerm;
private ConceptPresentation props_UnitType;
private ConceptPresentation props_Var;
private ConceptPresentation props_VariantType;
......@@ -201,6 +202,13 @@ public class ConceptPresentationAspectImpl extends ConceptPresentationAspectBase
props_TypeVar = cpb.create();
}
return props_TypeVar;
case LanguageConceptSwitch.UnitTerm:
if (props_UnitTerm == null) {
ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
cpb.rawPresentation("UnitTerm");
props_UnitTerm = cpb.create();
}
return props_UnitTerm;
case LanguageConceptSwitch.UnitType:
if (props_UnitType == null) {
ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
......
......@@ -32,11 +32,12 @@ public final class LanguageConceptSwitch {
public static final int Term = 20;
public static final int Type = 21;
public static final int TypeVar = 22;
public static final int UnitType = 23;
public static final int Var = 24;
public static final int VariantType = 25;
public static final int VariantTypeEntry = 26;
public static final int Zero = 27;
public static final int UnitTerm = 23;
public static final int UnitType = 24;
public static final int Var = 25;
public static final int VariantType = 26;
public static final int VariantTypeEntry = 27;
public static final int Zero = 28;
public LanguageConceptSwitch() {
LanguageConceptIndexBuilder builder = new LanguageConceptIndexBuilder(0x83519d5ae8d840b1L, 0xb9587bbbda82ff24L);
......@@ -63,6 +64,7 @@ public final class LanguageConceptSwitch {
builder.put(0x1a4a252762eb92d1L, Term);
builder.put(0x1a4a252762eb938fL, Type);
builder.put(0x1bed4182f53cde9eL, TypeVar);
builder.put(0x6f77e67233794384L, UnitTerm);
builder.put(0x1bed4182f53cde79L, UnitType);
builder.put(0x1a4a252762eb92e0L, Var);
builder.put(0x1fd8e2cf9df802c6L, VariantType);
......
......@@ -37,6 +37,7 @@ public class StructureAspectDescriptor extends BaseStructureAspectDescriptor {
/*package*/ final ConceptDescriptor myConceptTerm = createDescriptorForTerm();
/*package*/ final ConceptDescriptor myConceptType = createDescriptorForType();
/*package*/ final ConceptDescriptor myConceptTypeVar = createDescriptorForTypeVar();
/*package*/ final ConceptDescriptor myConceptUnitTerm = createDescriptorForUnitTerm();
/*package*/ final ConceptDescriptor myConceptUnitType = createDescriptorForUnitType();
/*package*/ final ConceptDescriptor myConceptVar = createDescriptorForVar();
/*package*/ final ConceptDescriptor myConceptVariantType = createDescriptorForVariantType();
......@@ -50,7 +51,7 @@ public class StructureAspectDescriptor extends BaseStructureAspectDescriptor {
@Override
public Collection<ConceptDescriptor> getDescriptors() {
return Arrays.asList(myConceptAdd, myConceptAnno, myConceptApp, myConceptCase, myConceptFun, myConceptIModuleElem, myConceptLam, myConceptLet, myConceptLetType, myConceptMatch, myConceptModule, myConceptModuleElemDef, myConceptModuleElemEmpty, myConceptModuleImport, myConceptMult, myConceptNat, myConceptParensTerm, myConceptParensType, myConceptSucc, myConceptTag, myConceptTerm, myConceptType, myConceptTypeVar, myConceptUnitType, myConceptVar, myConceptVariantType, myConceptVariantTypeEntry, myConceptZero);
return Arrays.asList(myConceptAdd, myConceptAnno, myConceptApp, myConceptCase, myConceptFun, myConceptIModuleElem, myConceptLam, myConceptLet, myConceptLetType, myConceptMatch, myConceptModule, myConceptModuleElemDef, myConceptModuleElemEmpty, myConceptModuleImport, myConceptMult, myConceptNat, myConceptParensTerm, myConceptParensType, myConceptSucc, myConceptTag, myConceptTerm, myConceptType, myConceptTypeVar, myConceptUnitTerm, myConceptUnitType, myConceptVar, myConceptVariantType, myConceptVariantTypeEntry, myConceptZero);
}
@Override
......@@ -103,6 +104,8 @@ public class StructureAspectDescriptor extends BaseStructureAspectDescriptor {
return myConceptType;
case LanguageConceptSwitch.TypeVar:
return myConceptTypeVar;
case LanguageConceptSwitch.UnitTerm:
return myConceptUnitTerm;
case LanguageConceptSwitch.UnitType:
return myConceptUnitType;
case LanguageConceptSwitch.Var:
......@@ -350,6 +353,14 @@ public class StructureAspectDescriptor extends BaseStructureAspectDescriptor {
b.version(2);
return b.create();
}
private static ConceptDescriptor createDescriptorForUnitTerm() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("FORecursiveTypes", "UnitTerm", 0x83519d5ae8d840b1L, 0xb9587bbbda82ff24L, 0x6f77e67233794384L);
b.class_(false, false, false);
b.parent(0x83519d5ae8d840b1L, 0xb9587bbbda82ff24L, 0x1a4a252762eb92d1L);
b.origin("r:dbbc3a30-e198-4dc0-ba2b-f425856d088c(FORecursiveTypes.structure)/8032141838602814340");
b.version(2);
return b.create();
}
private static ConceptDescriptor createDescriptorForUnitType() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("FORecursiveTypes", "UnitType", 0x83519d5ae8d840b1L, 0xb9587bbbda82ff24L, 0x1bed4182f53cde79L);
b.class_(false, false, false);
......
<?xml version="1.0" encoding="UTF-8"?>
<solution name="FORecursiveTypes_Checker" uuid="4276cf47-3060-473e-8d40-b29f5ff29cba" moduleVersion="0" compileInMPS="true">
<models>
<modelRoot contentPath="${module}" type="default">
<sourceRoot location="models" />
</modelRoot>
</models>
<sourcePath />
<dependencies>
<dependency reexport="false">b802a056-92a2-4fbc-902e-f8e5004c331f(org.inca.core)</dependency>
<dependency reexport="false">e6d2ffd5-9c56-41f8-99ac-9d1ceb13daa2(org.inca.data)</dependency>
<dependency reexport="false">3a1c1f85-c745-4d04-a210-f97a7e31f9cc(org.inca.extensions)</dependency>
<dependency reexport="false">cd2909da-ecb4-49dc-b176-33e5c619e516(org.inca.gp)</dependency>
<dependency reexport="false">83519d5a-e8d8-40b1-b958-7bbbda82ff24(FORecursiveTypes)</dependency>
<dependency reexport="false">7766a138-716a-422a-9c88-131459fb8d6a(org.inca.core.runtime)</dependency>
</dependencies>
<languageVersions>
<language slang="l:83519d5a-e8d8-40b1-b958-7bbbda82ff24:FORecursiveTypes" version="0" />
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="8" />
<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="1" />
<language slang="l:f2801650-65d5-424e-bb1b-463a8781b786:jetbrains.mps.baseLanguage.javadoc" version="2" />
<language slang="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" version="1" />
<language slang="l:446c26eb-2b7b-4bf0-9b35-f83fa582753e:jetbrains.mps.lang.modelapi" version="0" />
<language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="13" />
<language slang="l:c72da2b9-7cce-4447-8389-f407dc1158b7:jetbrains.mps.lang.structure" version="7" />
<language slang="l:9ded098b-ad6a-4657-bfd9-48636cfe8bc3:jetbrains.mps.lang.traceable" version="0" />
<language slang="l:b802a056-92a2-4fbc-902e-f8e5004c331f:org.inca.core" version="0" />
<language slang="l:e6d2ffd5-9c56-41f8-99ac-9d1ceb13daa2:org.inca.data" version="2" />
<language slang="l:3a1c1f85-c745-4d04-a210-f97a7e31f9cc:org.inca.extensions" version="0" />
<language slang="l:8c9a2720-9d21-4370-a226-819eb3e76e1e:org.inca.fun" version="0" />
<language slang="l:cd2909da-ecb4-49dc-b176-33e5c619e516:org.inca.gp" version="0" />
</languageVersions>
<dependencyVersions>
<module reference="3f233e7f-b8a6-46d2-a57f-795d56775243(Annotations)" version="0" />
<module reference="83519d5a-e8d8-40b1-b958-7bbbda82ff24(FORecursiveTypes)" version="0" />
<module reference="4276cf47-3060-473e-8d40-b29f5ff29cba(FORecursiveTypes_Checker)" 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="1ed103c3-3aa6-49b7-9c21-6765ee11f224(MPS.Editor)" version="0" />
<module reference="498d89d2-c2e9-11e2-ad49-6cf049e62fe5(MPS.IDEA)" version="0" />
<module reference="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" version="0" />
<module reference="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61(MPS.Platform)" version="0" />
<module reference="f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)" version="0" />
<module reference="fd392034-7849-419d-9071-12563d152375(jetbrains.mps.baseLanguage.closures)" version="0" />
<module reference="83888646-71ce-4f1c-9c53-c54016f6ad4f(jetbrains.mps.baseLanguage.collections)" version="0" />
<module reference="f2801650-65d5-424e-bb1b-463a8781b786(jetbrains.mps.baseLanguage.javadoc)" version="0" />
<module reference="e39e4a59-8cb6-498e-860e-8fa8361c0d90(jetbrains.mps.baseLanguage.scopes)" version="0" />
<module reference="2d3c70e9-aab2-4870-8d8d-6036800e4103(jetbrains.mps.kernel)" version="0" />
<module reference="d936855b-48da-4812-a8a0-2bfddd633ac5(jetbrains.mps.lang.behavior.api)" version="0" />
<module reference="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" version="0" />
<module reference="446c26eb-2b7b-4bf0-9b35-f83fa582753e(jetbrains.mps.lang.modelapi)" version="0" />
<module reference="7866978e-a0f0-4cc7-81bc-4d213d9375e1(jetbrains.mps.lang.smodel)" version="1" />
<module reference="c72da2b9-7cce-4447-8389-f407dc1158b7(jetbrains.mps.lang.structure)" version="0" />
<module reference="9ded098b-ad6a-4657-bfd9-48636cfe8bc3(jetbrains.mps.lang.traceable)" version="0" />
<module reference="b802a056-92a2-4fbc-902e-f8e5004c331f(org.inca.core)" version="0" />
<module reference="7766a138-716a-422a-9c88-131459fb8d6a(org.inca.core.runtime)" version="0" />
<module reference="bc791f96-4749-4311-a6e4-241e47ca97f9(org.inca.core.util)" version="0" />
<module reference="e6d2ffd5-9c56-41f8-99ac-9d1ceb13daa2(org.inca.data)" version="0" />
<module reference="3a1c1f85-c745-4d04-a210-f97a7e31f9cc(org.inca.extensions)" version="0" />
<module reference="8c9a2720-9d21-4370-a226-819eb3e76e1e(org.inca.fun)" version="0" />
<module reference="cd2909da-ecb4-49dc-b176-33e5c619e516(org.inca.gp)" version="0" />
</dependencyVersions>
</solution>
<?xml version="1.0" encoding="UTF-8"?>
<product version="3" modelHash="ebaj2hta10rjdmlg0ugx3pp9hhdnm81">
<files names="AnalysisResultAccess.java:ConstantDefinitions.java:LType.java:LTypeVariant.java:QuerySpecificationHints.java:Typing_AsLTypeQuerySpecification.java:Typing_AsLTypeVariantQuerySpecification.java:Typing_AsLTypeVariant_0_switchCommonQuerySpecification.java:Typing_AsLTypeVariant_WrappedQuerySpecification.java:Typing_AsLType_0_switchCommonQuerySpecification.java:Typing_CheckErrorQuerySpecification.java:Typing_CheckQuerySpecification.java:Typing_Check_0_switchCommonQuerySpecification.java:Typing_InferQuerySpecification.java:Typing_Infer_0_switchCommonQuerySpecification.java:Typing_Infer_WrappedQuerySpecification.java:Typing_LookupCaseConditionQuerySpecification.java:Typing_LookupFailureQuerySpecification.java:Typing_LookupFailure_0_switchCommonQuerySpecification.java:Typing_LookupQuerySpecification.java:Typing_LookupTypeVarFailureQuerySpecification.java:Typing_LookupTypeVarQuerySpecification.java:Typing_LookupTypeVar_0_switchCommonQuerySpecification.java:Typing_Lookup_0_switchCommonQuerySpecification.java:Typing_MatchFunFailureQuerySpecification.java:Typing_MatchFunFailure_0_switchCommonQuerySpecification.java:Typing_MatchVariantFailureQuerySpecification.java:Typing_MatchVariantFailure_0_switchCommonQuerySpecification.java:Typing_RequiredQuerySpecification.java:Typing_Required_0_switchCommonQuerySpecification.java" />
</product>
package FORecursiveTypes_Checker.model;
/*Generated by MPS */
@SuppressWarnings("all")
public final class ConstantDefinitions {
}
package FORecursiveTypes_Checker.model;
/*Generated by MPS */
import org.inca.core.runtime.plugin.MPSQuerySpecificationHints;
import java.util.Set;
import org.jetbrains.mps.openapi.language.SAbstractConcept;
import org.jetbrains.mps.openapi.language.SDataType;
import org.jetbrains.mps.openapi.language.SConceptFeature;
import org.jetbrains.mps.openapi.language.SLanguage;
import java.util.Map;
import java.util.HashSet;
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
import org.inca.core.runtime.plugin.UniqueDataType;
import java.util.HashMap;
import jetbrains.mps.internal.collections.runtime.SetSequence;
@SuppressWarnings("all")
public final class QuerySpecificationHints extends MPSQuerySpecificationHints {
private Set<SAbstractConcept> concepts;
private Set<SDataType> dataTypes;
private Set<SConceptFeature> conceptFeatures;
private Set<SLanguage> languages;
private Map<SConceptFeature, Set<String>> evalCache;
private QuerySpecificationHints() {
this.concepts = new HashSet<SAbstractConcept>();
this.concepts.add(MetaAdapterFactory.getConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x10802efe25aL, "jetbrains.mps.lang.core.structure.BaseConcept"));
this.dataTypes = new HashSet<SDataType>();
this.dataTypes.add(UniqueDataType.from("jetbrains.mps.lang.core.structure.string"));
this.dataTypes.add(UniqueDataType.from("jetbrains.mps.lang.core.structure.integer"));
this.conceptFeatures = new HashSet<SConceptFeature>();
this.conceptFeatures.add(MetaAdapterFactory.getProperty(0x83519d5ae8d840b1L, 0xb9587bbbda82ff24L, 0x9229981a3b8f721L, 0x9229981a3b8f72aL, "name"));
this.conceptFeatures.add(MetaAdapterFactory.getProperty(0x83519d5ae8d840b1L, 0xb9587bbbda82ff24L, 0x9229981a3b8f721L, 0x9229981a3b8f726L, "label"));
this.conceptFeatures.add(MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name"));
</