Commit Graph

392 Commits

Author SHA1 Message Date
Fedor Isakov 8bc0ddb894 Refactorings and code cleanup in the API. Renamed BuiltinConstraint -> Predicate. SessionSolver to replace Symbols. Decouple Predicate and solverClass. 2015-12-03 19:50:27 +01:00
Fedor Isakov 24daf3bd56 Better display resulting types as variable names 2015-12-03 10:09:48 +01:00
Fedor Isakov 4b2f5bf81b Fix Tuple5 (WtF?) 2015-11-30 11:50:47 +01:00
Fedor Isakov a3fcf64f79 Optimizing imports to avoid unwanted dependencies 2015-11-30 11:43:18 +01:00
Fedor Isakov 368ff175cf Refactoring out the abstract planning session API 2015-11-29 13:15:29 +01:00
Fedor Isakov 0aa9e33c28 Typechecking templates: fixing bugs; experimentally treat TypeVarReference as unbound vars 2015-11-28 18:48:40 +01:00
Fedor Isakov fc65a26fbb Better processing of failures during program evaluation. 2015-11-28 18:48:40 +01:00
Fedor Isakov fceb7bd0d5 Checking type of rule code block 2015-11-28 18:48:39 +01:00
Fedor Isakov a974be75af Fixing the tests 2015-11-28 18:48:39 +01:00
Fedor Isakov 7f20db92a6 Finishing refactoring the constraints API: extracted JCHR launcher 2015-11-28 18:48:17 +01:00
Fedor Isakov b81b875197 Renamed a model constraint -> predicate to satisfy JCHR 2015-11-28 18:47:00 +01:00
Fedor Isakov 39f2084528 Added Tuple5 2015-11-28 18:47:00 +01:00
Fedor Isakov f50771f07a Refactored the generator to work nicely with node attrs 2015-11-28 18:47:00 +01:00
Fedor Isakov 78ca0b05fc Refactoring in constraints API. Extracting the abstract evaluation interface 2015-11-28 18:45:42 +01:00
Fedor Isakov 27b28e1732 Refactoring out constraint occurrences. Separating abstract rules processing API. 2015-11-22 15:36:10 +01:00
Fedor Isakov 8fdbaf7d83 Renames in the reactor API. Get rid of an obsolete concept. 2015-11-22 13:26:45 +01:00
Fedor Isakov c1d776dc3c Fix the rule template's let parameter scope 2015-11-21 16:05:33 +01:00
Fedor Isakov 4ebe3c9cbf Refactoring in logic lang rutime: moved the rules api to the reactor. 2015-11-21 16:05:01 +01:00
Fedor Isakov 0d88f5da4b Auto-magical update after moving to the latest build 2015-11-21 16:04:14 +01:00
Fedor Isakov 6ee2899266 Refactor out the abstract part of the constraints API to reactor, move the parts dependent on Atom and JCHR back into logic runtime 2015-11-20 14:46:03 +01:00
Fedor Isakov af92fe309e Refactor abstract part of the constraint solver to a separate solution 2015-11-20 11:28:09 +01:00
Fedor Isakov dd7483dbc9 Moved the rest of local logical declarations to the template clause's head 2015-11-19 19:16:36 +01:00
Fedor Isakov c1599e492b Fixing model check errors 2015-11-19 19:15:44 +01:00
Fedor Isakov e33640a55e Typechecking templates: getting rid of redundant templates, simplifying the code further 2015-11-19 16:36:16 +01:00
Fedor Isakov 1640355c34 Typechecking templates: replaced two utility methods with one accepting more parameters 2015-11-18 19:44:29 +01:00
Fedor Isakov 3a8a397299 Typechecking templates: simplifying the code, trying to unify the ways type variables are processed 2015-11-18 15:52:09 +01:00
Fedor Isakov 581131cd9f Refactoring foreach loops to for loops with index 2015-11-18 13:42:04 +01:00
Fedor Isakov 37a7e1c0e2 Drop the logical variable index starting from 1 instead of 0. Now they are treated exactly like Java arrays 2015-11-18 13:22:44 +01:00
Fedor Isakov 7bcd088a44 Typechecking templates: minor refactorings, simplifying the code 2015-11-18 12:42:50 +01:00
Fedor Isakov f38b7e39a2 Typechecking templates: add capture/2 constraint to avoid variables to appear out of inference context. Introduce wildcardType 2015-11-17 16:08:12 +01:00
Fedor Isakov f35f655199 NodePrinter to support array and boolean types 2015-11-16 15:57:19 +01:00
Fedor Isakov c6f8a43795 Enable typechecking of method body. Coerce to reference type for the ClassifierType constructor. Support for boolean and array type. 2015-11-15 19:56:39 +01:00
Fedor Isakov 8fabaa7b1e Auto-magical update after moving to the latest build 2015-11-12 15:14:34 +01:00
Fedor Isakov 8533c77448 Better printing of types to match the expected type representation 2015-11-12 12:01:20 +01:00
Fedor Isakov ff95a22ef3 Better constraints printing in external runner 2015-11-12 12:01:20 +01:00
Fedor Isakov 879e3dc2df Fix the atom ground() util method 2015-11-12 12:01:20 +01:00
Fedor Isakov af48893e4c Change the contract of logical vars's equals() to never consider the value (only the root). Update the tests. 2015-11-12 12:01:20 +01:00
Fedor Isakov 06b1de52f9 Get rid of check() constraint, switched to using headless rules to be combined in main() 2015-11-12 12:01:20 +01:00
Fedor Isakov 2166c14df3 Introduce per-rule NamingContext for logical variables. Support for launching constraint handler via main() constraint. Minor fixes. 2015-11-12 12:01:19 +01:00
Fedor Isakov 0b239153ff Array type constructor, temporarily supporting the main() constraint with => true body 2015-11-10 17:25:25 +01:00
Fedor Isakov 320e650dd5 Support for headless rules: all are collected into "main" rule with head=main() 2015-11-10 17:15:32 +01:00
Fedor Isakov 3779dbed2b Better logging of result/garbage constraints 2015-11-10 11:16:40 +01:00
Fedor Isakov 163f434bf5 Unique variable names and type bounds 2015-11-10 10:55:14 +01:00
Fedor Isakov 5a965f549e Fix the logicals equality: unbound logicals are never equal 2015-11-10 10:46:52 +01:00
Fedor Isakov 83c94857ff Subtyping paths to be searched for any type. Can successfully compute LUB(String,NullType) = Object 2015-11-09 17:01:27 +01:00
Fedor Isakov e1a961e261 Use the standard method for getting the extended classifier types 2015-11-04 12:03:27 +01:00
Fedor Isakov 105d9d7024 Simplifying templates: get rid of O(n^2) subtyping 2015-11-04 11:46:03 +01:00
Fedor Isakov bc5cfb182e Fix subtyping algorithm 2015-11-04 09:39:07 +01:00
Fedor Isakov 42705efbd4 LubSolver and SubtypePathSolver to fail with an exception. Reverse the subtyping path. 2015-11-04 09:38:01 +01:00
Fedor Isakov e62fbb49b9 Fix the anchor for ClassifierType to include parameters 2015-11-04 09:35:26 +01:00