| Commit message (Collapse) | Author | Age |
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Since we don't do pre-matching for multi-objects, there's no way to fire a
decision rule with multiple focus arguments without creating a new concrete
object for each focus argument, even if they match the same multi-object.
To be more consistent with the multi-object case, we also don't allow the same
concrete object to appear as two distict focus arguments.
|
|
|
|
|
| |
We must mark any predicate definition in a rule action as mutable so that we can
collect assertions created by rules during model generation.
|
| |
|
|
|
|
|
| |
References marked as partial are not concretized during model generation. The
should be managed by the user manually using propagation rules instead.
|
|
|
|
|
| |
Make sure we appropriate quantify over the existence of objects in negative and
transitive calls in rule preconditions.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Require all abstract domain elements to implement the AbstractValue interface.
|
| |
|
|
|
|
|
|
| |
* Customizable operator overloads.
* Customizable aggregation operators.
* Simplify ProblemQualifiedNameProvider.
|
|
|
|
|
| |
Also changes ReferenceDeclaration to declare attributes, since reference and
attributes can only be distinguished at linking time.
|
| |
|
|
|
|
|
|
|
|
| |
Make sure it is impossible to create clashing fully qualified names when
renaming a module by forbidding modules from referring to their own elements
with fully qualified names. Therefore, serializing a solution will not create
clashing fully qualified names (which would prevent serialization from
succeeding).
|
| |
|
|
|
|
|
| |
Modules without an explicitly declared name get a name automatically inferred
from their path.
|
| |
|
|
|
|
|
|
| |
* Use fully qualified names starting with :: (as in C++) to unambiguously refer
to an element.
* Name shadowing within modules.
|
| |
|
|
|
|
|
|
|
|
| |
* New default file extension: .refinery (.problem is also supported).
* Add module keyword for self-contained modules.
* Rename indiv declarations to atom declaration.
* Add node and multi declarations for explicitly declared nodes and
multi-objects, respectively.
|
|
|
|
|
|
| |
IntelliJ can handle dependencies between test configurations going in the
reverse direction compared to dependencies between main configurations, but
Eclipse can't. Manually copy some code over to break the reverse dependency.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Efficiently store cross references even if default ref(*, *): false.
Uses propagation rules instead of view queries to reason about type constraints
and multiplicity.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Now unary predicates may be used as types for cross-references.
This might create circular references between predicate, but no differently than
when the user manually creates predicates with circular references.
The reference types of containment and container references still have to be
classes, because we use the class hierarchy to encode contained types.
|
|
|
|
|
| |
Also moves model metadata into language-web, since we only use it on the
frontent.
|
| |
|
| |
|
|
|
|
| |
Use a simpler data structure for constructing simple names.
|
|
|
|
|
|
|
|
| |
Rename VIATRA subprojects to Refinery Interpreter to avoid interfering with
Eclipse Foundation trademarks.
Uses refering to a specific (historical) version of VIATRA were kept to avoid
ambiguity.
|
| |
|
|
|
|
| |
"#" should not appear in URI fragments, use "::" instead.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
When a projection indexer is constructed for a production node, the projection
memory is only populated if changes are being propagated. The cache doesn't get
populated even if changes are flushed afterwards. This not only returns invalid
query results, but also a duplicate deletion exception will be thrown when the
production node tries to delete a tuple from the index memory.
To counteract this issue, we enable update propagation while a matcher (and its
associated indexers) are being created.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Use a simplified name invalidContainer, since this pattern may match even if
there is a sufficient number of ERROR containers.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Also makes model seeds cancellable to reduce server load during semantic
analysis.
|
|
|
|
|
| |
Decision trees can only handle relations with 1 level and up, so we use a
special case for nullary relations.
|
|
|
|
|
| |
Make our modifications more maintainable by editing the source code directly
instead of using reflection.
|
| |
|