Commit Graph

183 Commits

Author SHA1 Message Date
Fedor Isakov ab8f4709ee Make checking for garbage optional by default. Garbage is always reported though. 2017-12-04 12:30:21 +01:00
Fedor Isakov 323cfdf080 Introduce environment variable to control whether to report garbage constraints.
Fix NPE on missing rules for a stage during rules application.
2017-11-15 11:46:44 +01:00
Fedor Isakov 1ba6449525 NPE guards for broken typesystem manifest. 2017-11-14 15:20:53 +01:00
Fedor Isakov 83b52e8b45 Drop usages of java expression solver, deprecate the API calls that require it. 2017-11-14 15:09:33 +01:00
Fedor Isakov 6ba936e584 Introduce prototype for term declarations. Use term symbols to differentiate terms instead of "final" features. Simplify the editor. 2017-11-12 16:45:04 +01:00
Fedor Isakov b0f9150482 Typesystem2 lang: migration to clear term declarations using the arguments; drop term arguments suppport; default implementation for term features in the generator; fix term editor. 2017-11-10 12:13:24 +01:00
Fedor Isakov 5c6457b01a Typesystem2 lang: migration to get rid of parameters to term invocations. Fix a generator template for pattern terms. 2017-11-10 10:32:48 +01:00
Fedor Isakov ae40717078 Typesystem2 lang: Structure change to move constraint declarations closer to where they are used. 2017-11-09 14:06:39 +01:00
Fedor Isakov c9af35e14b Typesystem2 lang and runtime: introduce CopyItem to copy terms recursively; specify MetaLogical type explicitly in the runtime interfaces; optimize generator templates. 2017-11-07 14:13:07 +01:00
Fedor Isakov 1b86c47cac Typesystem2 lang: Deprecate LogicalExpression, migration to replace with the one from Logic lang. Support generation of ValueOf in LateExpressions. 2017-11-01 10:51:42 +01:00
Fedor Isakov 26cd2c0416 Fix: LateExpression to accept LogicalContext, return the missing generation template for logical context. 2017-10-30 13:18:08 +01:00
Fedor Isakov 7f1e07ebe7 Typesystem2 lang: Switch to using LateExpression for handling Java code in logical clauses; Introduce ExpressionItem, create a migration that replaces LogicalValue with ExpressionItem; Migration to replace LogicalValue; Drop generation of ExpressionSolver. 2017-10-27 16:30:28 +02:00
Fedor Isakov 0ead14f24b Applied migration in Logic lang. 2017-10-25 16:33:09 +02:00
Fedor Isakov 57b5017c74 Typesystem2 lang: Support arbitrary data types for logicals; Specify data type of a constraint argument; Intentions to convert clause list to/from template form; Refactoring in Logic lang. 2017-10-25 16:33:09 +02:00
Fedor Isakov 4d2f6c4720 Drop usages of hardcoded "node" symbol. Rely on finders. 2017-10-24 16:05:05 +02:00
Fedor Isakov 4f5d2c62fe Typesystem2 lang: Deprecate an obsolete superfluos language construct. 2017-10-23 13:58:47 +02:00
Fedor Isakov bc3ff79a9c Migration applied: extract ListRole. 2017-10-23 12:08:50 +02:00
Fedor Isakov e9a35f4fae Fix module dependencies 2017-10-23 10:23:12 +02:00
Fedor Isakov c94be5ac3b Typesystem2 language: drop unused (superfluous) concept, drop string hacks. Getting rid of hardcoded term features. 2017-10-19 17:54:59 +02:00
Fedor Isakov 7aef68dfc3 Typesystem2 language refactoring: Delete obsolete unused code. Rename the runtime model (type->macro). 2017-10-18 12:41:49 +02:00
Fedor Isakov 19af096768 Typesystem2 language: new nomenclature, "Macro Table" instead of "Type Table", call/expand operations instead of newType/asType, specify applicable concept as MacroInputDeclaration's type, replace TypeNodeExpression with MacroInputParameter, migration. 2017-10-16 13:55:32 +02:00
Fedor Isakov e60bfc4158 Typesystem2 lang: Use NodeAnchor to make a reference to a node explicit. Replace LogicalValue with Expression where applicable. Drop the type-dependent hacks, git rid of constructing terms by hand in AnchorUtil. Migrations. 2017-10-13 11:51:18 +02:00
Fedor Isakov 1a284c9c58 Typechecking templates: Ensure required nodes are specified by the rules. Raw classifier types support. 2017-10-13 11:49:45 +02:00
Fedor Isakov 7cdbb939ef Include into the processing the required node for standalone rules. 2017-10-09 13:15:13 +02:00
Fedor Isakov 6aadc5a9b5 Fix the list of constraints not considered garbage. 2017-10-04 15:47:02 +02:00
Fedor Isakov 941e62fa55 Fix generation of 'for' and other inheritors of IContainStatementList.
Skip body clauses from building the list of required nodes.
2017-10-01 14:37:33 +02:00
Fedor Isakov 6f95100696 Standardise term symbol names.
Typechecking UI: display variable values in the activation trace view as condensed terms.
2017-09-20 16:23:31 +02:00
Fedor Isakov 2b123d9f42 Apply rule templates from all stages in one pass.
A heuristic to collect nodes required for local typechecking.
Minor changes in typesystem2 runtime.
2017-09-14 18:54:19 +02:00
Fedor Isakov a6fffb46c9 Drop LogicalSubstitution type and runtime class. 2017-08-22 11:47:35 +02:00
Fedor Isakov 2aa4717ae7 Typesystem2 lang: move the context parameter declarations to a separate root. 2017-08-22 11:47:35 +02:00
Fedor Isakov 6c56623987 Minor refactoring in CHR program producing code: avoid passing stage as a parameter. 2017-08-22 11:47:35 +02:00
Fedor Isakov 7d926f5cdf Extract typechecking dependencies from all node anchors in typeof, asType and newType constraints. 2017-08-22 11:47:34 +02:00
Fedor Isakov 78c7f71e9a Refactoring the code that launches typechecking to better separate concerns.
Extract TypeAspectRuntime.
Support building typechecking program for sequence of nodes.
Moving classes/models around to get rid of cyclic deps.
2017-08-16 15:29:23 +02:00
Fedor Isakov 243932d6a1 Collect required nodes from TypeofConstraint anchors. 2017-08-15 15:14:36 +02:00
Fedor Isakov 64546445ef Merge two generator templates for rule templates into one, simplify the internal rule application API. 2017-08-14 16:00:09 +02:00
Fedor Isakov 9a9dc9bd08 Refactoring rule application API and generator: consolidate all logic into token, make token a private API, switch to prototype extension of rule templates. Cleaning up the generator. 2017-08-14 13:33:50 +02:00
Fedor Isakov 9e5eb91089 Minor refactoring of rules application logic: extract specific subclasses of NodeWalker for different kinds of walks. 2017-08-08 11:56:19 +02:00
Fedor Isakov 60ef0acb6a Remove dependency on guava. 2017-07-28 20:33:10 +02:00
Fedor Isakov 5c4fb50a63 Reorganize and repackage the code to better reflect purpose of the modules. 2017-07-28 19:13:48 +02:00
Fedor Isakov aac95b2b25 Move typesystem2.helper.plugin to typechecking.plugin. Drop typesystem2.helper solution. 2017-07-28 13:58:37 +02:00
Fedor Isakov 804cc9140b Refactoring typechecking API: extract cache component to the plugin, change the cache updater contract to factory, simplify TestLaunchTypechecking. 2017-07-28 13:51:15 +02:00
Fedor Isakov 757d869cf3 Rewrite tests without using NodeTestCase's header. Update TypeNodeManager and Typechecker to both be initialized async, add a dispose call for Typechecker. 2017-07-27 15:18:20 +02:00
Fedor Isakov 2908543afe Refactoring typechecking steps to extract the core part. Get rid of the persistency-dependent model, use a bare EditableSModelBase for types. 2017-07-25 13:55:55 +02:00
Fedor Isakov e970b2443a Extract typechecking-related stuff to a separate solution 'j.m.typechecking' 2017-07-25 10:30:29 +02:00
Fedor Isakov 20622554f2 Switch to MPS 172 latest RC build. Fix a couple of parent-invariant violations in the type system, remove obsolete intention. 2017-07-19 16:22:59 +02:00
Fedor Isakov 7d422d4921 Avoid requesting SNode's presentation for the constraints program: too slow. 2017-07-18 11:25:31 +02:00
Fedor Isakov 9e8c5145d3 Add a missing dependency, fix the error. 2017-06-12 21:55:53 +02:00
Fedor Isakov 0a615c8490 Rename solution "typesystem2.test" to "typechecking.test". 2017-06-12 19:01:49 +02:00
Fedor Isakov 51263e9b8b Reorganizing the code, optimize the number of solutions. Delete empty solutions. 2017-06-12 18:55:55 +02:00
Fedor Isakov 663c58d880 Delete empty generators. Fix the import errors. 2017-06-12 16:45:00 +02:00