Commit Graph

284 Commits

Author SHA1 Message Date
Fedor Isakov 86fa1cb65a Upgraded to the latest MPS build (to be announced as EAP4) 2015-10-28 11:57:07 +01:00
Fedor Isakov 853b6adeba Refactor the constraint subtypePaths to accept two arguments instead of three 2015-10-27 15:54:20 +01:00
Fedor Isakov 5e4019e7b8 Fix the tests for LubSolver 2015-10-26 16:05:04 +01:00
Fedor Isakov de7b9523eb The algorithm to find the shortest subtyping path from a given type. 2015-10-26 12:43:17 +01:00
Fedor Isakov 0e87430933 Rewritten findLub algorithm, testing LUB for heterogenous types 2015-10-25 20:03:28 +01:00
Fedor Isakov 9a4a23ae10 Simplifying operations with lists, get rid of list role (replaced with child role + list) 2015-10-21 19:08:25 +02:00
Fedor Isakov 63f5789f7b Get rid of cardinality in role, simplifying code 2015-10-21 12:33:23 +02:00
Fedor Isakov 4136d9ff62 Cleaning up the walker interface, appropriate naming for concepts, some tests 2015-10-20 17:29:02 +02:00
Fedor Isakov d79af1a6f6 Add type table and replace all type terms with the ones built from type patterns 2015-10-08 11:17:38 +02:00
Fedor Isakov 52c0cb7309 Switch to the latest MPS build 2015-10-08 11:17:38 +02:00
Fedor Isakov f1ee8ae30c Refactor typechecking templates for ClassCreator and DefaultClassCreator 2015-10-05 15:54:00 +02:00
Fedor Isakov 2df4627b3e Get rid of named tuples as context, replaced with structure. Ensure iterating rule template supports prototype. 2015-09-26 13:38:03 +02:00
Fedor Isakov 8695b3a3cc Updated the templates to use the prototype fragments (MethodCall) 2015-09-26 13:37:59 +02:00
Fedor Isakov b542b6ce3b Runtime support for prototype template fragments. Minor fixes 2015-09-26 13:37:59 +02:00
Fedor Isakov 8af807b78f Refactoring in typesystem2: merge let value and the logical variables declared as exported into single Context type.
Updated the runtime and the generator to support extending prototype's context.
Some minor fixes in the language.
2015-09-23 17:16:36 +02:00
Fedor Isakov 4d2b955721 Refactoring in typesystem2 and logic langs: extract LogicalVariableDeclarationStatement
Introduce parameters block to rule parts, use tuples as the runtime object
Refactor the typesystem2 runtime to use the logicalVal method for initialization of parameter tuples
2015-09-23 17:16:32 +02:00
Fedor Isakov f402b9d58c Changed logical variable scope to allow cross-rule references. Introduced template fragments (incomplete) 2015-09-16 12:10:15 +02:00
Fedor Isakov 9994ca20c2 Upgraded MPS to the latest EAP3 2015-09-14 15:06:33 +02:00
Fedor Isakov 1f7e800864 Updated the typechecking templates after the refactoring 2015-08-27 13:55:28 +02:00
Fedor Isakov cee12bbef3 Pull up boundParameterBlock as AbstractRule.letBlock 2015-08-27 13:55:11 +02:00
Fedor Isakov 9ad0dc8f53 Updated the typechecking templates after the refactoring 2015-08-27 13:27:18 +02:00
Fedor Isakov acd9aa4826 Pull up input specification to AbstractRule 2015-08-27 13:27:02 +02:00
Fedor Isakov 51db4e7df3 Update the typechecking templates after link push down 2015-08-27 11:28:13 +02:00
Fedor Isakov 1c091271b1 Push down applicableCondition as Rule.condition 2015-08-27 11:27:55 +02:00
Fedor Isakov 1925e99b3e Removed obsolete concept 2015-08-27 11:08:44 +02:00
Fedor Isakov e6c7cd6bba Replace multi-fragment generator template with a switch (trying to avoid generating generator templates, failed) 2015-08-26 19:07:40 +02:00
Fedor Isakov 2b83eb1bb5 Code cleanup 2015-08-26 18:25:24 +02:00
Fedor Isakov beb24a57e1 Typechecking2 runtime API simplification and cleanup 2015-08-26 13:49:41 +02:00
Fedor Isakov e66de44626 Validate type term against the template and report structure errors 2015-08-25 13:37:06 +02:00
Fedor Isakov cc33af8691 Editor beautifications and workarounds for indent layout 2015-08-25 13:37:06 +02:00
Fedor Isakov e9b1968475 Copy NodeKind from the prototype (mostly useless feature now) 2015-08-25 13:37:06 +02:00
Mihail.Buryakov 270e1de4cc comment out difficult fragments of samples 2015-08-25 13:00:43 +02:00
Mihail.Buryakov d9e042ae94 Add Comment intension available only if there is no comment on this node 2015-08-25 12:59:03 +02:00
Mihail.Buryakov 7fa0207a2b support copying multiple bounds (0..n) with boundCopy 2015-08-25 12:44:37 +02:00
Mihail.Buryakov 680242cbe9 ubound and lbound are also correct on termintation 2015-08-25 12:27:21 +02:00
Mihail.Buryakov 3de2351f8d add missing required dependency (classifier -> its type variables) 2015-08-25 12:26:35 +02:00
Mihail.Buryakov cd3ec30bea temporary disable return check rule (until we have lub) 2015-08-25 12:25:38 +02:00
Mihail.Buryakov f0ddff8ccd skip commented out templates 2015-08-25 12:24:19 +02:00
Fedor Isakov 2907e1af3f New construct to represent type terms (TypeTerm) referencing a declaration, an intention to convert old Ast to TypeTerm
Renamed Node -> Compound, (old) TypeTerm -> TypeTemplate.
2015-08-24 17:09:52 +02:00
Mihail.Buryakov e5b21e1327 check remaining constraints on termination 2015-08-24 16:57:36 +02:00
Mihail.Buryakov 4d86d23235 check remaining constraints on termination 2015-08-24 15:57:46 +02:00
Mihail.Buryakov c196d3f254 typesystem rules for logical variables and values 2015-08-24 15:46:49 +02:00
Mihail.Buryakov a13882914b fix unification failure: use always short class name 2015-08-24 15:46:47 +02:00
Mihail.Buryakov 3394dd2c71 fix wildcards 2015-08-24 15:46:47 +02:00
Mihail.Buryakov 76504f9321 discard check constraint for MethodDeclaration 2015-08-24 15:46:46 +02:00
Fedor Isakov f607281012 Typesystem2 language: runtime and generator for type declaration templates 2015-08-24 13:34:12 +02:00
Fedor Isakov 113bbb821a Typesystem2 language: type declaration templates 2015-08-24 13:34:12 +02:00
Fedor Isakov 13d286e0ec Check types action runs typechecking on all ClassConcept roots in the selection 2015-08-24 13:34:12 +02:00
Fedor Isakov 167123abc1 Extract typechecking helper class to be used in actions 2015-08-24 13:34:11 +02:00
Mihail.Buryakov 9ad6d96925 discard 'check' constraint for those concept which do not require (yet) real checking 2015-08-20 19:36:41 +02:00