Skip to content
Snippets Groups Projects
Commit 20d9eff5 authored by Janis Daniel Dähne's avatar Janis Daniel Dähne
Browse files

- updated readme

  - added why there is no namespace support comment
parent e489f41d
Branches
No related tags found
No related merge requests found
No preview for this file type
File moved
# PUMCL
plantUML Compiler
plantUML Compiler/ plantUML class diagrams
This is a compiler to translate plantUML Class diagrams into svg images.
Actually not all plantUML Class diagram features are supported (because they are not unambiguous).
---
**Actually the syntax is slightly different in oder to build a proper compiler/transpiler.**
We **MAYBE** want to check the class diagrams in future versions so we try to keep some more strict syntax (e.g. types) than the original plantUML.
......@@ -23,6 +26,37 @@ TODO list keywords that cannot be used as TEXT
TODO for type checker: if IDENT has no type then assume class...
### Differences between PUMCL and plantUML syntax
- the syntax `[type] [name]` is not supported in any rule, use `[name] : [type]`
(not sure if this is even possible to parse if both should be supported ... or if it's just me)
- texts needs to be enclosed in `"..."` in pumcl, plantUML uses only text
- links with `.` or `-` are not supported
- namespaces are not supported
- `{field}, {method}` modifier are not supported **BUT are ignored by the parser** so this should not break anything
- all `skinparam` are not supported
- colors are not supported
- lollipop interface are not supported
(because the semantics are not clear ... are there are classes/methods/just text ??)
- change link/relation directions are not supported
(no time)
- for packages the separator `::` is used and cannot be changed
- advanced class bodys with fancy lines are not supported
(no time)
- multiple files are not supported
So whats left?
See below for all features that are supported by the parser
---
### TODO MAYBE issues
support `"` inside strings?
#### not important
COLOR issue:
```text
class {
......@@ -37,13 +71,12 @@ Colors are encoded with `#knownColor` or hex code `#001122`.
Because of that one needs to write `# field` for protected fields.
TODO maybe this can be resolved with jison starting conditions? (https://zaa.ch/jison/docs/#lexical-analysis)
---
The parser is newline sensitive...
empty lines are allowed but some constructs
e.g. advanced classes needs to have some newlines
TODO support " inside strings (should be possible with jison starting conditions)
TODO what is TEXT/STRING --> what is allowed?
TODO how to use/build the parser??
......@@ -82,7 +115,7 @@ Parser
*-- --*
o-- --o
```
- [ ] relations 2
- [x] relations 2
```text
#-- --#
x-- --x
......@@ -408,7 +441,10 @@ Parser
}
```
- [ ] namespaces
- [ ] namespaces
Not sure what's the difference between package and namespace...
Even though namespaces has some more syntax to parse ...
Use package ;)
- [ ] lollipop interface
Not supported, not properly defined... classe/methods/text???
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment