PlantUMLからのコード自動生成
[質問]
PlantUMLからコードを自動生成する方法、ツールをご存知ないでしょうか。
###[背景]
UMLをPlantUMLで書くことが多くなり、
- PlantUML --> ソースコード(C/C++,C#,Pythonなど)
とコードの自動生成ができたら管理が楽なのに、と思い始めました。
生成コードはスケルトンでよく、ソースコード --> PlantUMLの戻しはなくても構いません。
イメージとしては、SMC: The State Machine Compiler
の自動コード生成で、
- 状態遷移図 --> ソースコード(C/C++,C#,Pythonなど)
のようにコード生成できます。
###[現状調べたこと、構想] --- 2019/7/11追記 ---
簡潔に書いたつもりが丸投げっぽくなっているそうなので、現状調査したことと、構想を書いておきます。
簡単に言うと自作します。
- PlantUMLのファイルを読み込んで字句解析、構文解析します。
- 構文解析ライブラリには適当なものを使います。
- 以下ではLarkを使っていますが、この選択が良いのかはあまり自信ありません。
Python 構文解析ライブラリLarkを使って簡単な自作言語処理系をつくる - Qiita
- 1のためにまずはEBNFファイルを作ります。
- 適当にみつけた以下のEBNFファイルを元にします。
- どちらにしろ以下ではカバーできる定義が足りないので、自作に近い追記が必要ですが…
- あと以下では日本語名が使えないようですので、その修正も必要です。
- 定義は足りないなりに、この段階まではできています。
plantuml-parser/grammar.ebnf at master · pjcuadra/plantuml-parserser/commit/520cc90d0fcd9f82867d72fff85c34933f40a2e3)
- 1,2で作った構文ツリーを元にスケルトンを吐き出します。
- pythonで自作します。
- ひとまずのターゲット言語はC言語です。クラス表現はSMCを参考にします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。