Commit Graph

40 Commits

Author SHA1 Message Date
Grigorii Kirgizov 0e33bffa96 Handle additional case of constructing ListNodeCons 2019-10-26 16:17:37 +03:00
Fedor Isakov 1cbd5defff Drop PrintDelegate stack, avoid memory leaks. 2019-09-13 13:44:23 +02:00
Grigorii Kirgizov 135724a481 Fix use case of list matching with any list 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 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 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 1e3917e787 Make dataform printer reusable. 2019-08-12 16:45:00 +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 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 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 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
Fedor Isakov d74ec1d2f8 Introduce support for unification variables of arbitrary type, not just terms. Minor refactoring and cleanup. 2018-12-28 11:56:27 +01:00
Fedor Isakov c22520fcc8 Fix EQ solver returning wrong value for two distinct free logicals. Testing EQ and UNI solvers on free logicals. 2018-12-13 18:24:53 +01:00
Fedor Isakov 19ce84f7ef Switch to 2018.3 RC. Apply all migrations. 2018-11-28 16:48:59 +01:00
Fedor Isakov 8bc26f6cdd Shorten the presentation of user terms in actiovation trace view. Filter out wildcards and empty lists. 2018-11-27 15:10:48 +01:00
Fedor Isakov 6778fab625 Use index to filter nodes on which FailureHandler should report error and clear failed state. 2018-11-20 22:39:30 +01:00
Fedor Isakov 15fcfd8044 Temporarily disable checking of constraint parameters's RT types. LateExpression to support RT type. 2018-11-20 22:39:29 +01:00
Fedor Isakov 6788bcf7a1 Switch to latest reactor, update the API calls. Support EvaluationFailure and FailureHandler. 2018-11-04 13:10:40 +01:00
Fedor Isakov 075b34e24d Replacing usages of deprecated concepts. Minor fixes. 2018-09-11 17:01:45 +02:00
Fedor Isakov ea9919f38a Bring the hierarchy of DataForm concepts in line with the runtime.
Merge DataForm constructors into logic language.
Repackaging logic runtime.
Drop obsolete code.
2018-07-21 13:29:22 +02:00
Fedor Isakov 92c6ba3e12 Restructuring the project: consolidate code, moving samples away. 2018-07-14 17:22:07 +02:00