Commit Graph

161 Commits

Author SHA1 Message Date
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
Fedor Isakov ee0b98f9db Rename "sampleLang" to "baseLanguageExt" 2017-06-12 16:32:49 +02:00
Fedor Isakov f9e9e7956a Import the sample language to the tests model. Fix the test. 2017-06-12 13:22:41 +02:00
Fedor Isakov 60fb9388a1 Support for using rule input reference in a java expression. 2017-06-12 12:22:41 +02:00
Fedor Isakov effa917f63 Optimize module/model imports. Get rid of "exported" dependencies (too much trouble with the ant files). 2017-06-09 09:51:35 +02:00
Fedor Isakov f30710f463 Updated the reactor libs. Adapted to the renamed interfaces in the reactor API. 2017-06-05 14:34:14 +02:00
Fedor Isakov ef375de9fd Optimizing model imports 2017-06-01 15:45:49 +02:00
Fedor Isakov 15fcef19eb Return the more conventional symbols for unification and equality constraints. 2017-05-29 15:30:57 +02:00
Fedor Isakov 7d860de465 Better editor representation for Typeof constraint. Another minor rename (AsType{Pseudo}Constraint). 2017-05-22 10:34:12 +02:00
Fedor Isakov 8043623d09 Rename AssignConstraint -> UnifiesConstraint, change alias and representation to tilde. Equals constraint has equals sign. 2017-05-22 10:21:49 +02:00
Fedor Isakov cff4669e3f Substitution and transformation actions for easier input of logical variables and terms. 2017-05-19 14:46:22 +02:00
Fedor Isakov 32618d55bf Specify this's classifier when referring to logical variable declared in the type definition. 2017-05-19 12:11:50 +02:00
Fedor Isakov 6e33dc3e0e A workaround for generating recursive structures. 2017-05-18 13:21:53 +02:00
Fedor Isakov 7dae44e27e Better editor presentation for constraint and type declaration. 2017-05-18 13:14:35 +02:00
Fedor Isakov 0c53a5b57a Enable optional arguments in user constraints. 2017-05-12 11:35:02 +02:00
Fedor Isakov db9e27ace4 Drop quotation marks in LogicalExpression. 2017-05-12 10:46:43 +02:00
Fedor Isakov 7a9dc002c0 Rename AssignedLogicalVariable -> PatternLogicalVariable, LogicalVariableReference -> LogicalVariable 2017-05-11 13:31:17 +02:00
Fedor Isakov 4b94f1726a Drop AbstractLogicalVariable 2017-05-11 13:18:49 +02:00
Fedor Isakov bbd00b99eb Refactoring in the typesystem2 language: push down "index" feature into LogicalVariableReference as "position". 2017-05-11 13:10:34 +02:00
Fedor Isakov 77cb4c42f9 Simplifying the editor for logical variables: brackets only for the declaration, hash for index access, drop backticks. 2017-05-10 11:40:30 +02:00
Fedor Isakov 3d7e9c8134 Cons-list-like editor for the term list. 2017-05-09 15:40:55 +02:00
Fedor Isakov 2b060299f6 Editor beautification: lighter colors, less highlighting, better layout, curly braces for term features 2017-05-09 14:36:40 +02:00
Fedor Isakov 04397ff0f7 Rename TypeTerm* to Term*, collect together term-related generator templates, drop obsolete code. 2017-05-04 13:50:58 +02:00