基本構文が実装できました

アバター
浦瀬ヒガタ
記事: 0
登録日時: 12年前
住所: 横浜市
連絡を取る:

基本構文が実装できました

投稿記事 by 浦瀬ヒガタ » 12年前

いまだに自分が作っているものの種別がよくわからないのです。
ゲーム製作ツールって呼ぶものなのかなぁ。

コマンド解析実行クラスに基本構文の解析実行を実装できました。

for i = 0 to 5
variable = 22 + i
next

こういう感じのを解析して実行します。

設計をはじめてからここまで一年程度でたどり着けたのは割りとうれしいです。
基本的に怠惰な性分なので半年くらいずれるかと思ってたんですが。
次は画像描画系のコマンドを実装していこうかと思っていますが、まずコマンドの引数とかそういうところをちゃんと考え直さないとなぁとか。
この部分が特にベースにしているツールの仕様から結構かけ離れているので、よく考えて使いやすいように作りたいです。
8月くらいにはα版出したいなぁ。

beatle
記事: 1281
登録日時: 14年前

Re: 基本構文が実装できました

投稿記事 by beatle » 12年前

それはきっと「言語処理系」(コンパイラ,インタプリタ)と呼ぶのもですね.
何という言語ですか?見た感じVisual Basicっぽいですが.

言語処理系の作り方って理論が進んでて,字句解析,構文解析,コード生成について書籍が沢山出ているので参考にするといいかもです.

アバター
浦瀬ヒガタ
記事: 0
登録日時: 12年前
住所: 横浜市
連絡を取る:

Re: 基本構文が実装できました

投稿記事 by 浦瀬ヒガタ » 12年前

>beatleさん
「言語処理系」と言うほど高尚なもんじゃないなぁと思っているのですが、大別としてはそれが正しいのかなぁとか。
参考元のツールがVB5で実装されていて、そのエンジンで定義されているスクリプト言語の仕様もおおむねVBライクなのでそのあたりを踏襲してます。

字句解析、構文解析は自前で実装してみました。
基本的な演算子と変数、関数の呼び出しあたりをサポートしてます。
アルゴリズム考えるのはここが一番長かった気がしますね。

beatle
記事: 1281
登録日時: 14年前

Re: 基本構文が実装できました

投稿記事 by beatle » 12年前

全部自前っていうところがかっこいいですね
関数呼び出しはcdeclみたいな感じですか?

アバター
浦瀬ヒガタ
記事: 0
登録日時: 12年前
住所: 横浜市
連絡を取る:

Re: 基本構文が実装できました

投稿記事 by 浦瀬ヒガタ » 12年前

お恥ずかしながらcdeclというものの存在をはじめて知りました…
呼び出しの部分でリターンアドレスを記憶しておいて、呼び元で色々削除しているのでcdeclっぽい…のでしょうか。
引数をスタックに積むのは左から順なのですが、関数の引数はすべて可変長引数として扱われる仕様にしているのでそのあたりだけ違うみたいですね。