2008-10-01から1ヶ月間の記事一覧

HSPLet と HSP on JS の Reference の違い

a.1 = 12345 dup b, a.1 a = 0.0, 1.0 mes "<"+b+">"で、HSPLet は を表示するけど、 HSP on JS では . HSPLet の Reference は Variable を参照先にすることがあるけど、 HSP on JS の Reference は Variable を参照先にすることはなく、 HSPArray のインス…

配列変数の添え字

#module #deffunc f var a sdim a@, 64, 3 a@.0.0 = "A", "B", "C" a@.0.1 = "D", "E", "F" mes a return #global f a.1.1オフィシャル HSP はこれで "D" が出るけど、 HSP on JS では "E"。オフィシャル HSP では変数オブジェクト(PVal)と配列を一直線に…

PValアドレスとAPTRってHSPCTX::prmstackを経由しなくてもとれる その2

HSP

PValアドレスとAPTRってHSPCTX::prmstackを経由しなくてもとれる - fujidigの雑記 で mref を使って PVal と APTR を取得するということをしましたが、新たに PVal と APTR を取得する方法を発見。 code_get の TYPE_STRUCT でちゃんとチェックしてない - fu…

code_get の TYPE_STRUCT でちゃんとチェックしてない

HSP

こんなコードで落とせる。 #module #deffunc f var p *a mes p return #deffunc f2 goto *a #global f2まあ、それを利用(悪用?)して、こんな風に関数本体の定義を下にかけたりできるわけだけど。 #module #deffunc f int a, double b, str c goto *lab_f_…

STRUCTDAT, STRUCTPRM あたりを調べた

HSP

HSP on JS でそろそろユーザ定義命令・関数を実装するかーと思ったんで、理解が浅い STRUCTDAT, STRUCTPRM あたりを調べることにした。結構複雑。 STRUCTDAT ユーザー定義命令・関数や DLL の関数、モジュール変数定義の情報。 ax の FINFO にこれの配列が格…

文字列のnバイト目がShift_JIS(CP932)のマルチバイト文字の後続バイトか調べる

Shift_JISのマルチバイト文字後続バイトの範囲内の str[index] がマルチバイト文字の後続バイトかを調べる。 index が 0 なら false を返す str[index-1] がマルチバイト文字先行バイトの範囲内でなければ false を返す str[index-1] がマルチバイト文字後続…

文字列のn行目のインデックスを取得

JS

文字列のn行目の先頭が文字列先頭から何文字目かを取得する関数。 4 つ書いてみた。 function getLineIndex1(str, lineno) { var curline = 0; var len = str.length; for(var i = 0; i < len; i ++) { if(curline == lineno) return i; var c = str.charAt(…

JavaScript による HSP インタプリタ HSP on JS

http://www.fujidig.com/hsp-on-js/samples.html HSP on JS は JavaScript による HSP のインタプリタの実装です。 CodeRepos にリポジトリを置いて開発しています。 対応している機能 まず、 GUI 描画命令はありません。 mes 命令を実行したら textarea に…