From 9bbcf6ecef94b8f2ce1934e68005bc80b0d313d1 Mon Sep 17 00:00:00 2001 From: Grigorii Kirgizov Date: Mon, 18 May 2020 16:30:48 +0300 Subject: [PATCH] Allow terms to inherit features from ancestor terms Avoides the need to exactly duplicate features of ancestors. Opens possibility to match on super-terms with partially provided (overriden) features. For example, suppose there's `typeParameterized(child: param)` term which is extended by `classifier` and `methodSignature`. Then it becomes possible to write a common rule for both terms, matching on `typeParameterized(param=[Smth])`. --- .../generator/template/main@generator.mps | 474 +++++++++--------- .../languageModels/behavior.mps | 7 +- .../languageModels/constraints.mps | 209 +++++++- 3 files changed, 444 insertions(+), 246 deletions(-) diff --git a/coderules/languages/jetbrains.mps.lang.coderules/generator/template/main@generator.mps b/coderules/languages/jetbrains.mps.lang.coderules/generator/template/main@generator.mps index eed43454..27e12a15 100644 --- a/coderules/languages/jetbrains.mps.lang.coderules/generator/template/main@generator.mps +++ b/coderules/languages/jetbrains.mps.lang.coderules/generator/template/main@generator.mps @@ -67,9 +67,6 @@ - - - @@ -379,7 +376,6 @@ - @@ -389,7 +385,6 @@ - @@ -399,7 +394,6 @@ - @@ -604,9 +598,6 @@ - - - @@ -724,7 +715,6 @@ - @@ -14720,15 +14710,37 @@ - - - - + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -14762,15 +14774,13 @@ - - - - + + @@ -14802,9 +14812,6 @@ - - - @@ -14821,6 +14828,9 @@ + + + @@ -15155,6 +15165,12 @@ + + + + + + @@ -15173,6 +15189,7 @@ + @@ -15193,210 +15210,30 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + + + + + + @@ -15404,10 +15241,191 @@ - + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/coderules/languages/jetbrains.mps.lang.coderules/languageModels/behavior.mps b/coderules/languages/jetbrains.mps.lang.coderules/languageModels/behavior.mps index 58ccbaa1..84e98b03 100644 --- a/coderules/languages/jetbrains.mps.lang.coderules/languageModels/behavior.mps +++ b/coderules/languages/jetbrains.mps.lang.coderules/languageModels/behavior.mps @@ -1546,12 +1546,7 @@ - - - - - - + diff --git a/coderules/languages/jetbrains.mps.lang.coderules/languageModels/constraints.mps b/coderules/languages/jetbrains.mps.lang.coderules/languageModels/constraints.mps index 6b888d8e..2f69000c 100644 --- a/coderules/languages/jetbrains.mps.lang.coderules/languageModels/constraints.mps +++ b/coderules/languages/jetbrains.mps.lang.coderules/languageModels/constraints.mps @@ -72,6 +72,7 @@ + @@ -107,6 +108,9 @@ + + + @@ -115,6 +119,9 @@ + + + @@ -136,6 +143,11 @@ + + + + + @@ -153,10 +165,12 @@ + + @@ -174,6 +188,7 @@ + @@ -265,6 +280,9 @@ + + + @@ -280,6 +298,8 @@ + + @@ -1791,6 +1811,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1798,18 +1863,8 @@ - - - - - - - - - - - - + + @@ -2143,5 +2198,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +