You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+148
Original file line number
Diff line number
Diff line change
@@ -31,3 +31,151 @@ For details see [wiki](https://github.com/IETS3/iets3.opensource/wiki/Supported-
31
31
32
32
### Slack
33
33
Ask your questions about KernelF and talk to other users and authors of the IETS3 language library on the public [Slack channel](https://jetbrains-mps.slack.com/archives/CBM449YG5)
34
+
35
+
## Opening the project in MPS
36
+
37
+
Open the folder [ROOT]/code/languages/org.iets3.opensource in MPS where ROOT is the root folder of this project.
38
+
39
+
## Project Structure
40
+
41
+
The project is separated into the following virtual packages:
42
+
43
+
### _build
44
+
45
+
| Name | Description |
46
+
| ------------- | ------------- |
47
+
|[build-allScripts.xml](http://127.0.0.1:63320/node?ref=r%3A2dd6bcf7-29b5-4f7c-9303-3883db63b802%28org.iets3.opensource.allScripts.build.build%29%2F6354991446090808661)| This ant script generates the overall build script that also contains the script for running the tests from the command line. |
48
+
|[prebuild.xml](http://127.0.0.1:63320/node?ref=r%3Ac3d6ae0c-8b10-477f-a3e9-5dc8700ceb13%28org.iets3.opensource.build.build%29%2F2278979034075239872)| This ant script contains the analysis language, core base, and expressions base. |
49
+
|[build-languages.xml](http://127.0.0.1:63320/node?ref=r%3Ac3d6ae0c-8b10-477f-a3e9-5dc8700ceb13%28org.iets3.opensource.build.build%29%2F6354991446090808661)| This ant script contains all languages and generates the finished zip file. |
50
+
|[build-distro.xml](http://127.0.0.1:63320/node?ref=r%3Ac3d6ae0c-8b10-477f-a3e9-5dc8700ceb13%28org.iets3.opensource.build.build%29%2F8098566576010865830)| This ant script combines the files from the mbeddr platform with the files from the previous script. |
51
+
|[build-tests.xml](http://127.0.0.1:63320/node?ref=r%3Ac3d6ae0c-8b10-477f-a3e9-5dc8700ceb13%28org.iets3.opensource.build.build%29%2F950113207300454071)| This ant script contains all the test languages and solutions and also runs the KernelF generated tests as part of the build. This is achieved by including an instance of [RunKernelFGeneratedTests](http://127.0.0.1:63320/node?ref=r%3A2ce4b587-5587-43f7-8005-e3fb84f231b0%28org.iets3.opensource.build.gentests.structure%29%2F4604852045247358203). |
52
+
53
+
### analysis
54
+
| Name | Description |
55
+
| ------------- | ------------- |
56
+
| org.iets3.analysis.base | This language contains basic concepts and interfaces and a plugin solution related to solvers. |
57
+
58
+
### assessment
59
+
| Name | Description |
60
+
| ------------- | ------------- |
61
+
| org.iets3.core.assessment | It contains an [AssessmentQuery](http://127.0.0.1:63320/node?ref=r%3Af7764ca4-8c75-4049-922b-08516400a727%28com.mbeddr.core.base.structure%29%2F865293814733115675) to find [untraced elements](http://127.0.0.1:63320/node?ref=r%3A23d7e401-548b-485c-bdf1-c060e259073c%28org.iets3.core.assessment.structure%29%2F3587241503657463099). It can be used inside an instance of [Assessment](http://127.0.0.1:63320/node?ref=r%3Af7764ca4-8c75-4049-922b-08516400a727%28com.mbeddr.core.base.structure%29%2F865293814733114044) inside an [AssessmentContainer](http://127.0.0.1:63320/node?ref=r%3Af7764ca4-8c75-4049-922b-08516400a727%28com.mbeddr.core.base.structure%29%2F865293814733114043). It also contains a [generic trace query](http://127.0.0.1:63320/node?ref=r%3A23d7e401-548b-485c-bdf1-c060e259073c%28org.iets3.core.assessment.structure%29%2F6913547888673489335) to find traced elements. |
62
+
63
+
### comp
64
+
| Name | Description |
65
+
| ------------- | ------------- |
66
+
| org.iets3.components.core.interpreter | It contains the [interpreter](http://127.0.0.1:63320/node?ref=r%3A3cecc670-c5e6-4794-af17-a5638180af01%28org.iets3.components.core.interpreter.plugin%29%2F5228096169281078735) for the components language. |
67
+
| org.iets3.components.core.sandbox | It is a sandbox for components. |
68
+
| org.iets3.components.plugin | It contains a [custom project view](http://127.0.0.1:63320/node?ref=r%3A8e7e3b0c-cd10-406a-8ea9-1757f9338557%28org.iets3.components.plugin.plugin%29%2F1589875445590468534]) that displays all the components in the project. |
69
+
| tests.ts.components.core | It contains test cases related to the components language. |
70
+
| org.iets3.components.core| This languages add support for components. More info: [page 24](https://voelter.de/data/pub/kernelf-reference.pdf#page=24)|
71
+
| org.iets3.components.req | It adds support for components (alias:components) in [requirements](http://127.0.0.1:63320/node?ref=r%3A82415404-e5c7-47c8-ae5b-951fc882e316%28org.iets3.req.core.structure%29%2F5151426049053136028). |
72
+
| test.iets3.component.attribute | This language adds test attributes for components (see instances in components tests). |
73
+
74
+
### core
75
+
| Name | Description |
76
+
| ------------- | ------------- |
77
+
| org.iets3.core.plugin | It contains a [custom project view](http://127.0.0.1:63320/node?ref=r%3Acdcdec44-a636-42c8-b599-c146eb2ca77d%28org.iets3.core.plugin.plugin%29%2F1589875445590468534) that displays all nodes related to the specification. |
78
+
| tests.org.iets3.core.comments | It contains tests for comments. |
79
+
| org.iets3.core.attributes | It contains the language that implements attributes for components. |
80
+
| org.iets3.core.base | This language contains basic concepts and interfaces and a plugin solution related to this project. |
81
+
| org.iets3.core.users | This language allows specifying users and user directories. Not used anywhere. |
82
+
83
+
### expr
84
+
The package _genjava_ contains interpreters for generating Java code from KernelF. It also included an example for generating Java code from state machines.
85
+
86
+
#### Core language constructs (lang-core)
87
+
This package contains the following parts of KernelF ([full paper](https://voelter.de/data/books/kernelf-designEvoUse.pdf), [reference](http://voelter.de/data/pub/kernelf-reference.pdf)) including runtime solution and interpreters:
88
+
89
+
90
+
| Package | Name | Description |
91
+
| ------------- | ------------- | ------------- |
92
+
| org.iets3.core.expr.base | KernelF base language |[reference](https://voelter.de/data/pub/kernelf-reference.pdf#page=2)|
93
+
| org.iets3.core.expr.collections | support for lists, maps, sets |[page 5](https://voelter.de/data/pub/kernelf-reference.pdf#page=5)|
| org.iets3.core.expr.simpleTypes.tests | simple type tests | It contains tests for simple types. |
99
+
| org.iets3.core.expr.tests | expression test language | It implements a language for testing expressions. |
100
+
| org.iets3.core.expr.toplevel | top level expressions| It contains expressions that can be used at the top level (records, functions, constants etc). A top level can be for example a [Library](http://127.0.0.1:63320/node?ref=r%3Ada65683e-ff6f-430d-ab68-32a77df72c93%28org.iets3.core.expr.toplevel.structure%29%2F543569365052711055)|
101
+
| org.iets3.core.expr.tracing | tracing | It is a utility language that helps with tracing. |
102
+
103
+
#### Advanced language constructs (lang-advanced)
104
+
This package contains the following parts of KernelF ([full paper](https://voelter.de/data/books/kernelf-designEvoUse.pdf), [reference](http://voelter.de/data/pub/kernelf-reference.pdf)) including runtime solution and interpreters:
105
+
106
+
| Package | Name | Description |
107
+
| ------------- | ------------- | ------------- |
108
+
| org.iets3.core.expr.adt | algebraic data types(ADT)| tests: [#1](http://127.0.0.1:63320/node?ref=r%3A109d7958-4308-4f2a-95cb-ea4731803298%28test.in.expr.os.algebraic%40tests%29%2F2460310434912820190), [#2](http://127.0.0.1:63320/node?ref=r%3A75f6a9e9-cf21-495f-b1aa-7fd992d0d7d0%28test.ts.expr.os.m1%40tests%29%2F5955298286239396844)|
109
+
| org.iets3.core.expr.data | data tables | tests: [#1](http://127.0.0.1:63320/node?ref=r%3A91b05dce-7884-4f58-b31f-cc577eb13b6a%28test.in.expr.os.datatable%40tests%29%2F231307155597941680), [#2](http://127.0.0.1:63320/node?ref=r%3A75f6a9e9-cf21-495f-b1aa-7fd992d0d7d0%28test.ts.expr.os.m1%40tests%29%2F5582042358565853921)|
110
+
| org.iets3.core.expr.dataflow | data flow | tests: [#1](http://127.0.0.1:63320/node?ref=r%3Ad13efac1-a045-434f-8551-7b85e2be7d5e%28test.in.expr.os.dataflow%40tests%29%2F6603722298916716562)|
111
+
| org.iets3.core.expr.datetime | date type |[page 19](https://voelter.de/data/books/kernelf-designEvoUse.pdf#page=19)|
112
+
| org.iets3.core.expr.doc | expression documentation | It contains additional top level expressions for documentation purposes. |
113
+
| org.iets3.core.expr.lookup | lookup table | It implements a lookup table that supports a lookup method that returns the cell content at the specified index. example: [doc page 17](https://voelter.de/data/books/kernelf-designEvoUse.pdf#page=17)|
| org.iets3.core.expr.metafunction | meta functions |[page 28](https://voelter.de/data/books/kernelf-designEvoUse.pdf#page=28)|
117
+
| org.iets3.core.expr.natlang | natural language expressions | tests: [#1](http://127.0.0.1:63320/node?ref=r%3A75f6a9e9-cf21-495f-b1aa-7fd992d0d7d0%28test.ts.expr.os.m1%40tests%29%2F9215883686880841068)|
118
+
| org.iets3.core.expr.query | query expressions | It is a simple sql like querying language; tests: [#1](http://127.0.0.1:63320/node?ref=r%3Af196894a-6bc3-4955-8759-1868547f56f4%28test.in.expr.os.query%40tests%29%2F6749162445851494931)|
119
+
| org.iets3.core.expr.temporal | temporal type |[page 20](https://voelter.de/data/books/kernelf-designEvoUse.pdf#page=20)|
120
+
| org.iets3.core.expr.typetags | type tags |[page 67](https://voelter.de/data/books/kernelf-designEvoUse.pdf#page=67)|
This package contains the following parts of KernelF ([full paper](https://voelter.de/data/books/kernelf-designEvoUse.pdf), [reference](http://voelter.de/data/pub/kernelf-reference.pdf)) including runtime solution and interpreters:
| org.iets3.core.expr.process | processes including multi-party-boolean-decisions |[page 27](https://voelter.de/data/books/kernelf-designEvoUse.pdf#page=27)|
133
+
| org.iets3.core.expr.statemachines | state machines |[page 10](https://voelter.de/data/pub/kernelf-reference.pdf#page=10)|
134
+
135
+
#### Plugins
136
+
| Package | Description |
137
+
| ------------- | ------------- |
138
+
| org.iets3.core.expr.doc.plugin | It implements a [custom project view](http://127.0.0.1:63320/node?ref=r%3A2aadf869-ec0a-4845-ac24-3bc9c1244385%28org.iets3.core.expr.doc.plugin.plugin%29%2F1589875445590468534) for bookmarks([IBookmark](http://127.0.0.1:63320/node?ref=r%3A04cb519f-2059-4c60-9414-918c7823fd79%28org.iets3.core.expr.doc.structure%29%2F42223031011651425)). |
139
+
| org.iets3.core.expr.lambda.plugin | It contains refactoring actions for lambda expressions. |
140
+
| org.iets3.core.expr.plugin | It contains various actions related to the KernelF language. |
141
+
| org.iets3.core.expr.repl.plugin | It contains various actions related to REPL. |
142
+
143
+
#### Tests
144
+
The tests are grouped into the playground, [test suites](http://127.0.0.1:63320/node?ref=r%3Aba7faab6-2b80-43d5-8b95-0c440665312c%28org.iets3.core.expr.tests.structure%29%2F543569365052711055) and nodes test cases. The language _org.iets3.core.expr.testExecution_ contains a configuration for the test execution mode (generator, interpreter).
145
+
146
+
### req
147
+
148
+
This package includes all things related to requirement documents.
149
+
150
+
| Package | Description |
151
+
| ------------- | ------------- |
152
+
| org.iets3.req.plugin | It contains requirement-related actions, projection modes and a [custom project view](http://127.0.0.1:63320/node?ref=r%3A6152f7b8-7ec7-4c3a-ad96-68855bbe5797%28org.iets3.req.plugin.plugin%29%2F1589875445590468534) that displays all requirements in the project.|
153
+
| org.iets3.req.glossary | This languages allows to define terms in glossaries which can be referenced in requirement documents.|
154
+
| org.iets3.req.req.core | This language implements requirements documents. A new document can be created with the root node [RequirementsChunk](http://127.0.0.1:63320/node?ref=r%3A82415404-e5c7-47c8-ae5b-951fc882e316%28org.iets3.req.core.structure%29%2F5151426049053136028).|
155
+
156
+
### trace
157
+
158
+
This package includes all things related to tracing. More info: [page 27 debugger](https://voelter.de/data/books/kernelf-designEvoUse.pdf#page=27)
159
+
160
+
| Package | Description |
161
+
| ------------- | ------------- |
162
+
| test.iets3.core.tracequery | It contains trace tests. |
163
+
| org.iets3.core.trace | It implements trace attributes (can be for example used in components). |
164
+
| org.iets3.core.test | It is a language for trace testing. |
0 commit comments