<LGP3からLGP4の変更点>■すべてのソースコードを1から作り直しました。マニュアル(ver00.82)のダウンロードはここから<<状況2011/7/23以下の機能を追加しました。・3D描画で被写界深度「G3@CAMERASETDOF」を追加しました。サンプルソースコードを参考にしてください。Ver01.05<<2011/7/9以下の機能を修正しました。Ver01.04<<2011/4/29以下の機能を修正しました。・(リベンジ2)GeForceで3Dの描画が不正となる不具合を対策しました。Ver01.03<<2011/4/26以下の機能を修正しました。・(リベンジ!)GeForceで3Dの描画が不正となる不具合を対策しました。Ver01.02<<2011/4/20以下の機能を修正しました。・GeForceで3Dの描画が不正となる不具合を対策しました。・3D描画のトゥーン描画で描画が不正となる不具合を対策しました。Ver01.01<<2011/4/10以下の機能を修正しました。・画像のコピーを行うG@CHRCOPY関数で、コピー元にプライマリ画面(G@SETUPで生成した値)を指定できない」という制限を排除しました。今後はコピー元とコピー先の制限はありません。・3D描画でキャラをぼかすG@CHREFBLUR関数の描画方式を変更しました。前Verよりもぼかしの掛かり具合は低めですが、より滑らかな感じになりました。ぼかしを強くかけたい場合は本関数を2度実行するなどしてください。Ver01.00<<2010/11/23以下の機能を追加しました。・2D描画でキャラをモノトーンにするG@CHREFMONO関数を追加しました。・2D描画でキャラをぼかすG@CHREFBLUR関数を追加しました。<<2010/10/17以下の機能を修正しました。・3D描画でキャラのソートを見直しました。<<2010/9/26以下の機能を追加しました。・同一の3Dキャラを複数回読込む場合、2回目以降を高速に処理するようにしました。(2Dは既に実装済)・3D描画で透明度を自由に変更する設定を従来よりも簡単にできるようにしました。G3@FRMSETBLEND(FRM,13,14)と指定(引数2,3の指定値を増やしました)し、G3@FRMSETBLENDALPHAで透明度を指定する。・G@CHRSETBLENDの引数2,3の指定値を増やしました。・2Dキャラの指定範囲を初期化するG@CHRCLEARRECT関数を追加しました。以下の機能を修正しました。・3D描画でキャラのソートを見直しました。従来はカメラからキャラの中心までの距離でソートしていましたが、これだと地形など大きなキャラがイメージより手前にきてしまう。今回はカメラからキャラの一番遠い場所までの距離でソートすることにしました。・3D描画でシャドウを使用しない時の描画速度を向上させました。・シャドウの描画精度を向上するよう調整しました。<<2010/8/13以下の機能を修正しました。・G3@DELETEで異常終了する場合がある問題を修正しました。・Ver00.79で改善した3D描画のソート処理を元に戻しました。<<2010/5/9以下の機能を追加しました。・トゥーンの描画タイプを選択できるようにするG3@FRMSETTOONTYPE関数を追加しました。以下の機能を修正しました。・G3@DELETEで異常終了する場合がある問題を修正しました。・3D描画のソート処理を見直しました。半透明と非半透明のキャラが接近したときに描画結果が狂う問題を改善しました。気持ち高速化しました。・トゥーン光源の計算式を見直しました。<<2009/11/5以下の機能を修正しました。・3D描画で光源の影響が変になる場合がある問題を修正しました。<<2009/11/3以下の機能を追加しました。・3D描画で影を描画するG3@FRMSETSHADOW関数を追加しました。・メッシュを読み込まない空のフレームを作るG3@FRMMAKE関数を追加しました。・指定フォルダ内のファイル名を取得するFINDFIRST、FINDNEXT関数を追加しました。・影用の光源を生成する機能をG3@LIGHTMAKEに追加しました。・影の色を設定する機能をG3@LIGHTSETCOLORに追加しました。以下の機能を改良しました。・3D描画のトゥーン描画で輪郭がずれる問題を修正しました。・G3@FRMMAKE・・・で作るフレーム(球や円錐等の3Dキャラ)にもトゥーンで描画されるようになりました。<<2009/9/24(差し替え)以下の機能を追加しました。・ATAN2関数を追加しました。以下の機能を改良しました。・MID関数で文字列外の位置を指定して切り出した場合に、不正な値(正しくは0文字を取得する)を取得する問題を修正しました。<<2009/9/2以下の機能を改良しました。・現状G3@FRMLOADで読み込んだ3Dキャラの色は、デフォルトで頂点カラーを使うようにしていました(フェースカラーへの変更はG3@FRMSETVERTEX)が、3Dキャラに頂点カラーが含まれない場合は自動でフェースカラーを使うように変更しました。<<2009/9/2以下の機能を修正しました。・ソースコードに含まれる全角スペースを無視する処理に漏れがあり、プログラムエラーとなる場合がある問題を修正しました。A=B:」とすると、「B:」をラベル定義と評価してしまう問題を修正しました。<<2009/9/1以下の機能を修正しました。・00.72の修正が不十分でした。<<2009/8/29以下の機能を修正しました。・FORとTOの間の変数の初期化で「X=N+1」だと問題ないが「X=1+N」と書くと文法エラーとなる問題を修正しました。<<2009/8/11以下の機能を修正しました。・3Dと2Dを組み合わせて描画する時に描画が異常になる場合がある問題を修正しました。<<2009/7/25以下の機能を修正しました。・文末コードの含まれないテキストファイルをG@FREADSで読み込むとファイル末の読み込みで最後の1バイトが削れる問題を修正しました。<<2009/7/23以下の機能を修正しました。・G@CHRCOPYの描画時に描画先の矩形サイズによってノイズが描画される場合がある問題を修正しました。<<2009/7/22以下の機能を修正しました。・SELECT〜ENDSELECTでBREAKの動作が怪しい問題を対策しました。・ユーザ関数の呼び出しで、引数に文字列を戻り値とする関数を直接指定した場合、同引数をユーザ関数で利用時に結果が異常値となる問題を対策しました。<<2009/7/4以下の機能を修正しました。・Ver00.66の不良対策。階層を持つフレームを表示しない問題を対策しました。<<2009/7/4以下の機能を追加しました。・3Dキャラを大量に表示すると極端に描画性能が低下する問題を対策しました。<<2009/6/24以下の機能を追加しました。・ファイルの読み込み位置を指定するF@SEEKを追加しました。生成したフレームはトゥーン表示できるようにしました。<<2009/6/23以下の仕様を修正しました。・G3@DEVSETVIEWPORTの設定が反映されない問題を修正しました。・I@MSGETでのマウス情報の取得で相対値が正しく取得できない問題を修正しました。・I@MSGETでのマウス情報の取得でホイールの情報を取得できない問題を修正しました。<<2009/6/19以下の仕様を修正しました。・LSET関数で指定したサイズの領域が確保されない場合がある問題を修正しました。<<2009/5/4以下の仕様を修正しました。・NVIDIA系のグラフィックカードで3D描画が変になる問題を再修正しました。<<2009/5/3以下の仕様を修正しました。・NVIDIA系のグラフィックカードで3D描画が変になる問題を修正しました。・3D描画でライトの方向が指定できない場合がある問題を修正しました。・音楽の演奏で一部のMP3ファイルを読み込めない問題を対策しました。以下の仕様を追加しました。・G@SETUP関数にシェーダ処理をソフトウェアでエミュレートする機能を追加しました。<<2009/4/15以下の仕様を修正しました。・3D描画でZソートを行うよう内部処理を変更しました。これで半透明もまともに扱えるようになります。<<2009/4/5以下の仕様を修正しました。詳細はマニュアルを参照。・3Dのトゥーン描画を仕様変更しました。G3@FRMSETTOONLINE、G3@FRMSETTOONCOLOR、G3@FRMSETTOONMACHを追加。G3@LIGNTSETLINEを廃止。・3Dキャラを透明化するG3@FRMSETBLENDALPHAを追加しました。G3@FRMSETBLENDと合わせて使用します。・G3@FRMSETFSAAによるアンチエイリアスの設定が有効にならない問題を修正しました。<<2009/3/27以下の仕様を修正しました。・3Dのトゥーン描画を調整しました。従来よりも縁取りが綺麗になりまります。<<2009/2/10以下の問題を修正しました。・lgp4.00.56の修正不備を再調整しました。<<2009/1/28以下の問題を修正しました。・G@CHRCOPY2、G@CHRCOPYC2、G@CHRCOPYF2で、一度重ねあわせを行った画像にそれよりも奥方向に重ねあわせを行うと描画されない場合がある問題を修正しました。<<2009/1/23以下の問題を修正しました。・グローシェーディング時に真っ白に描画される問題を調整しました。<<2009/1/20以下の問題を修正しました。・ライトの当たる方向が誤っている問題を修正しました。・トゥーンシェーディングを未使用時に表示が変になる問題を修正しました。<<2009/1/9以下の問題を修正しました。・ATI系のGPUで正常に描画されない場合がある問題を修正しました。<<2009/1/4以下の機能を追加しました。・トゥーンシェーディングを実装しました。G3@FRMSETSHADE関数で描画を指定します。G3@FRMSETSHADE関数を指定するだけでトゥーンシェーディングを行うが、G3@LIGHTMAKE関数で生成するトゥーンライトを追加することでトゥーンシェーディングの光の当たり具合を指定できる。輪郭の太さもG3@LIGHTSETOUTLINEで変更できる。以下の問題を修正しました。・G@CHRMAKEで生成したキャラクタをG@CHRCLEARでクリアすると、透過しなくなる問題を修正しました。<<2009/1/1以下の問題を修正しました。・Cドライブ直下にLGPフォルダが生成されるのをやめました。_)m以下の機能を見直しました。・3D描画系のシェーダ化を行いました!!!それ以外は何も変わっていません・・・嘘です。ライト関係のバグをこっそり直しました・・・orz取り敢えず、今回のバージョンは正常に動作することをお楽しみください^^:今後のバージョンでも、2D描画に関してはシェーダ非対応の古いパソコンでも動作しますが、3D描画に関しては最低ピクセルシェーダ2.0(今回は1.0でも動くかも・・・)に対応したGPUでなければLGPのフル機能は使用できません。ピクセルシェーダが2.0より低い場合でも、LGPは動作しますが、今後実装する一部機能が動作しません。バーテックスシェーダは3.0を推奨しますが、それ以下でも遅いですが動作します。<<2008/11/22以下の問題を修正しました。・3D描画で大量のフレームを生成するとLGPが異常終了する問題を対策しました。・3D描画で光源の設定に癖があり、扱いづらかったのを見直しました。<<2008/10/27以下の機能を追加しました。・2D描画でアルファーブレンドを指定する「G@CHRSETBLEND」を実装しました。マニュアルで未作成であった関数の説明を追記しました。<<2008/9/24以下の問題を修正しました。・カメラの向きによってビルボードの方角が正しく反映されない問題を修正しました。<<2008/9/13以下の問題を修正しました。・LGPが生成したexeファイルが正常に動作しない問題を修正しました。・G3@FRMMAKEBOARDで生成したポリゴンが初期状態で裏を向いたいたものを、手前が表になるように方向を変更しました。以下の機能を追加しました。・ビルボード描画を行う「G3@FRMSETBILL」関数を追加しました。そのた・ビルボードのデモプログラムを添付しました。<<2008/9/8以下の問題を修正しました。・WHILE文の判定式による挙動が判定と逆という問題を修正しました。以下の機能を追加しました。・2D描画で描画の奥行きを指定できる関数「G@CHRCOPY2」「G@CHRCOPYF2」「G@CHRCOPYC2を追加しました。(これ前に公開しなかったけ?忘れてたか^^:)・任意のサイズの四角形のポリゴンを作成する関数「G3@FRMMAKEBOARD」を追加しました。・G3@FRMMAKEBOARDのポリゴンのキャラクタ番号を取得する関数「G3@FRMGETCHR」を追加しました。取得したキャラクタは2Dのキャラクタと同様に描画ができます。・指定したフレームを描画する3D空間上のXYZ座標を取得する関数「G3@FRMGETDATAMX」「G3@FRMGETDATAMY」「G3@FRMGETDATAMZ」を追加しました。・指定したフレームを描画する2D空間上のXY座標を取得する関数「G3@FRMGETDATAX」「G3@FRMGETDATAY」を追加しました。<<2008/8/12以下の問題を修正しました。・G@FRMSETSCALE関数によるフレームの拡大縮小の演算方法を変更しました。多くの使用方法で意図しない動きとなるため。以下のマニュアルの記述を変更しました。・G3@FRMMAKETEXTの第2引数の意味を変更しました。:文字の滑らかさG3@FRMMAKETEXT関数では文字のサイズは指定できません。同じサイズのメッシュを生成します。大きさを変更して表示する場合は、G@FRMSETSCALE関数でサイズを変更してください。<<2008/7/18以下の問題を修正しました。・G@CHRMAKE関数で生成した画像をコピー元としてG@CHRCOPY関数等でコピーすると、透過色が反映されない問題を修正しました。・G@CHRCOPYC関数で中心がぶれる問題を修正しました。以下の仕様を追加しました。・G@CHRMAKE関数に透過を指定する引数を追加しました。<<2008/6/26以下の問題を修正しました。・G@CHRSAVE関数で暗号化したファイルの読み込みに失敗することがある問題を修正しました。・G@CHRSAVE関数の暗号化で異常終了することがある問題を修正しました。<<2008/6/9以下の問題を修正しました。・ラベルがGOTO文よりも後方に記述するとエラーとなる問題を修正しました。<<2008/5/21以下の問題を修正しました。・G@CHRLOADCKEY関数を指定すると抜き色が無効になる問題を修正しました。以下の仕様を変更しました。・3D描画でアニメーションの自動再生時間を更新するタイミングを変更しました。<<2008/5/3以下の問題を修正しました。・2D描画にてG@CHRMAKE関数で生成したキャラクターパターンをコピー先としてG@CHRCOPY関数でコピーを行うと、コピーの結果が不正となる(グシャグシャの描画)問題を修正しました。<<2008/4/14以下の機能を追加しました。・3D描画でフォグ効果を与える関数G3@FRMSETFOGMODE関数等を追加しました。<<2008/3/31以下の仕様を変更しました。指定を組み合わせると、描画する位置が一定にならないため利用しづらかったため、描画の位置が一定になるように仕様を変更しました。以下の機能を追加しました。・2D描画で指定した座標が中心となるように画像を描画するG@CHRCOPYC関数を追加しました。<<2008/3/23以下の問題を修正しました。・配列の中で配列を記述すると正しい結果を取得できない問題を修正しました。・2D描画で透明色を指定するG@CHRLOADKEY関数で不透明の指定が正しくきかない場合がある問題を修正しました。以下の機能を追加しました。・3D描画で読み込むテクスチャファイルで同一のテクスチャは重複して読み込まずに再利用するようになりました。(2D描画の画像ファイルは既に再利用しています)・2D描画でキャラクターの色合いと半透明を指定するG@CHRCOLORA関数を実装しました。<<2008/3/17以下の問題を修正しました。・実数を含む比較式の結果に対してさらに比較を行うと構文エラーとなる問題を修正しました。・頂点カラーを持つメッシュ(Xファイル)にアンビエント光が反映されない問題を修正しました。以下の機能を追加しました。・指定のメッシュまでの距離を取得するG3@FRMGETRAY、G3@FRMGETRAYDATA関数を追加しました。<<2008/3/1以下の問題を修正しました。・複数のオブジェクトを内包する3Dキャラ(Xファイル)が綺麗に描画されない問題を改善しました。カメラの描画範囲(G3@CAMERASETPRO)の初期値が小さすぎたため、微小なXファイル(各頂点の座標が小さい)の場合に大きな計算の誤差が発生していました。<<2008/2/20以下の問題を修正しました。Vistaで動作しないようなので、対策しました。動くはずです・・・・。セキュリティ権限関係のチェックで落とされている模様。Ver00.31から開発環境をVisualC++2005から2008に変更したのですが、なんか設定が漏れているようです。<<2008/2/18以下の問題を修正しました。(極悪な問題なのでバージョンアップを必ず行ってください)・実数の比較式で判定結果が誤る問題を修正しました。Ver00.31を差し替えさせていただきます。2008/2/1版では.NET3.5のインストールが必須となってました・・・2008/2/1以下の問題を修正しました。・文字列配列に文字列を代入しても反映されない場合がある問題を修正しました。・文字列の引数をもつ一部の関数に一度も代入を行っていない文字列変数を指定するとLGPが異常終了する問題を修正しました。・文字列の比較演算で正否の結果が誤ることがある問題を修正しました。以下の機能を追加/変更しました。・3D機能のカメラで広角の初期値を変更しました。従来は広角が広めに設定したため、キャラが画面の端に行くとキャラが歪む事がありました。・3D機能のライト光源で8つ以上のライトを描画させた場合、後に追加した8つのみ描画に反映されていた仕様を、各フレーム毎で最も近い8つを描画に反映するように仕様を変更しました。・ライト光源の種類に「半球ライティング」を追加しました。従来、太陽のような一方方向から当たる光源の表現にはディレクショナルライトを使用しましたが、ディレクショナルライトでは光源の反対側にはまったく光が当たらないためキャラクタの半分が真っ暗になっていました。実際の環境では壁や地面からの反射があるため、光源の反対側でもある程度の光があたります。そこで、この反射光も表現する半球ライティングを実装しました。中身は単純で、通常のディレクショナルライトと、その反対方向のディレクショナルライト(少し明るさ抑え目)に配置をしているだけです。単純ですが効果的面です。2つのライトを消費していることになります。詳細はマニュアルのG3@LIGHTAKEを参照。2007/12/19以下の問題を修正しました。・実数変数に対する足し算で構文エラーが発生することがある問題を修正しました。2007/12/13以下の問題を修正しました。・G3@RELEASE関数でメモリの開放漏れが発生する問題を修正しました。2007/11/11以下の問題を修正しました。・関数や配列の括弧内に演算の括弧が含まれるとエラーと判断されることがある問題を修正しました。2007/11/5以下の問題を修正しました。・アンビエント光源が正しく反映されない問題を修正しました。・ARRAY文の指定値にマイナス値を指定できない問題を修正しました。・#defineに記号を指定できない問題(たとえばマイナス値)を修正しました。・FOR文のSTEP節に負数を指定すると強制終了する問題を修正しました。以下の問題が見つかっていますが未対策です。・システム関数、拡張関数内の要素に整数同士の演算を行うと構文エラーとなる2007/9/29今回は3Dアニメーションのあたりを見直してみました。LGP4のパッケージにデモがありますので試してみてください。(私の自作ヘボキャラを動かせますw)3Dキャラのアニメーションをかなり簡単に利用できる点が見所です。アニメーションを繰り返し表示したり、2つの動作の間をスムーズに切り替わるような見せ方も簡単にできるので、ぜひ遊んでみてください以下の機能を追加しました。・3Dキャラのアニメーション関数(G3@FRMSETANI、G3@FRMSETANICHG)の引数を追加しました。デフォルトではモーションを繰り返して再生しないようにし、追加した引数でループするかを指定するようにしました。追加した引数で2つのモーションをスムーズにつなげて再生する際の切替の間隔を指定できるようにしました。・アニメーションの繰り返し回数を取得するG3@FRMGETANIACT関数を追加しました。以下の機能を修正しました。・3Dキャラのアニメーション(G3@FRMSETANI、G3@FRMSETANICHG)の調整を行いました。2007/9/1以下の機能を追加しました。・G3@FRMSETMCOLORでG3@FRMMAKExxxx関数で生成したフレームに色をつけれるようになりました。・RANDF関数で0〜1.0の乱数を取得できるようになりました。以下の機能を修正しました。・G3@LIGHTSETENABLEでライトが影響を与える範囲を指定できるようになりました。・ライトの色々な問題を修正しました。・ライトの初期値を変更しました。・コンパイル後のEXEの実行で浮動小数点を戻り値とする関数の動作が不安定となる問題を改善しました。・ライトはG3@LIGHTMAKEで複数生成できるが、有効(G3@LIGHTSETENABLE)にできるライトはグラフィックカードの性能で制限されます。最大8つを目安にするとよいでしょう。2007/8/20以下の機能を修正しました。・G@RENDERで描画先サーフェスと描画するフレームを指定できるようになりました。2007/6/21以下の問題を修正しました。00.21の修正漏れ以下の機能を追加しました。<2D画像処理>・G@CHRCOPYで描画する画像の透明度等を設定するG@CHRCOLORA関数を追加しました。2007/6/19以下の問題の修正を行いました。Ver01.03.39と同件)・DEFALUT文、OTHER文が実行されない場合がある以下の機能改善を行いました。<言語処理>・IF文、FOR文、SWITCH文の処理を高速化しました。ものによってはLGP3と同等かそれ以上高速化しました2007/5/14以下の問題の修正を行いました。<言語処理>・左辺が実数値で右辺が実数の演算結果が整数になる問題を修正しました・配列の要素にSTATIC変数を指定するとプログラムが異常終了する問題を修正しました2007/5/7以下の問題の修正と新規機能を実装を行いました。<言語処理>・「#include」「#define」がver00.14から機能していなかった問題を修正しました。・SWITCH文とSELECT文で意図したシーケンスが実行されない問題を修正しました。<M関数>・楽曲の総演奏時間を取得するM@LTIME関数を追加しました。2007/4/27以下の問題を修正しました。<言語処理>・実数変数と数値の演算を行うとLGPが異常終了する場合がある。・SWITCH文内のCASE文の処理でBREAK文等でSWITCH文を抜ける前に次のCASE文が現れるとSWITCH文を抜けてしまた。引き続き次のCASE文下の処理の実行を行うのが正しい仕様である。SELECT文にも同様の問題がある。・STR文等の実行で得た文字列を連結する処理を数回行うとLGPが異常終了する場合がある。・SWICTH文の引数に配列を指定するとLGPが異常終了する。<2D関数>・G@PRINT文で長い文字列を表示しようとするとLGPが異常終了する。・G@PRINT文で文字列配列を表示できない場合がある。<3D関数>・G3@ADDで追加したライトが、追加先のフレームの移動に追従しない・G3@ADDで同一フレーム配下に複数のフレームを追加した場合で、配下のフレームに移動等の指示を行うと、同一フレーム配下の他のフレームの動きに影響を与えてしまう2007/4/2DirectX9に対応した3D画像処理関数(G3系関数)を実装しました。一部の仕様がLGP3から変更となっています。詳細はマニュアルの1.6章を参照してください。2007/3/4DirectX9に対応した2D画像処理関数(G系関数)を実装しました。一部の仕様がLGP3から変更となっています。詳細はマニュアルの1.6章を参照してください。2007/2/27浮動小数点(単精度)を一部サポートしました。外部関数の実装は取りあえず置いといて、拡張関数の実装を進めます。DirectXに関係するG系、G3系、I系、M系、S系の拡張関数を一旦削除し、逐次DirectX9へ対応させてゆきます。2007/2/19浮動小数点(単精度)を一部サポートしました。<実装を完了した機能>1.浮動小数点の変数/配列/動的配列(変数名の後ろにシャープ記号「#」を付けて指定します)2.代入/演算/比較(整数と浮動小数点の演算結果は浮動小数点の精度を持ちます)3.ステートメント文の浮動小数点の利用(ただし、FOR文は指定できません。ARRAY文は対応中です。2006/10/23以下の問題を対策しました。1.正しく固定小数点を設定できない(以前直した問題が復活)2.引数がないEXUSER関数を定義すると定義エラーとなる問題3.戻り値がないEXUSER関数/FUNC関数を定義するとコンパイルが終了しない問題2006/10/12本バージョンから実行ファイル(.exe形式)の出力を行うようになりました。01.03.37と同等の不良修正を行いました。2006/10/9これまでに開発した分となる言語処理系のテストを完了しました。2006/10/1「関数」「DLL呼び出し」のテストを完了しました。以下の問題を対策しました。1.関数に関するエラーチェックの問題2.括弧や関数を含む演算式で正しい演算結果を取得できない場合がある残るテストは「複雑な演算」となります。それが完了したら取りこぼしの問題を修正しつつ、DirectX9の実装を開始します。2006/9/28前回からテストは進んでいませんが、以下の問題を対策しました。1.戻り値を持つ関数を記述するとエラーとなる事がある。2.括弧を含む数値演算で意図しない計算結果を得る問題。2006/9/24ステートメントのテストを完了しました。なおしました^^:次は関数のテストを行います。2006/9/20一部ステートメントのテストを完了しました。「FOR〜NEXT」「ARRAY」がテスト未実施です。複数のステートメントの修正を行いました。2006/9/11ステートメントのテストを開始しました。orzIF文とTHEN文の間に指定する比較式で括弧を使用すると、文法誤りのエラーとしてしまう場合がる不良を修正しました。IF/THEN/ELSE/ENDIF文の組み合わせによるエラーチェック漏れがある不良を修正しました。ソースプログラム中に全角空白を指定しても文法エラーとならないよう改善しました。2006/9/6昨晩公開したVer00.03の中身が誤ってました。それ以降に修正した分も含めた最新版を提供します。本日は「数値の比較」をテストしました。問題は特に見つかりませんでした。2006/9/5文字列処理全般のテストを完了しました。以下の不良を修正しましたバージョンを公開します。・ソースファイルの読み込み失敗することがある・ソースファイルの後半を読み込まないことがある・IF文での文字列比較で分岐を誤ることがある明日は「数値の比較」を実施する予定です。ファイル生成」2006/9/1文字列処理の目に見えるバグを直してみました。(テストは未実施です)変数を加算すると異常終了になったり、表示すると文字化けとなる問題が直りました。00.01)には、例えば「A$="1"+"2"+"3"」と3つの文字を加算すると文字化けする問題がありました。関数に文字列を引き渡す場合で、関数の引数にスタティック文字列変数や文字列配列を指定すると文字化けする問題がありました。テスト」を実施する予定です。2006/8/30ダウンロードのリンクが壊れていました>w<2006/8/29ここまで開発したところのテストを開始しました。実施しましたが、正常に動作しています。以下の不良が見つかっています。1.REDIMを格納した変数に数値を代入できてしまう。E=4」の変数Zとか)エラーにならない。3.STATIC変数にREDIMを代入できる。(将来的にはサポートしたいけど、とり合えず現在はエラー)2006/8/28LGP4のファーストバージョンを公開します。本サイトで公開しているサンプルプログラムが動作する事を確認した程度のテストしか行っていませんが、もしよければ試してみてください。現状はコンパイラの修正のみ行っただけであり、DirectX9の実装は行っておらず、従来どおりDirectX7.1で動作します。01.03.36相当です。実行ファイルを生成しません。<<LGP3から変更となった主要な部分を記述します。従来1つの命令は改行せずに1行で記述する仕様でしたが、複数行にまたがって記述することができるようになりました。X+100,Y+100)(2)文字列を複数行にまたがって記述することができるようになりました。"言語です"(3)実行速度の高速化LGPでコンパイルしたプログラムの実行速度をほんの少しですが高速化しました。2006/8/23文字列処理をマシン語に変換する部分が完成しました。次は変換したマシン後をあつめて、一つのプログラムにまとめる部分を見直します。(既に動作しているので、チューニング的な作業です)その後に簡単なテストを行った後、アルファ版として公開します。(動作しなくても文句言わないようにw)2006/8/22文字列処理をマシン語に変換する部分を作成中。文字列の代入がやっと完了〜。次は、文字列の加算と文字列の比較を作ります。2006/8/8数値処理のマシン語部分は完成〜。文字の加算をとり合えず動かしてみる・・・ハングアップ・・・続きは明日にしときます。2006/8/7マシン語を生成する部分の見直しを行ってます。数値の代入と演算は後1時間程度で完了。その後は、文字の加算/数値比較/文字比較を見直せばここは完了。その後は、構文自体の動作確認を行います。そこまで行けば、とり合えず公開しても品質的に大丈夫かな?^^:構文エラーのチェックが、まだあまいので、そこらも色々やらねば・・・2006/7/30ARRAY文完成。現在REDIM文実装中です。これが終われば、ここまで開発した分の簡単なテストをした後、一旦公開したいと思います。2006/5/30言語処理部のスクラッチビルド中。ARRAY文以外は実装完了。明日はARRAY文の実装を。