Refactored to allow ConceptEvaluator

This commit is contained in:
2019-11-14 22:04:38 +01:00
parent 576ce77740
commit 9e10e77737
30 changed files with 2406 additions and 1007 deletions
+56
View File
@@ -0,0 +1,56 @@
class Concept:
* name
human reading name of the concept. It is how the concept will be referenced
* is_builtin
Simple flag to make the difference between user defined concept and builtins
* is_unique
To manage singleton. There should be only one instance of the concept if True
* key
It is the name of the concept, where all variables, or the obj are replaced by
__var__x (x is the number of the variable). It's use to quickly find concepts
with variables
* id
The key is the unique identifier for the class of concept. The concept may be
modified along its life, but its key will never change
* where
preconditions for the variables of the concept. Body will be executed only
if the where conditions on the properties are True
* pre
Execution context to verified before executing the context
* post
Post conditions to verify, once the context is executed
* obj
main or principal subject of the concept
* body
Code or value of the concept
* desc
explanation of the concept
* digest
SHA 256 of all properties. It allows
* props
other properties of the concept (obj is the first one)