From dd41e08381652df9504c63c12ce40225838e2e15 Mon Sep 17 00:00:00 2001 From: Fedor Isakov Date: Tue, 7 Feb 2017 17:18:48 +0100 Subject: [PATCH] New feature: specify stage for a handler, produce multiple programs from the typechecking model. Stages are specified as strings. --- .../languageModels/structure.mps | 10 +- .../samplechecker/test/type@tests.mps | 8 +- .../lang/typesystem2/sampleplugin/plugin.mps | 176 ++-- .../generator/template/main@generator.mps | 760 +++++++++++++----- .../languageModels/actions.mps | 63 +- .../languageModels/editor.mps | 219 ++++- .../languageModels/intentions.mps | 361 +++++++++ .../languageModels/structure.mps | 90 ++- .../languageModels/typesystem.mps | 2 +- .../mps/lang/typesystem2/program.mps | 8 +- .../mps/lang/typesystem2/typechecking.mps | 715 +++++++--------- .../jetbrains/mps/lang/typesystem2/aspect.mps | 4 +- .../mps/lang/typesystem2/template.mps | 47 +- .../lang/typesystem2/typechecking@tests.mps | 31 +- 14 files changed, 1635 insertions(+), 859 deletions(-) diff --git a/logic/languages/jetbrains.mps.logic/languageModels/structure.mps b/logic/languages/jetbrains.mps.logic/languageModels/structure.mps index 928fad50..09b0bdbf 100644 --- a/logic/languages/jetbrains.mps.logic/languageModels/structure.mps +++ b/logic/languages/jetbrains.mps.logic/languageModels/structure.mps @@ -222,7 +222,7 @@ - + @@ -232,7 +232,7 @@ - + @@ -244,7 +244,7 @@ - + @@ -382,7 +382,7 @@ - + @@ -395,7 +395,7 @@ - + diff --git a/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.test/models/jetbrains/mps/lang/typesystem2/samplechecker/test/type@tests.mps b/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.test/models/jetbrains/mps/lang/typesystem2/samplechecker/test/type@tests.mps index 20e7e1b9..f303e764 100644 --- a/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.test/models/jetbrains/mps/lang/typesystem2/samplechecker/test/type@tests.mps +++ b/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.test/models/jetbrains/mps/lang/typesystem2/samplechecker/test/type@tests.mps @@ -206,7 +206,7 @@ - + @@ -235,11 +235,11 @@ - + - + @@ -288,7 +288,7 @@ - + diff --git a/typechecking/solutions/jetbrains.mps.lang.typesystem2.sampleplugin/models/jetbrains/mps/lang/typesystem2/sampleplugin/plugin.mps b/typechecking/solutions/jetbrains.mps.lang.typesystem2.sampleplugin/models/jetbrains/mps/lang/typesystem2/sampleplugin/plugin.mps index 82e90901..92e43fd3 100644 --- a/typechecking/solutions/jetbrains.mps.lang.typesystem2.sampleplugin/models/jetbrains/mps/lang/typesystem2/sampleplugin/plugin.mps +++ b/typechecking/solutions/jetbrains.mps.lang.typesystem2.sampleplugin/models/jetbrains/mps/lang/typesystem2/sampleplugin/plugin.mps @@ -539,7 +539,6 @@ - @@ -4867,15 +4866,23 @@ + + + + + - - - - - - + + + + + + + + + @@ -5055,20 +5062,42 @@ - - - - + + + + + + - - - - - + + + + + - - + + + + + + + + + + + + + + + + + + + + + + @@ -5086,30 +5115,22 @@ - - - - - - - - - + - + @@ -5207,13 +5228,13 @@ - + - + @@ -5972,10 +5993,10 @@ - + - - + + @@ -6044,16 +6065,16 @@ - - - + + + - + @@ -6115,13 +6136,8 @@ - - - - - - - + + @@ -28399,10 +28415,10 @@ - - - - + + + + @@ -28414,19 +28430,6 @@ - - - - - - - - - - - - - @@ -28440,6 +28443,19 @@ + + + + + + + + + + + + + @@ -28606,13 +28622,8 @@ - - - - - - - + + @@ -28646,13 +28657,6 @@ - - - - - - - @@ -28660,6 +28664,13 @@ + + + + + + + @@ -28924,13 +28935,16 @@ - - - - - - + + + + + + + + + diff --git a/typesystem2/languages/jetbrains.mps.lang.typesystem2/generator/template/main@generator.mps b/typesystem2/languages/jetbrains.mps.lang.typesystem2/generator/template/main@generator.mps index 83faea2f..25470e50 100644 --- a/typesystem2/languages/jetbrains.mps.lang.typesystem2/generator/template/main@generator.mps +++ b/typesystem2/languages/jetbrains.mps.lang.typesystem2/generator/template/main@generator.mps @@ -304,6 +304,7 @@ + @@ -1425,6 +1426,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2425,13 +2492,13 @@ - - - - - - - + + + + + + + @@ -2439,34 +2506,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + @@ -2474,25 +2522,6 @@ - - - - - - - - - - - - - - - - - - - @@ -2512,28 +2541,18 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + - - - + @@ -2553,21 +2572,11 @@ - - - - - - - - - - - - - - - + + + + + @@ -3929,11 +3938,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -4112,7 +4317,7 @@ - + @@ -5477,14 +5682,14 @@ - - - - - - - - + + + + + + + + @@ -5492,34 +5697,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + @@ -5527,141 +5713,102 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - + - - - - - - - - - - - - - - - - - + + + + + + + + + - - - + - - - - - + + + + + - + - - - - - - - - - - - - - - - - + + + + + + - - - - - - + + + + + + - - - - + + + + - + - - - - - - - - + + + + + + + + - - + + @@ -5671,6 +5818,7 @@ + @@ -7150,7 +7298,7 @@ - + @@ -7173,7 +7321,7 @@ - + @@ -7197,7 +7345,7 @@ - + @@ -14939,7 +15087,7 @@ - + @@ -15140,7 +15288,7 @@ - + @@ -15220,7 +15368,7 @@ - + @@ -21352,6 +21500,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -21665,5 +21861,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/actions.mps b/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/actions.mps index b08342ca..f8084f49 100644 --- a/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/actions.mps +++ b/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/actions.mps @@ -261,67 +261,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -370,7 +309,7 @@ - + diff --git a/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/editor.mps b/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/editor.mps index 4dae0b9e..157acd1b 100644 --- a/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/editor.mps +++ b/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/editor.mps @@ -225,6 +225,7 @@ + @@ -891,16 +892,8 @@ - - - - - - - - - + @@ -983,16 +976,8 @@ - - - - - - - - - + @@ -1002,6 +987,11 @@ + + + + + @@ -1060,21 +1050,14 @@ - - - - - - - - - + + @@ -1416,7 +1399,7 @@ - + @@ -2515,7 +2498,7 @@ - + @@ -2532,8 +2515,65 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3992,6 +4032,7 @@ + @@ -5133,7 +5174,7 @@ - + @@ -5690,5 +5731,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/intentions.mps b/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/intentions.mps index 5fa3972e..e34445df 100644 --- a/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/intentions.mps +++ b/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/intentions.mps @@ -17,6 +17,7 @@ + @@ -24,6 +25,10 @@ + + + + @@ -57,10 +62,19 @@ + + + + + + + + + @@ -69,6 +83,12 @@ + + + + + + @@ -76,6 +96,7 @@ + @@ -92,10 +113,19 @@ + + + + + + + + + @@ -118,6 +148,7 @@ + @@ -127,6 +158,9 @@ + + + @@ -137,6 +171,17 @@ + + + + + + + + + + + @@ -314,5 +359,321 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/structure.mps b/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/structure.mps index f1490ca8..c9d6b1a2 100644 --- a/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/structure.mps +++ b/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/structure.mps @@ -74,6 +74,11 @@ + + + + + @@ -138,7 +143,7 @@ - + @@ -152,6 +157,12 @@ + + + + + + @@ -179,6 +190,7 @@ + @@ -213,7 +225,7 @@ - + @@ -296,14 +308,14 @@ - + - + @@ -312,10 +324,10 @@ - + - + @@ -336,7 +348,7 @@ - + @@ -470,7 +482,7 @@ - + @@ -1126,7 +1138,7 @@ - + @@ -1395,5 +1407,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/typesystem.mps b/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/typesystem.mps index 606ff606..ef7bbe1e 100644 --- a/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/typesystem.mps +++ b/typesystem2/languages/jetbrains.mps.lang.typesystem2/languageModels/typesystem.mps @@ -978,7 +978,7 @@ - + diff --git a/typesystem2/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/program.mps b/typesystem2/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/program.mps index 937dfbb2..467b09da 100644 --- a/typesystem2/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/program.mps +++ b/typesystem2/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/program.mps @@ -2909,7 +2909,7 @@ - + @@ -3409,7 +3409,7 @@ - + @@ -3596,7 +3596,7 @@ - + @@ -4607,7 +4607,7 @@ - + diff --git a/typesystem2/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/typechecking.mps b/typesystem2/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/typechecking.mps index 69b0ae47..80703258 100644 --- a/typesystem2/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/typechecking.mps +++ b/typesystem2/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/typechecking.mps @@ -445,6 +445,7 @@ + @@ -2944,7 +2945,7 @@ - + @@ -5572,7 +5573,7 @@ - + @@ -5647,36 +5648,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -5816,223 +5787,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -6046,11 +5800,10 @@ - + - @@ -6174,22 +5927,6 @@ - - - - - - - - - - - - - - - - @@ -6206,7 +5943,23 @@ - + + + + + + + + + + + + + + + + + @@ -6227,7 +5980,7 @@ - + @@ -6253,113 +6006,193 @@ - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -6373,15 +6206,17 @@ - - - + + + + + - + @@ -6402,30 +6237,56 @@ - - - - + + + + - - - - - + + + + + - + + + + + + + + + + + + + + + + + + - + - - + + + + + + + + + + + @@ -6434,11 +6295,27 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -8092,6 +7969,11 @@ + + + + + @@ -8101,13 +7983,16 @@ - - - - - - + + + + + + + + + @@ -8257,17 +8142,12 @@ - - - - - - - - + + + - - + + @@ -8410,27 +8290,29 @@ - - - - - + + + + + + + - - - - - + + + + + - - + + - + @@ -8940,9 +8822,11 @@ - - - + + + + + @@ -9058,13 +8942,8 @@ - - - - - - - + + diff --git a/typesystem2/solutions/jetbrains.mps.lang.typesystem2.template/models/jetbrains/mps/lang/typesystem2/aspect.mps b/typesystem2/solutions/jetbrains.mps.lang.typesystem2.template/models/jetbrains/mps/lang/typesystem2/aspect.mps index 01fde157..3a3e8f9d 100644 --- a/typesystem2/solutions/jetbrains.mps.lang.typesystem2.template/models/jetbrains/mps/lang/typesystem2/aspect.mps +++ b/typesystem2/solutions/jetbrains.mps.lang.typesystem2.template/models/jetbrains/mps/lang/typesystem2/aspect.mps @@ -290,7 +290,7 @@ - + @@ -482,7 +482,7 @@ - + diff --git a/typesystem2/solutions/jetbrains.mps.lang.typesystem2.template/models/jetbrains/mps/lang/typesystem2/template.mps b/typesystem2/solutions/jetbrains.mps.lang.typesystem2.template/models/jetbrains/mps/lang/typesystem2/template.mps index f4505ad3..d612db01 100644 --- a/typesystem2/solutions/jetbrains.mps.lang.typesystem2.template/models/jetbrains/mps/lang/typesystem2/template.mps +++ b/typesystem2/solutions/jetbrains.mps.lang.typesystem2.template/models/jetbrains/mps/lang/typesystem2/template.mps @@ -226,6 +226,9 @@ + + + @@ -462,11 +465,25 @@ + + + + + + + + + + + + + + - - + + @@ -2041,6 +2058,15 @@ + + + + + + + + + @@ -2067,5 +2093,22 @@ + + + + + + + + + + + + + + + + + diff --git a/typesystem2/solutions/jetbrains.mps.lang.typesystem2.test/models/jetbrains/mps/lang/typesystem2/typechecking@tests.mps b/typesystem2/solutions/jetbrains.mps.lang.typesystem2.test/models/jetbrains/mps/lang/typesystem2/typechecking@tests.mps index 5d752b61..ea45b47e 100644 --- a/typesystem2/solutions/jetbrains.mps.lang.typesystem2.test/models/jetbrains/mps/lang/typesystem2/typechecking@tests.mps +++ b/typesystem2/solutions/jetbrains.mps.lang.typesystem2.test/models/jetbrains/mps/lang/typesystem2/typechecking@tests.mps @@ -230,6 +230,7 @@ + @@ -701,13 +702,16 @@ - - - - - - + + + + + + + + + @@ -865,17 +869,12 @@ - - - - - - - - + + + - - + +