コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
Ryou Tanpo ◆AI5iRr9FjmkJ
2018/2/14 7:42
質問
SmileBASIC ソースコードの構文解析
SmileBASIC のソースコードを字句解析・構文解析しているのだが…
字句解析はすんなりできたものの構文解析がうまくできません
そもそも構文解析自体の知識がそんなにないので、構文解析とその実装について解説してくださる方がいればお願いしますー!
(ちなみに SmileBASIC そのものの知識はあります)

コメント

アバター
しんいち 2018/2/14 21:26 ◆lHy.hAWXbthn
構文解析というと、yacc/lexというものがあります(ツールというか、インタプリタというか、言語というか、何て言うんだろう^^;)。確かプチコンでどなたかが作ってたと思います。それを利用してみるのも良いかもしれませんが、yacc/lex自体の知識が無いと難しいかも知れませんね(私は昔書籍を買った覚えがあるけど、身に付かないままどこかに行ってしまいました)。

独自で解析を行うとなると、SmileBASICの場合面倒そうなのはIF、GOSUB、GOTO辺りになるのかな。いずれも構文のひとかたまりがどこからどこまでになるのかを判定するのが難しそう。
アバター
Ryou Tanpo 2018/2/14 21:47 ◆AI5iRr9FjmkJ
yacc/lex は以前ちょっとだけ触ったことがあります。第一プチコンにはないけどw

actorbug さんのソースコードチェッカーという SmileBASIC プログラムのエラーを確認するものがあったんで、それ覗いたら少し分かるかもしれないなぁー。
http://wiki.hosiken.jp/petc3gou/?Toukou%2F%A5%BD%A1%BC%A5%B9%A5%B3%A1%BC%A5%C9%A5%C1%A5%A7%A5%C3%A5%AB%A1%BC
アバター
はる 2018/2/14 21:57 ◆75Vh4SY8TdKS
http://wiki.hosiken.jp/petc3gou/?Toukou%2FLEX
なんか役に立ちそうなものがあったので置いておきます。
アバター
しんいち 2018/2/14 22:07 ◆lHy.hAWXbthn
yaccは無かったみたいですねw。lexだけだった(それもactorbugさん作だった)。
アバター
はる 2018/2/14 22:24 ◆75Vh4SY8TdKS
多分YACCもあると思います。
自分のニンテンドー3DSに入っていたので。
確かそれもactorbugさん作だった気がします。
それらしきツイートもありますし。
https://twitter.com/actorbug/status/667315766874632192
アバター
しんいち 2018/2/14 23:29 ◆lHy.hAWXbthn
やっぱりあったのか。何か適当なことばかり言ってすみません(^^ゞ
そしてとにかくプチコンでの構文解析はactorbugさんの作品が役に立ちそうですね。
アバター
Ryou Tanpo 2018/2/15 7:13 ◆AI5iRr9FjmkJ
なるほど、皆さんコメントありがとうございます!
actorbug さん作 lex はダウンロードしてます。ちょっとだけ使ってみましたが大分いいです。ただコンパイルにちょっと時間がかかるけど
字句解析は簡単にできたので、ソースコードチェッカーの実装を見て、せっかく なんで自前で構文解析やってみようと思います。今後 SmileBASIC 解析・実行ツールを作りたいので。
そのうち汎用的なパーサコンビネータライブラリ作ってみたい。
自前で構文解析するには…どうすれば…

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -