RagConnect issueshttps://git-st.inf.tu-dresden.de/jastadd/ragconnect/-/issues2022-01-06T11:16:31+01:00https://git-st.inf.tu-dresden.de/jastadd/ragconnect/-/issues/41Make documentation multi-versioned2022-01-06T11:16:31+01:00René SchöneMake documentation multi-versioned- use `mike` to provide switch for versions
- show (potentially unstable) version in branch `dev` as `dev`- use `mike` to provide switch for versions
- show (potentially unstable) version in branch `dev` as `dev`0.3.2René SchöneRené Schönehttps://git-st.inf.tu-dresden.de/jastadd/ragconnect/-/issues/20Extend documentation for subtree update and incremental eval2021-11-24T10:10:15+01:00René SchöneExtend documentation for subtree update and incremental eval- [ ] document subtree functionality
- [ ] distinguish explicit dependencies and incremtal eval with automatic dependencies
- [x] resolve #13- [ ] document subtree functionality
- [ ] distinguish explicit dependencies and incremtal eval with automatic dependencies
- [x] resolve #130.3.2René SchöneRené Schönehttps://git-st.inf.tu-dresden.de/jastadd/ragconnect/-/issues/13Check and update documentation2021-11-23T18:01:12+01:00René SchöneCheck and update documentationMaybe #12 is not the only problem with the documentation. Check for possible errors or inconsistencies.
- state, that `"--useJastAddNames"` is expected as parameter in relast
- change links in using
- read1write2 -> `https://git-st.in...Maybe #12 is not the only problem with the documentation. Check for possible errors or inconsistencies.
- state, that `"--useJastAddNames"` is expected as parameter in relast
- change links in using
- read1write2 -> `https://git-st.inf.tu-dresden.de/jastadd/ragconnect/-/tree/master/ragconnect.tests/src/test/01-input/read1write2`
- setup properly -> `/adding` (ensure that adding is not considered as subpage of using)
- change links in adding
- compiler options -> `/using` (ensure that using is not considered as subpage of adding)0.3.2René SchöneRené Schönehttps://git-st.inf.tu-dresden.de/jastadd/ragconnect/-/issues/31Ensure correct connect and disconnect functionality2021-09-13T09:55:28+02:00René SchöneEnsure correct connect and disconnect functionality- Connecting to the same URI is currently restricted. Check if this restriction is necessary, and remove it if not
- Disconnect is untested so far. Add tests, and check if it works as expected- Connecting to the same URI is currently restricted. Check if this restriction is necessary, and remove it if not
- Disconnect is untested so far. Add tests, and check if it works as expected0.3.2René SchöneRené Schönehttps://git-st.inf.tu-dresden.de/jastadd/ragconnect/-/issues/21Allow connection endpoints for list nonterminals2021-09-13T09:55:02+02:00René SchöneAllow connection endpoints for list nonterminals## Current situation
Example:
`grammar.relast`:
```
Root ::= A B*;
A ::= <Id> <Value> ;
B ::= <Id> <Value> ;
```
Currently only the following is possible in `example.connect`:
```java
receive tree Root.A ;
```
And as a workaround to a...## Current situation
Example:
`grammar.relast`:
```
Root ::= A B*;
A ::= <Id> <Value> ;
B ::= <Id> <Value> ;
```
Currently only the following is possible in `example.connect`:
```java
receive tree Root.A ;
```
And as a workaround to also be able to receive `B*`, one has to introduce `WrapperB`:
```
Root ::= A WrapperB ;
WrapperB ::= B* ;
A ::= <Id> <Value> ;
B ::= <Id> <Value> ;
```
and
```java
receive tree Root.WrapperB ;
```
## With this feature
With this extensions, it should also be possible to update lists in `example.connect`:
```java
receive tree Root.B ;
```
Potentially, a new choice is required to either _set_ or _append to_ the list, e.g. in `example.connect`,
```java
receive tree with set Root.B ;
// or
receive tree with add Root.B ;
```
## Possible Scenarios
- Receiving a message containing multiple elements (of the same type) which are transformed into a JastAddList and
- **L1** then set as the new list, *or*
- **L2** then appended to the existing list
- The received message only contains one element and
- **S1** there are multiple connect statements called where each topic is associated with a fixed list position, and the received element is set for this position, *or*
- **S2** there is one connect statement using a wildcard (`#` for mqtt) and each new topic is associated with a new fixed list position, and the received element is set for this position, *or*
- **S3** it will be added to the list
- *RS*: For S1, it is unclear, whether "empty" nodes are added upon connect, or in front of a node if previous nodes do not yet have received an initial value, or not at all
- *RS*: For S1 and S2, RagConnect could add a new token to the nonterminal of the list (`B` in the example) to represent the origin "topic (part)"
## Examples for receiving lists
In both cases, connecting is as follows:
```java
root.connectB("node/listB");
```
Assuming an empty list at the beginning, receiving different nodes (only Id shown) results in the following behaviour:
| Approach | Initial | After receiving `[1]` | After receiving `[2,3]` | After receiving `[4]` |
| --- | --- | --- | --- | --- |
| L1 | `[]` | `[1]` | `[2, 3]` | `[4]` |
| L2 | `[]` | `[1]` | `[1, 2, 3]` | `[1, 2, 3, 4]` |
## Example for receiving single values
S1:
```java
root.connectB("listB/first");
root.connectB("listB/second");
root.connectB("listB/third");
root.connectB("listB/fourth");
```
S2:
```java
root.connectB("listB/#");
```
S3:
```java
root.connectB("listB");
```
Assuming an empty list at the beginning, receiving nodes (Id and Value shown as `Id:Value`) via different topics results in the following behaviour.
Note, that for S3 the topic is always `listB` instead of the listed one.
| Approach | Initial | `1:1` at `listB/first` | `4:0` at `listB/fourth` | `2:2` at `listB/first` | `3:3` at `listB/third` |
| --- | --- | --- | --- | --- | --- |
| S1 | `[]` | `[1:1]` | `[1:1, <empty>, <empty>, 4:0]` | `[2:2, <empty>, <empty>, 4:0]` | `[2:2, <empty>, 3:3, 4:0]` |
| S2 | `[]` | `[1:1]` | `[1:1, 4:0]` | `[2:2, 4:0]` | `[2:2, 4:0, 3:3]` |
| S1 | `[]` | `[1:1]` | `[1:1, 4:0]` | `[1:1, 4:0, 2:2]` | `[1:1, 4:0, 2:2, 3:3]` |0.3.2René SchöneRené Schöne