質問編集履歴

3

タグ減らし

2019/07/11 10:44

投稿

imudak
imudak

スコア40

test CHANGED
File without changes
test CHANGED
File without changes

2

現状調べたこと、構想と追記しました

2019/07/11 10:44

投稿

imudak
imudak

スコア40

test CHANGED
File without changes
test CHANGED
@@ -37,3 +37,57 @@
37
37
 
38
38
 
39
39
  のようにコード生成できます。
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+ ###[現状調べたこと、構想] --- 2019/7/11追記 ---
48
+
49
+ 簡潔に書いたつもりが丸投げっぽくなっているそうなので、現状調査したことと、構想を書いておきます。
50
+
51
+ 簡単に言うと自作します。
52
+
53
+
54
+
55
+ 1. PlantUMLのファイルを読み込んで字句解析、構文解析します。
56
+
57
+
58
+
59
+ - 構文解析ライブラリには適当なものを使います。
60
+
61
+ - 以下ではLarkを使っていますが、この選択が良いのかはあまり自信ありません。
62
+
63
+
64
+
65
+ [Python 構文解析ライブラリLarkを使って簡単な自作言語処理系をつくる - Qiita](https://qiita.com/k5trismegistus/items/358d58bcd50eb3f67fe8)
66
+
67
+
68
+
69
+ 2. 1のためにまずはEBNFファイルを作ります。
70
+
71
+
72
+
73
+ - 適当にみつけた以下のEBNFファイルを元にします。
74
+
75
+ - どちらにしろ以下ではカバーできる定義が足りないので、自作に近い追記が必要ですが…
76
+
77
+ - あと以下では日本語名が使えないようですので、その修正も必要です。
78
+
79
+ - 定義は足りないなりに、この段階まではできています。
80
+
81
+
82
+
83
+ [plantuml-parser/grammar.ebnf at master · pjcuadra/plantuml-parser](https://github.com/pjcuadra/plantuml-parser/blob/master/src/grammar/grammar.ebnf)ser/commit/520cc90d0fcd9f82867d72fff85c34933f40a2e3)
84
+
85
+
86
+
87
+ 3. 1,2で作った構文ツリーを元にスケルトンを吐き出します。
88
+
89
+
90
+
91
+ - pythonで自作します。
92
+
93
+ - ひとまずのターゲット言語はC言語です。クラス表現はSMCを参考にします。

1

タグ追加

2019/07/11 01:49

投稿

imudak
imudak

スコア40

test CHANGED
File without changes
test CHANGED
File without changes