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