Commit Graph

360 Commits

Author SHA1 Message Date
Fedor Isakov 8fabaa7b1e Auto-magical update after moving to the latest build 2015-11-12 15:14:34 +01:00
Fedor Isakov 8533c77448 Better printing of types to match the expected type representation 2015-11-12 12:01:20 +01:00
Fedor Isakov ff95a22ef3 Better constraints printing in external runner 2015-11-12 12:01:20 +01:00
Fedor Isakov 879e3dc2df Fix the atom ground() util method 2015-11-12 12:01:20 +01:00
Fedor Isakov af48893e4c Change the contract of logical vars's equals() to never consider the value (only the root). Update the tests. 2015-11-12 12:01:20 +01:00
Fedor Isakov 06b1de52f9 Get rid of check() constraint, switched to using headless rules to be combined in main() 2015-11-12 12:01:20 +01:00
Fedor Isakov 2166c14df3 Introduce per-rule NamingContext for logical variables. Support for launching constraint handler via main() constraint. Minor fixes. 2015-11-12 12:01:19 +01:00
Fedor Isakov 0b239153ff Array type constructor, temporarily supporting the main() constraint with => true body 2015-11-10 17:25:25 +01:00
Fedor Isakov 320e650dd5 Support for headless rules: all are collected into "main" rule with head=main() 2015-11-10 17:15:32 +01:00
Fedor Isakov 3779dbed2b Better logging of result/garbage constraints 2015-11-10 11:16:40 +01:00
Fedor Isakov 163f434bf5 Unique variable names and type bounds 2015-11-10 10:55:14 +01:00
Fedor Isakov 5a965f549e Fix the logicals equality: unbound logicals are never equal 2015-11-10 10:46:52 +01:00
Fedor Isakov 83c94857ff Subtyping paths to be searched for any type. Can successfully compute LUB(String,NullType) = Object 2015-11-09 17:01:27 +01:00
Fedor Isakov e1a961e261 Use the standard method for getting the extended classifier types 2015-11-04 12:03:27 +01:00
Fedor Isakov 105d9d7024 Simplifying templates: get rid of O(n^2) subtyping 2015-11-04 11:46:03 +01:00
Fedor Isakov bc5cfb182e Fix subtyping algorithm 2015-11-04 09:39:07 +01:00
Fedor Isakov 42705efbd4 LubSolver and SubtypePathSolver to fail with an exception. Reverse the subtyping path. 2015-11-04 09:38:01 +01:00
Fedor Isakov e62fbb49b9 Fix the anchor for ClassifierType to include parameters 2015-11-04 09:35:26 +01:00
Fedor Isakov ca226ac725 Testing induction on list role 2015-11-03 19:04:41 +01:00
Fedor Isakov 695e94e9cc Fix the type variable names not displayed 2015-11-03 16:04:13 +01:00
Fedor Isakov c129f3dcc1 Made new subtyping work (somewhat) 2015-11-03 11:13:04 +01:00
Fedor Isakov bb092306c6 Fix the logical variable type 2015-11-03 11:11:54 +01:00
Fedor Isakov 84de3d79bb Fix NodePrinter to correcly process node structure 2015-11-03 11:10:57 +01:00
Fedor Isakov 11bd81a2af Updated the IDEA project 2015-11-03 11:09:51 +01:00
Fedor Isakov cd1247d874 Test runner to expect sample name and ID as program arguments 2015-10-30 16:42:57 +01:00
Fedor Isakov 6bff425cec Updated the IDEA project 2015-10-30 16:42:04 +01:00
Fedor Isakov 4c47777680 Exprerimental promote constraint to work with heterogenous subtyping 2015-10-30 16:11:35 +01:00
Fedor Isakov 47142f5196 An intention to remove splice 2015-10-30 14:39:12 +01:00
Fedor Isakov 368c743b5a Ensure the iterating templates get proper context 2015-10-29 11:12:44 +01:00
Fedor Isakov 6524579317 Correctly process universal (with no input) typechecking templates 2015-10-28 14:39:24 +01:00
Fedor Isakov 3cb088c8b9 Fix NodePrinter, test 2015-10-28 13:39:44 +01:00
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