Commit Graph

63 Commits

Author SHA1 Message Date
Fedor Isakov b6e4e80010 Coderules/logic editor: support entering standalone item as logical clause, allow to type = and == naturally. 2020-02-04 17:34:38 +01:00
Fedor Isakov 9403087c11 Drop RepositoryProvider interface (unused). 2020-02-04 11:43:20 +01:00
Fedor Isakov 391c9053b5 Apply migrations after switch to MPS 193. Regenerate project. 2020-02-03 11:24:22 +01:00
Fedor Isakov c66e746e77 Introduce open terms, support ad-hoc polymorphism.
A term may indicate that it "extends" another open term.
An extended term has essentially the same form as the one
being extended, so that they can be unified.
2020-01-20 10:52:39 +01:00
Grigorii Kirgizov 894c727e70 Fix minor bug concerned with CopyUtil
CopyUtil didn't correctly map logicals nested inside DataForms which are bound to Logicals.
That's because CopyUtil relies on DataForm:variablesCount() and
LogicalDataForm:variablesCount didn't consider the case when bound value is itself DataForm.
2019-12-18 21:47:06 +03:00
Grigorii Kirgizov 0e33bffa96 Handle additional case of constructing ListNodeCons 2019-10-26 16:17:37 +03:00
Fedor Isakov c797b5d2ad Breaking change: logical vars must be declared by constraint rule that uses them.
Stronger rules for logical variables scope: constraint rule can't reference logical variable defined in another constraint rule. Logical variable definitions are localized to ConstraintRule template.
Simplify/cleanup the logic of searching for available logical variables.
2019-10-25 22:45:55 +02:00
Fedor Isakov 1cbd5defff Drop PrintDelegate stack, avoid memory leaks. 2019-09-13 13:44:23 +02:00
Grigorii Kirgizov cdfe1f2c0c Update language version after migrations from mps.logic lang 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 85b074d189 Make ListNodeCons migration a bit more restrictive 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 135724a481 Fix use case of list matching with any list 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 7242e832b1 Upd mps.logic lang version 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov fc1caf1238 Fix Remove_Splice_from_ListNode migration 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 163e339436 Add migration for replacing List usages for ConsList constructor usages 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 3ff9ccb0c6 Add wrapping substitute menu for LogicalDataForm concept 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov cfe0b1b648 Add ListNodeCons DataForm: another constructor for ListNode similar to Haskell's `head:tail` constructor 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov edbd77c748 Prepare for migration from spliced Logicals in ListNode to LogicalDataForm 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 6a02be6f6e Avoid nested empty lists in mapped ListNode.Alias. Fix capture in lcta helper for lub. Add test for lub.
The problem with empty lists showed up at least in printing lists.
2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 37be72d9cf Refactor generation of ListFeature & 'spliced' MultiMetaLogical. Fix BL typesystem to accomodate these changes.
ListRole in DataForms is stricter and doesn't allow non-list values.
Spliced MultiMetaLogical is always generated to ListNode without intermediate step of Variable[].
2019-09-11 13:24:01 +03:00
Grigorii Kirgizov e2e531f13c Add few utilities and extend logic of subtypePaths for LUB impl
subtypePaths constraint now has an extended version subtypePathsRaw that returns
extended 'classifierType' dataforms with type parameters (no only classifiers).
2019-09-11 13:24:01 +03:00
Fedor Isakov 1636f18f73 Support navigating to rule from editor. Drop implementations of Reporting.report. 2019-09-04 16:53:03 +02:00
Fedor Isakov 77be3869a4 Introduce target specification to provide feedback constraint.
One should be able to report issues with a target.
The target is normally inferred from the rule's origin, but sometimes it is
necessary to specify the issue's target explicitly.
2019-09-02 17:55:46 +02:00
Fedor Isakov 41c4c7e0a3 Fix provide feedback predicate to use the updated API. 2019-09-02 17:55:46 +02:00
Fedor Isakov d786ff43b9 Re-save all models, language name updated in .mpl files. 2019-08-20 23:11:19 +02:00
Fedor Isakov 1e3917e787 Make dataform printer reusable. 2019-08-12 16:45:00 +02:00
Fedor Isakov 3a48c47880 Migration: "update versions in descriptors". 2019-07-30 11:49:26 +02:00
Fedor Isakov 66c9222a95 Run migrations with MPS 2019.2 EAP3. 2019-07-26 17:27:18 +02:00
Fedor Isakov 79b08c6f83 Revert "Apply migrations from EAP3 and rebuild project."
This reverts commit 9c5bf858c3.
2019-07-26 15:30:30 +02:00
Fedor Isakov 9c5bf858c3 Apply migrations from EAP3 and rebuild project. 2019-07-19 12:28:27 +02:00
Fedor Isakov cd37daaa07 Apply migrations after switching to the latest EAP build of MPS. 2019-06-07 09:16:21 +02:00
Fedor Isakov 17ed4642ae Apply all available automatic migrations. 2019-06-05 16:16:00 +02:00
Fedor Isakov aaec11de9b Adapt to the changes in reactor API. 2019-05-05 14:29:08 +02:00
Fedor Isakov 4389b349d7 Adapt to the changes in reactor API. 2019-05-02 14:59:57 +02:00
Fedor Isakov adcfba5e9a Introduce two built-in predicates to be used instead of eval(false) etc.: fail and report message (debug/info/warning/error/fatal). 2019-02-18 11:49:11 +01:00
Fedor Isakov b102237bb8 Drop static collection of predicate symbols. Adapt to the latest reactor API. Drop DefaultSessionSolver 2019-02-17 11:39:56 +01:00
Fedor Isakov 255b7061f7 Reorganize models/packages, restructure code components responsible for program building/evaluation. 2019-02-15 17:15:17 +01:00
Fedor Isakov 2f8ff698b3 Minor refactorings in program producing code. Consolidating everything related to program producing into a single package. 2019-02-15 17:15:16 +01:00
Fedor Isakov a240246daa Ensure failures don't stop program evaluation, recover failure always at top level (when processing "main/0" constraint).
Keep track of principal origins to be used as points of failure.
Minor code cleanup/refactoring.
2019-02-06 12:57:47 +01:00
Fedor Isakov 9243c00c65 Fix issues found by model checker (ex typesystem). 2019-01-31 11:30:02 +01:00
Fedor Isakov 551a015ada Fix unification predicate not doing occurrs check on tell. 2019-01-26 13:52:10 +01:00
Fedor Isakov 934f98b717 Fix UnificationPredicate to delegate logical union logic to the underlying implementation.
Test unification failure on cycle detected.
2019-01-25 15:02:03 +01:00
Fedor Isakov e2ea78ef9e Improve layout of constraints and dataforms. Get rid of unnecessary anchors and hacks. 2019-01-21 11:20:30 +01:00
Fedor Isakov 0b9fc55817 Make equals predicate respect trivial bindings: [X -> Y] where X is unified with Y. Tests. 2019-01-15 19:04:07 +01:00
Fedor Isakov 161f00355d Fix equals predicate: make it conform to general contract of unification without additional bindings. Testing ask/tell eq. 2019-01-14 12:25:27 +01:00
Fedor Isakov 50487cd41c Fix unification predicate implementation to properly process non-term arguments. Cleanup the code. 2019-01-13 14:26:35 +01:00
Fedor Isakov a46937b128 Change semantics of EqualsPredicate: ask returns true iff values are equal or the logicals are the same, tell throws exception if not 2019-01-13 14:26:35 +01:00
Fedor Isakov bcb8efa653 Make editor for DataForm more usable, get rid of hacks in the layout. Introduce NewLineAttribute to manually insert new lines. Deprecate ListRole. 2019-01-09 13:01:37 +01:00
Fedor Isakov c5daa24ee8 Deprecate ListLiteral and ListExpression concepts (only used in BL typesystem) 2019-01-04 17:44:32 +01:00
Fedor Isakov d74ad951e3 Drop a hack in ListNode implementation that would disallow nested lists 2019-01-04 17:43:37 +01:00
Fedor Isakov c87ca87a49 Cleanup in tests 2018-12-30 16:41:28 +01:00