Commit Graph

521 Commits

Author SHA1 Message Date
Fedor Isakov e32ff36d1b Allow node-ptr<> to be specified in require statement. 2019-11-04 17:10:34 +01:00
Fedor Isakov 48375c4d14 Extend RuleBuilder with template app session: automatically require node ponters passed as args to constraints.
Every node pointer (SNodeReference) specified as an arg to a constraint causes the (resolved) target to be included
into template application session (required).
Reduce NodeAnchor to .pointer call.
Deprecate Reporting interface and context repository in rule definitions.
2019-11-04 16:20:57 +01:00
Fedor Isakov cc8cf72819 Minor code cleanup: get rid of MacroTemplate.ID, simplify templates. Systemize RuleBuilder usages. 2019-11-04 16:20:57 +01:00
Fedor Isakov 84162b9097 Deprecate NodeAnchor, provide migration to .pointer operation.
A usage of .pointer op as an argument to a constraint invokes require() on template application session.
2019-11-04 16:20:38 +01:00
Fedor Isakov a0b2af95c9 Revert "MPSCR-4: Upd refs to new RuleIndex on Dispatcher construction in incremental case."
This reverts commit 0dd7f8c70f.
2019-11-04 15:58:54 +01:00
Grigorii Kirgizov 0dd7f8c70f MPSCR-4: Upd refs to new RuleIndex on Dispatcher construction in incremental case.
Slightly extend RuleMatcher interface.
Store RuleMatcher instances instead of RuleMatcherProbe in SessionToken.
2019-10-31 22:20:19 +03:00
Grigorii Kirgizov 0e33bffa96 Handle additional case of constructing ListNodeCons 2019-10-26 16:17:37 +03:00
Fedor Isakov 3092fa3635 Fix all templates with broken scopes for logical variables. 2019-10-25 22:45:55 +02: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
Grigorii Kirgizov bc06bf39cc Handle one more case of finding principal constraints in Query rules with an additional heuristic. 2019-10-15 21:15:38 +03:00
Fedor Isakov 06076860ed Deprecate SNodeSetType operation in typechecking lang. This lang exists now only for the sake of "types" aspect. 2019-10-12 09:35:09 +02:00
Fedor Isakov 5258a9343f Switch to collecting types during typechecking using the explicit type collector.
Use the parameter to typechecking query TYPECHECK to collect types.
Stop highlighting every expression with its type.
2019-10-10 17:30:11 +02:00
Fedor Isakov f8dcf127db Extend typechecking query TYPECHECK with a parameter to report types.
Reporting of calculated types is to be more explicit.
The not-so-obvious _type_.set() operation is to be phased out.
2019-10-10 17:30:11 +02:00
Fedor Isakov a0405839b3 Necessary plumbing for rules segmentation. Off for now.
Turns out this feature actuall worsens the performance.
2019-09-30 16:44:36 +02:00
Fedor Isakov 1cbd5defff Drop PrintDelegate stack, avoid memory leaks. 2019-09-13 13:44:23 +02:00
Fedor Isakov 068ce227c3 Avoid propagating runtime exception from program evaluation. 2019-09-12 17:08:02 +02:00
Fedor Isakov 8b73b66e34 Introduce RepositoryProvider interface to provide access to context repository.
TemplateApplicationSession to provide repository to templates.
Supervisor subclasses to provide repository to predicates.
2019-09-12 17:08:02 +02:00
Grigorii Kirgizov 332735e770 Remove unneded handler 2019-09-12 15:29:14 +03: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
Grigorii Kirgizov 924d07c8ed Return 'tagDetail' logic in RuleBuilder to handle duplicate tags of rules generated in loops 2019-09-11 13:24:01 +03:00
Fedor Isakov adc115b164 Avoid failure on exception thrown from a template.
Produce a program even in case some of applied rules failed.
Allow to recover from failure in apply templates.
2019-09-10 18:37:12 +02:00
Fedor Isakov b842fb6b9d Avoid unnecessarily throwing exception on failure.
EvaluationFailureException is meant to be only thrown from predicate solvers.
It is specially processed in the reactor engine.
2019-09-10 18:37:12 +02:00
Fedor Isakov d3a555c3a4 Ensure correct nodeRef is passed as a feedback template
.
2019-09-05 22:56:11 +02:00
Fedor Isakov fc3b69f06e Make sure the "annotation" lang has a types aspect. 2019-09-05 18:53:52 +02: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 ab8ec75878 Rewrite feedback handling without Reporting interface.
Instead of using the (deprecated) Reporting interface when handling
feedback, use the more straightforward abstract method.
2019-09-02 17:55:46 +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 8b82d7ba4d Introduce origin block for specifying the constraint rule origin. 2019-09-02 17:55:46 +02:00
Fedor Isakov d279cc64ba Deprecate report operation and API. 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 5c239fb4b9 Fix Memoizer race condition. 2019-08-27 11:22:39 +02:00
Fedor Isakov 899d6b5208 Avoid producing NPE on missing template. 2019-08-26 17:14:39 +02:00
Fedor Isakov 17cb4654cf Introduce message handler parameter to rule application session.
In some situations it is unreasonable to fail on missing templates,
it's better to produce a working but perhaps incomplete program
than not to produce anything.
2019-08-26 16:53:04 +02:00
Grigorii Kirgizov cc20e9735b Extend TypesIndexCache & EvaluateRulesStep with storing and retrieving SessionToken 2019-08-22 15:19:58 +02:00
Grigorii Kirgizov af2faeb077 Remove dependencies on samples.baseLanguageExt and samples.lambdacalc from tests, fix build. Rebase onto master. 2019-08-22 15:16:18 +02:00
Grigorii Kirgizov 2b1ec4a4a6 Remove interprocedural version of analysis 2019-08-22 15:16:18 +02:00
Grigorii Kirgizov 944a181685 Switch basic principals analysis to fully gen-time impl 2019-08-22 15:16:18 +02:00
Grigorii Kirgizov 9843669f79 Remove old runtime coderules analyses 2019-08-22 15:16:18 +02:00
Grigorii Kirgizov 37a6a4e1b7 Two more tests on FreeVarEscapeAnalysis for more complex cases. Extend checker logic for them. 2019-08-22 15:16:18 +02:00
Grigorii Kirgizov c6fc2c3f96 Test FreeVarEscapeAnalysis on full languages. Passes for BL, fails for lambdacalc as intended. 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 1c9060b769 Add simpler analysis to answer a question "Is incrementality allowed for this Coderules aspect?". Add initial tests for it.
It is a rule-local, non-interprocedural analysis and it also uses VarAnalysisUtil.
New analysis checks whether free variables can "escape" principal constraint rules inside principal constraints.
If there is such escaped variable, then it is a signal that this type system is designed with non-local type inference in mind.
Otherwise there's no need to produce principal constraints with free logicals as arguments.
So, no principal constraints with free vars -- no type inference is possible.
2019-08-22 15:16:17 +02:00
Grigorii Kirgizov ae993f6868 Separate VarAnalysisUtil into base and impl part that handles impl of involved relations ("isAffected"). 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 87fb26b95b Fix NPE in access to hashmap in VarModificationAnalysis 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov e41589cd4a Fix few places in VarModificationAnalysis. Add tests for it (found some problems). 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov f1aa5cb923 Finish interprocedural part of VarModificationAnalysis. Add one more test for Var..Util. 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 4ab877e822 Refine isAffected relation in VarAnalysisUtil: handle dep-s through composite logicals 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 62b08720cd Fix finding isAffected relation in var2notvar case by more carefully handling aliasing with "non-local" vars. Few more tests. 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov f7040b1d8d Add metalogical aliasing in VarAnalysisUtil. Rewrite older analyses fully in BL and not template macros. 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 8a2942c42b Move VarModificationAnalysisUtil to new model for analysis-related code 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 64230b0412 Add tests for VarAnalysisUtil. Update its semantics. 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 5f2b010e5b Add checking analysis for non-trivial var modification (e.g. unification) 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 5ba57b0b61 Refine notion of principal rule: discern between different kinds of rules from queries. Resolves slowdown. 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 98356f25cc rebase on master. remove extra deps in coderules generator 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 475ed7d023 Adjust border between abstract analyses classes and their generation-time impls 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 906f919e16 Run coderules program analyses at generation stage. Extend Rule with basetag(). Adjust how rule_tag is generated for reuse in generator.
basetag() returns name of ConstraintRule without node id.
Check on whether Rule is principal are now done through basetag(), it's sufficient.
Add part of future analysis: CallerTableBuilder.
2019-08-22 15:16:17 +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 4c4c610531 Enable macro expansion on concept; null input produces empty builder. 2019-08-10 16:25:36 +02:00
Fedor Isakov 3a48c47880 Migration: "update versions in descriptors". 2019-07-30 11:49:26 +02:00
Grigorii Kirgizov b7b5ece832 Adjust notion of principal rule in analysis. Reenable assert in ProcessingStateImpl.
Now any rule matching on or activating principal constraints counts as principal.
2019-07-29 20:25:25 +03:00
Fedor Isakov ef7e3fa1a6 Drop "tagDetail" hack, use again string as a unique rule's tag. 2019-07-29 17:16:43 +02:00
Fedor Isakov 66c9222a95 Run migrations with MPS 2019.2 EAP3. 2019-07-26 17:27:18 +02:00
Grigorii Kirgizov 11712c7069 Restrict the notion of principal rule (as effect, match journal is shorter now). It also positively affected reporting, so switch reporting to the new way. 2019-07-26 17:00:31 +02:00
Grigorii Kirgizov 0ab4e48da1 Fix hash collision in tests. Rename few usages of 'handler' to 'rulesList'. 2019-07-26 17:00:31 +02:00
Grigorii Kirgizov 3d80841639 Switch ReportingSupervisor to handle RuleMatch. Add Supervisor using ProgramSpec instead of PrincipalOriginIndex. 2019-07-26 17:00:31 +02:00
Grigorii Kirgizov 78c0cc1559 Setup code for failing typechecking tests, add one. Extract Supervisor impl from ProgramEvaluator. 2019-07-26 17:00:31 +02:00
Grigorii Kirgizov b9309e6369 Add several tests of incr typecheck on BL. ProgramEvaluator now depends on ProgramProducer. 2019-07-26 17:00:31 +02:00
Grigorii Kirgizov a2672ad20a Include into ProgramGenInfo info about node parents.
This info about AST deps between nodes is needed to find
additional rule matches that must be also invalidated.
2019-07-26 17:00:30 +02:00
Grigorii Kirgizov 43a8838c5a Handle the case of pattern logicals for finding principal constraints. Add rules from queries as principals too. 2019-07-26 17:00:30 +02:00
Grigorii Kirgizov 9a22149a5c Add some debugging info for incremental lang typecheck tests 2019-07-26 17:00:30 +02:00
Grigorii Kirgizov ce9b91c4a5 Add basic tests for simple program analysis, add test helpers. 2019-07-26 17:00:30 +02:00
Grigorii Kirgizov 6c4667e066 Add basic coderules program analysis for determining principal constraints 2019-07-26 17:00:30 +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 274f1f5a8d Fix tests: use only string value for properties for now. 2019-07-19 12:28:27 +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 57de11c3fe Rename all modules/models having prefix j.m.typechecking to j.m.coderules.typechecking. The former is reserved. 2019-06-05 16:15:59 +02:00
Fedor Isakov 3b638b2d08 Drop usages of Rule.tag(), replace with Rule.uniqueTag().
Switch to using long as a rule's unique tag.
Rename all entities using "handler" to "rulesList".
2019-05-17 18:01:34 +02:00
Fedor Isakov 61b60938d0 Fix heuristic for determining the rule with origin that should serve
as a failure recovery point.
2019-05-16 12:36:47 +02:00
Fedor Isakov eb5b38384f Rename Handler class in reactor API to RulesList. 2019-05-09 17:30:14 +02:00
Fedor Isakov bd1c56d9d0 Rename concept Handler -> RulesList 2019-05-09 17:30:14 +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 b1f7ba4ecf Drop usages of deprecated symbols in reactor API. 2019-05-02 14:46:57 +02:00
Fedor Isakov 478b43ce16 Drop usages of deprecated interfaces. 2019-04-26 00:22:02 +02:00
Fedor Isakov ed6f7a07c2 Remove instances of obsolete concept containingLink, replace with link. 2019-04-24 22:14:24 +02:00
Fedor Isakov ab006cc8d9 Fix missing dependency. 2019-04-10 09:45:47 +02:00
Fedor Isakov 396b1fdad3 Move all classes from j.m.typechecking to j.m.typechecking.service. This package name is reserved. 2019-03-22 11:40:32 +01:00
Fedor Isakov 36be0a8e6d Rename TypecheckingFacade to Typechecking to avoid name collisions. 2019-03-22 11:28:58 +01:00
Fedor Isakov 671194c9c3 Switch to the latest EAP of MPS 2019.1. Re-save all models. 2019-03-22 11:09:39 +01: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 a97c33a256 Collect all solvers when building a program. These to replace "solver registration" procedure. 2019-02-15 17:47:06 +01:00
Fedor Isakov 9f8539bfd8 Drop unused and long deprecated feature. 2019-02-15 17:46:10 +01:00
Fedor Isakov 5f068c1ac0 Extract stuff related to program producing to separate model. 2019-02-15 17:15:17 +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 24ac5447b3 Make ErrorAnnotation able to suppress errors. 2019-01-31 11:44:07 +01:00
Fedor Isakov 9243c00c65 Fix issues found by model checker (ex typesystem). 2019-01-31 11:30:02 +01:00
Fedor Isakov 52348b2b38 Make comment look nicer with standard C-style representation.
Make Handler, MacroTable and their contents commentable.
2019-01-27 23:33:02 +01:00
Fedor Isakov 613e895d17 Fix constraint rules editor to display "activate" section always.
Constraint rule to be entered with "on" keyword.
2019-01-27 22:56:07 +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 27681ef80c Switch substitution to work using equals predicate instead of equals() java method. Testing substitution on tricky cases. 2019-01-15 20:09:16 +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 6aa965c96c Ignore commented out nodes while applying templates. Use node pointer to report locations of failed tests. 2019-01-13 15:14:14 +01:00
Fedor Isakov 197f09fb2b Apply automatic migrations in the root project 2019-01-13 14:27:43 +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 29a44eac5d Introduce automatic migration from eq to uni for basic scenario: logical on the left 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
Fedor Isakov cb1ea46af7 Typechecking templates: specify data types for logicals that are used for values instead of term. 2018-12-28 11:57:26 +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 82b409cb86 Fix SubstituteUtil to match pattern using equals() instead of unification. Tests for SubstituteUtil. 2018-12-14 13:35:36 +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 f0bb068750 Fix instances of removed concepts and broken API calls after migration to 2018.3. Rebuild project. 2018-11-28 16:48:59 +01:00
Fedor Isakov 19ce84f7ef Switch to 2018.3 RC. Apply all migrations. 2018-11-28 16:48:59 +01:00
Fedor Isakov f095c64abe Rename 'isBound' predicate to 'isAssigned' (alias only, concept to be renamed still). 2018-11-27 15:10:48 +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 9c4dad3e91 Enable use of input node in macro body. Allow specifying a subset of macro parameters in macro call. 2018-11-20 22:39:30 +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 3aeb5a8863 Fix unnecessary dependencies of coderules generator module.
Add missing annotation language to plugin bundle.
2018-11-05 14:49:59 +01:00
Fedor Isakov 0992b8358e Annotation language feature: annotate a node with expected error. 2018-11-04 13:10:40 +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 0282f28a5c Bring reporting in line with MPS core reporting facilities. Cleanup the API. 2018-11-04 12:54:32 +01:00
Fedor Isakov 075b34e24d Replacing usages of deprecated concepts. Minor fixes. 2018-09-11 17:01:45 +02:00
Fedor Isakov 4ec1656b1b Introduce repository expression to provide context repository in rules. 2018-09-11 15:36:12 +02:00
Fedor Isakov f44de16c3f Introduce a method to access the context repository into Reporting interface. 2018-09-11 12:22:47 +02:00
Fedor Isakov 6287a1147e Fix missing imports 2018-09-11 12:20:50 +02:00
Fedor Isakov 8cacd9c326 Ensure terms are copied "properly" without breaking Path's contract. Pending optimization. 2018-08-07 11:50:05 +02:00
Fedor Isakov 98dfe30756 Resaved all models 2018-08-03 11:48:36 +02:00
Fedor Isakov 78764af3dc Ensure all rule builders within a single rule template have unique tags 2018-08-03 11:48:36 +02:00
Fedor Isakov e2a68b4012 Fixes necessary for compatibility with MPS 2018.2 2018-07-22 16:51:10 +02:00
Fedor Isakov 0bacffb611 Move type setting operation to typechecking lang. 2018-07-22 11:09:49 +02:00
Fedor Isakov 1a52d7f96a Auto-updated descriptors. 2018-07-22 10:37:02 +02:00
Fedor Isakov b340e6ce48 Cleanup generator dependencies. 2018-07-21 13:29:40 +02:00
Fedor Isakov c7cc97fffb Rename reporting runtim solution. 2018-07-21 13:29:40 +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 4f6b8a002a Auto-updated descriptors. (Again!) 2018-07-16 16:40:09 +02:00
Fedor Isakov 4f063cd261 Update test language for typechecking. Re-implement all typechecking tests using test language. Drop dependency on baseLanguageExt and samples. 2018-07-16 16:39:13 +02:00
Fedor Isakov 24bcd0426c Ensure conflicting queries are reported as error. 2018-07-16 16:17:52 +02:00
Fedor Isakov d4477c519b Auto-updated descriptors. 2018-07-16 13:44:02 +02:00
Fedor Isakov 79c02d2b00 Cleaning up dependencies in an attempt to produce a workable build.xml that doesn't break gradle. 2018-07-14 17:22:14 +02:00
Fedor Isakov 92c6ba3e12 Restructuring the project: consolidate code, moving samples away. 2018-07-14 17:22:07 +02:00
Fedor Isakov fb27f1ddf2 Ensure eval() supports void and non-boolean expressions. Allow eval in guard. Fix generation of operations from collections lang. 2018-07-10 14:14:08 +02:00
Fedor Isakov 4dfb676349 Ensure the order of handlers corresponds with the "extends" relation. The handler being extended has lower priority. 2018-07-02 11:27:55 +02:00
Fedor Isakov 0ddd0fcaa1 Introduce "principal" flag for rule templates. A principal template is excluded from processing as "required". 2018-07-02 11:27:55 +02:00
Fedor Isakov ab5e641c6b Beautifying coderules editor. 2018-06-21 13:45:20 +02:00
Fedor Isakov b4d0ab73bb Initial boilerplate support for launching controlflow queries. Some refactorings to further uncouple coderules-related stuff. 2018-06-15 14:55:44 +02:00
Fedor Isakov a74f00f688 Introduce controlflow language and corresponding solutions as another example of applying code rules in practice. 2018-06-14 16:19:06 +02:00
Fedor Isakov 20c107e428 Introduce j.m.lang.typechecking lang to provide typechecking aspect-related services. Abstract away aspect generation/discovery logic to make it reusable. 2018-06-14 15:02:22 +02:00
Fedor Isakov a8e6c565b5 Rename the language and runtime solution: typesystem2 -> coderules. Move typechecking-related stuff to typechecking solution. Reorganize modules, delete obsolete stuck files. 2018-06-12 18:00:30 +02:00