Commit Graph

604 Commits

Author SHA1 Message Date
Fedor Isakov f0a9ac3bab Drop abandoned functionality: controlflow 2024-06-24 10:56:00 +02:00
Fedor Isakov 87bb67cee3 Drop usages of SessionToken 2024-06-21 22:44:23 +02:00
Fedor Isakov 34c5643d0d Turn on printing of empty list as [] 2024-06-21 21:51:35 +02:00
Fedor Isakov a19d02b8ae Switch initialization to use ModuleActivator; drop unused imports 2024-06-16 16:11:38 +02:00
Fedor Isakov ba6f509909 Reimplement occursCheck with DataFormWalk 2024-06-13 20:11:19 +02:00
Fedor Isakov 658f9a48c0 Enable DataFormWalk to walk variables checking for cycles 2024-06-13 20:10:39 +02:00
Fedor Isakov 9aa9680ba1 Refactor DataForm.Visitor to use default methods; drop Stub 2024-06-13 17:40:23 +02:00
Fedor Isakov d63d261044 Drop usages of "usages count" feature of MutableLogical 2024-06-13 15:49:51 +02:00
Fedor Isakov adb38f1a2c Drop optimization hack; Correctly handle non-term logicals 2024-06-13 15:46:13 +02:00
Fedor Isakov b053cd7c3e Drop the rest of "incremental" stuff 2024-06-13 12:22:57 +02:00
Clement de La Bourdonnaye 0776351977 Ran CleanStubForeignMethodIds migration 2024-01-23 16:33:23 +01:00
Clement de La Bourdonnaye c96f65ec64 NewUI - restore old ui icons for usage when new UI disabled 2024-01-11 14:38:03 +01:00
Vaclav 5114fd8f7c NewUI - add new svg icons replacing the old png ones. Update the icon resources using these icons. 2023-12-14 16:10:32 +01:00
Fedor Isakov 04416a927b Make all expand template params optional
As part of migration add NullLiteral as init field to all
expand macro parameters so that the generation runs smoothly.
The user is then expected to remove init fields for required params.
2023-10-16 11:55:32 +02:00
Fedor Isakov fc8451e63d Run migration 2023-10-13 18:13:09 +02:00
Fedor Isakov 20a0bedd81 Refactor call macro cstr: keep arguments in binding list
The idea is to have default parameters in (regular) macro definition.
Refactoring and corresponding migration.
2023-10-13 18:13:09 +02:00
Fedor Isakov 8d9b3d4730 Fix behaviour method signature 2023-10-13 18:13:09 +02:00
Fedor Isakov fd0430a6eb Better editors and substitute actions for macroses
Now all invocations of a macro start with "apply" keyword.
An "expand" macro has an additional parameter after "with" -- the input.
2023-10-13 18:13:09 +02:00
Fedor Isakov 607e54a290 Macro fails to generate if logical or parameters are inconsistent
In addition to a typechecking rule make generator report an error.
2023-10-13 18:13:09 +02:00
Fedor Isakov de9fd05c45 Intentions and methods to facilitate working with macros 2023-10-13 18:13:09 +02:00
Fedor Isakov 5fafd1b0dc Code review: mark things to be done 2023-10-13 18:13:08 +02:00
Fedor Isakov 87a1b413d1 Ensure ancestors of a changed node are in changeset
This fixes incremental update in some situations.
2023-10-13 18:13:08 +02:00
Fedor Isakov 4e77530d20 Drop usages of deprecated feature: ApplicableConcept 2023-10-13 18:13:08 +02:00
Fedor Isakov f3010743c1 Migration: FixExpandMacroTemplate 2023-10-13 18:13:08 +02:00
Fedor Isakov 530ace6399 Rework editor for expand macro template and prototype
Expand macro prototype: "virtual macro".
Expand macro template: "override".
Override macro displays parameters declared in the prototype as R/O.
Introduce "usages" of prototype parameters to serve as local anchors;
this avoids problems with generation.
The existing code is going to work as before, but marked as erroneous
until migrated.
2023-10-04 12:52:09 +02:00
Fedor Isakov 504ae89af3 Consider only LogicalVars when looking for arguments to LateExpr 2023-09-28 12:10:39 +02:00
Fedor Isakov a85d570604 Enable entering DataNodeExpr within LateExpr 2023-09-28 12:10:39 +02:00
Fedor Isakov 3cf666e633 Apply migrations and make project 2023-07-31 12:57:24 +02:00
Fedor Isakov e5538bc39f A bunch of refactorings and cleanups in trace view
- cleanup the code, rename symbols for better readability
 - drop dead code
 - support for optionally showing empty template trace nodes
 - display node path for source nodes
2023-06-21 15:27:05 +02:00
Fedor Isakov 0e2c64e587 Fix resolve info 2023-06-12 12:20:35 +02:00
Fedor Isakov 6a849f82f2 Apply migrations and rebuild project 2023-06-12 12:01:02 +02:00
Fedor Isakov 11a1037860 Minor refactoring and code cleanup 2023-06-12 12:01:02 +02:00
Fedor Isakov 6150702e92 Drop references to template dropped upstream 2023-05-03 10:50:10 +02:00
Fedor Isakov 08733317ef Null guard. MPSCR-126 2023-02-23 17:29:02 +01:00
Fedor Isakov d531c6a5ad Run Migration Assistant 2023-02-22 13:52:02 +01:00
Fedor Isakov ad3ea9d63d Apply all migrations from 2022.2 2022-11-21 11:25:13 +01:00
Fedor Isakov 8f42a025bc Rewrite topo sorting of macro tables 2022-09-08 14:07:06 +02:00
Fedor Isakov 6030332107 Introduce profiling into program produce/evaluation steps 2022-09-02 15:49:30 +02:00
Fedor Isakov bb47403b0c Fix generating of synth recover terms table 2022-08-22 11:19:59 +02:00
Fedor Isakov 26a3bd12dd Fix how output models are searched for checkpoints 2022-08-16 18:11:49 +02:00
Fedor Isakov 40dd4bb31a Avoid dependency on a non-runtime solution 2022-07-28 10:30:38 +02:00
Fedor Isakov 83daafe180 Fix feature reference constraint 2022-07-28 10:30:38 +02:00
Fedor Isakov f9eb52a60f Introduce checkpoint for typechecking "strut" templates
The templates that typechecking relies upon are generated
into the user model as synthetic constructs. These later
need to be discovered by the generator to establish
correct references.
2022-07-28 10:30:38 +02:00
Fedor Isakov 33b472f560 Switch to using plain FQN strings to identify templates
SNodeReference are too unreliable to be used.
2022-07-28 10:30:38 +02:00
Fedor Isakov 4bd681f3ee Fix support for require/requireAll statements in queries, MPSCR-108 2022-07-15 19:46:32 +02:00
Fedor Isakov 837f7303a8 Fix test language broken after refactoring 2022-06-18 15:56:54 +02:00
Fedor Isakov 186c7b6a28 Fix auto-recovery of types with expect/assign/recover pseudo-constraints 2022-06-18 12:53:14 +02:00
Fedor Isakov dd0b9b2842 Intention to convert term table to types term table 2022-06-18 12:53:14 +02:00
Fedor Isakov 77eb3f30c7 Implement a missing BH method 2022-06-13 11:11:57 +02:00
Fedor Isakov b46373701f WIP Reorganizing code 2022-06-08 10:23:43 +02:00
Fedor Isakov 88aaf7898c Ensure only relevant aspects selected for certain queries
While check/checkTypeOf queries are required to
process a whole root, other types of queries
can be sensitive to what aspects to include in
the processing.

Aspects are sorted in strongly-connected components,
among which the relevant one is selected.
2022-06-06 13:00:52 +02:00
Fedor Isakov 585f8f57f5 Switch to generating FQ names for constraint symbols 2022-05-26 12:52:25 +02:00
Fedor Isakov c112a59116 Switch to collection of QueryTemplate instead of single instance
The deisgn decision to have only one instance of QueryTemplate
leads to the necessity to keep AspectClique separated for
every "typesystem". Whereas QueryTemplate are really perfectly
composable, and thus only one AspectClique is neeeded.

Also drop a rudimentary unused feature.
2022-05-26 09:58:31 +02:00
Fedor Isakov 874a2a4b4e Ensure rule tags have unique group name 2022-05-25 13:49:11 +02:00
Fedor Isakov b6c190c35c Introduce ruleInput parameter to call macro
Accessing the rule input allows to track dependencies
necessary for correctly updating the feedback.
2022-05-09 17:02:12 +02:00
Fedor Isakov ddce418ba4 Ensure new list is initialized when recovering 2022-05-03 10:26:43 +02:00
Fedor Isakov bd249c5d0c Drop obsolete feature: incremental specification 2022-04-21 16:05:31 +02:00
Fedor Isakov 1d54b8ffeb Fix NPE on first update of empty rules query 2022-02-17 17:05:41 +01:00
Fedor Isakov 98fef4c95d Fix NPE on newRules array being empty 2022-02-15 10:35:53 +01:00
Fedor Isakov d8a180bfe2 Test list feature recovery 2022-02-08 10:09:40 +01:00
Fedor Isakov 2f34591b0b Support list feature in recovery 2022-02-08 10:09:40 +01:00
Fedor Isakov 2e5d73b31e Add icons for typechecking roots and the aspect 2021-11-25 18:09:22 +01:00
Fedor Isakov d7f54a35fb Minor editor fixes 2021-11-25 12:07:43 +01:00
Fedor Isakov 2d48fb57f2 Fix editor: ensure correct constraints in head/guard/body 2021-11-25 12:07:43 +01:00
Fedor Isakov c27cafdf30 Fix editor: support changing isFree <-> isNonfree 2021-11-24 16:22:17 +01:00
Fedor Isakov 4e70300ea7 Update language imports 2021-11-24 16:22:17 +01:00
Fedor Isakov d0d44b98c5 Minor editor fixes 2021-11-24 16:22:17 +01:00
Fedor Isakov 690e8e919c Fix editor: caret position and first argument to constraint 2021-11-24 16:22:17 +01:00
Fedor Isakov 9b59925e4f Fix editor: editable=false for keywords, focus attraction 2021-11-24 16:22:17 +01:00
Fedor Isakov c5f2902cd6 Drop background color from backquote 2021-11-16 12:04:32 +01:00
Fedor Isakov 9b8946ce67 Support recovering of children features in typechecking term table 2021-11-15 13:00:03 +01:00
Fedor Isakov 8f4dd4a1c1 Fix the order of synthetic recover rules 2021-11-12 13:25:47 +01:00
Fedor Isakov 365883a099 Fix broken representation of terms with specification 2021-10-27 12:03:49 +02:00
Fedor Isakov cf04a60cc9 Minor improvements in displaying terms and activation trace 2021-10-26 17:46:41 +02:00
Fedor Isakov 257bc196c3 Re-save all models 2021-10-26 17:46:40 +02:00
Fedor Isakov 8dbf94c7da Fix broken withParam() invocation of query template 2021-10-14 18:28:43 +02:00
Fedor Isakov f3c12ec4af Fix missing dependency 2021-09-23 15:16:17 +02:00
Fedor Isakov 2d52921561 Fix and optimize dependencies 2021-09-22 17:08:25 +02:00
Fedor Isakov 177e55820e Move label definition to the language that uses it 2021-09-22 17:08:25 +02:00
Fedor Isakov 0840e5ecfb Replace quotation with "node builder" to satisfy generator 2021-09-22 17:08:25 +02:00
Fedor Isakov 17c2c73aeb Minor code cleanup 2021-09-22 17:08:25 +02:00
Fedor Isakov ae2492ab57 Update types aspect of the test language 2021-09-21 17:54:51 +02:00
Fedor Isakov ac89cbb3b6 New features in typechecking lang to facilitate working with types
Introduce TypeTermTable as an alternative to TermTable dedicated to
types. A "type term" declaration has a type builder: an expression
which creates the corresponding SNode.
To access term's features on can use FeatureReferenceExpression.

The new _ExpectType_ _RecoverType_ rule tables are automatically added
to the user's 'types' aspect and serve to extract types from types.

AssignType and RecoverType pseudo-constraints can be used to
extract/assign or just extract the type, correspondingly.
2021-09-21 17:54:51 +02:00
Fedor Isakov b122872890 Refactor Result to be able to clear the cause 2021-09-21 17:54:51 +02:00
Fedor Isakov 3f606ba63c Refactor the way parameters are passed to expand macro
Instead of the hack that that uses session parameters to pass
parameters to expandMacro, use directly `withParams` method
on macro token. All parameters are mapped to corresponding fields.

Introduce CustomSessionParameter to access parameters in
TemplateApplicationSession.
2021-09-21 17:54:51 +02:00
Fedor Isakov 21cbd6e926 Simplify a generator template query 2021-09-21 17:54:51 +02:00
Fedor Isakov 42d9970172 Extend ValueFeature with type, deprecate getter 2021-09-21 17:54:50 +02:00
Fedor Isakov f96211273c Drop hack for finding refs in LateParameter, switch to internal var ref 2021-08-17 09:30:49 +02:00
Fedor Isakov 5bd41f1098 Introduce typechecking term table 2021-08-17 09:30:35 +02:00
Fedor Isakov c6453b7293 Introduce hack for finding refs in LateParameter 2021-08-17 09:29:57 +02:00
Fedor Isakov 6b0526ba31 Introduce language j.m.l.types to contain aspect-related generator mappings 2021-08-17 09:29:21 +02:00
Fedor Isakov 837be3fe64 Fix reference to query classifier to be a node, initialize TypecheckingQueries 2021-08-04 13:24:59 +02:00
Fedor Isakov 4b64377ac6 Introduce dsl constructs for typechecking queries
A root TypecheckingQueries is to replace the generic Queries
from j.m.lang.coderules.
2021-07-29 12:46:57 +02:00
Fedor Isakov 4f22a7959d Fix LateExpression generator: avoid interfering with other gen templates 2021-07-29 12:46:57 +02:00
Fedor Isakov 4d06adf85b Rename isAssigned to isNonfree for consistency 2021-07-22 15:46:21 +02:00
Fedor Isakov 4ea1d0cadd Feature: isGround and isNonground predicates, MPSCR-94 2021-07-22 13:59:19 +02:00
Fedor Isakov 4e02433491 Make rule input and session variables available in rule methods 2021-07-06 13:42:41 +02:00
Fedor Isakov 2425fe933a Ensure dependency is tracked for nested expand macro applications
Expand macro passes the rule's input to nested macro calls.
This adds the macro input as the dependency of the rule's input.
As a result, incremental processing starts working in some cases.
2021-06-30 18:25:46 +02:00
Fedor Isakov f83757b69a Rollback aspect devkit for bootstrap languages 2021-06-29 18:10:21 +02:00
Fedor Isakov 17e1bc4589 Applied migration 2021-06-29 14:51:10 +02:00