Skip to content

Commit 3194fcf

Browse files
Update README.md
1 parent edf97b5 commit 3194fcf

File tree

1 file changed

+12
-14
lines changed

1 file changed

+12
-14
lines changed

README.md

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,33 +22,31 @@ Metacello new
2222
Carrefour links entities in a FAST model to entities in a Famix model.
2323
It is composed of 2 parts:
2424
- Carrefour meta-model
25-
- Binder
26-
27-
Steps:
28-
1. Generate the FAST model of a Famix entity (eg. a FamixMethod) with `#getFASTModel`
29-
2. Bind the nodes in the FAST model to entities in the Famix model with `bindFASTModel:`
25+
- Binder with two main steps involved:
26+
1. Generate the FAST model of a Famix entity (eg. a FamixMethod) with `#getFASTModel`
27+
2. Bind the nodes in the FAST model to entities in the Famix model with `bindFASTModel:`
3028

3129
### Carrefour meta-model
3230

33-
Does not do much, adds relations between (language dependent) Famix entities and (language dependent) FAST entities.
31+
Represents relations between Famix entities and FAST entities.
32+
33+
The relations are typically between:
34+
- FamixMethod and FASTBehaviouralEntity
35+
- FamixStructuralEntity and FASTVariableDeclarator, FASTExpression, or FASTAssignement
36+
- FamixInvocation and FASTFunctionCall or FASTMessageSend
37+
Note: *class names are only indicative, they do not really exist in any Famix or FAST meta-model*
3438

3539
### Generating the FAST model
3640

3741
Done by a *language dependent* parser.
3842
Each concerned FamixEntity should know how to do it by implementing `#getFASTModel`.
39-
For example in Java, this method is implemented by `FamixJavaMethod` and all the "strucutred types" (`FamixJavaClass`, `FamixJavaEnum`, `FamixJavaException`).
43+
For example in Java, this method is implemented by `FamixJavaMethod` and all the main "structured types" (`FamixJavaClass`, `FamixJavaEnum`, `FamixJavaException`).
4044

4145
### Binding
4246

43-
Done by visiting the FAST model (an AST).
44-
Again needs a *language dependent* visitor.
47+
Done by visiting the FAST model (an AST) and looking for corresponding Famix entities to each FAST entity.
4548
It is implemented in `bindFASTModel:`
4649

47-
Bindings need to be created between (class names are only indicative, they do not really exist in any Famix or FAST meta-model):
48-
- FamixMethod and FASTBehaviouralEntity
49-
- FamixStructuralEntity and FASTVariableDeclarator + FASTExpression + FASTAssignement
50-
- FamixInvocation and FASTExpression
51-
5250
## Developers
5351

5452
### Update tests

0 commit comments

Comments
 (0)