Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
pumcl
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
YAPEX
pumcl
Commits
20d9eff5
Commit
20d9eff5
authored
7 years ago
by
Janis Daniel Dähne
Browse files
Options
Downloads
Patches
Plain Diff
- updated readme
- added why there is no namespace support comment
parent
e489f41d
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
LangDefClassdiagrams.pdf
+0
-0
0 additions, 0 deletions
LangDefClassdiagrams.pdf
compiler/backupWorking.jison
+0
-0
0 additions, 0 deletions
compiler/backupWorking.jison
readme.md
+43
-7
43 additions, 7 deletions
readme.md
with
43 additions
and
7 deletions
LangDefClassdiagrams.pdf
+
0
−
0
View file @
20d9eff5
No preview for this file type
This diff is collapsed.
Click to expand it.
compiler/backup.jison
→
compiler/backup
Working
.jison
+
0
−
0
View file @
20d9eff5
File moved
This diff is collapsed.
Click to expand it.
readme.md
+
43
−
7
View file @
20d9eff5
# 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???
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment