[トップ][編集][ノート][編集履歴][一覧][最近の更新][->English]

プリプロセッサ関連

HSP3の要望の内、変数の型に関する要望はこちらへ


プリプロセッサ命令の強化

#error

defined(), !defined()

__FILE__ を "hsptmp" ではなく正しいファイル名に

列挙型

いわゆる、Cなどにある列挙型ようなもの しかし、Cそのもの列挙型では問題があるので扱いは整数でも整数が代入できない列挙型をサポートして欲しい

置換・定義関連プリプロセッサの強化

#module,#deffunc,#modfunc,#modinit,#func,#define,#constなど

モジュールの独立性の強化

プライベートなユーザー定義命令などのサポート(C++のクラスでのprivate指定みたいなもの)

  • 現在のバージョンでは変数はモジュール内で使えますが、モジュール内の命令も
    命令@モジュール名
    のような形の方がモジュール内では使いやすくモジュール外では 衝突が起こりにくくなりより良いと思うのですが。
    • 現状でも明示的に入れると使用できます。呼び出すときも明示的に指定する必要がありますが重複などのことを考えるならどのみち明示的に入れないといけないので同じ事だと思います。
    • ↑追記:ふと思いついたのですが通常は互換性や利便性を考えるとグローバルで定義された方がいいですが、ローカル内のみで使用したい命令のためにローカル内で使用するための命令を定義するキーワードがあればいいですね。(#defineなどのglobalキーワードのようにlocalキーワードとか・・・)
    • perlのlocalとmyみたいなものかな?
    • #deffunc local initのように定義すると、#deffunc init@モジュール名に置き換えられるように実装すれば、割と簡単に実装できそうな気がします。プリプロセス後の一時ファイルを見る限りでは。

ユーザー定義命令の宣言

宣言することにより定義されている部分より上の部分でも利用できるように

ローカル指定時の置換優先

「独立性の強化」,「宣言」と併用しグローバル指定されている#define,#const,#funcなどでglobalがついていてもlocal指定されている定義命令はlocal優先

#const global a 1
#module
#defunc f
#const a 2
        mes "" + a      ; このモジュール内の定義が優先
        mes "" + a@     ; グローバル領域の定義を指定
        return
#global

HSPスクリプト内でユーザー定義関数の記述

return命令で値を返せるようになったことだし#deffunc命令などで関数も定義できると
嬉しい。

#constでint以外の型に対応

#constで文字列型やdoubleをサポートして欲しい