エラー ハンドラにコードを追加して、エラー メッセージのプッシュとポップを許可

Dan Nicolaescu は、私の修正の問題を指摘してくれました. エラー ハンドラにコードを追加して、エラー メッセージのプッシュとポップを許可し、一致するサブルーチンが独自のエラーを生成し、MATCH_NO を返すことを決定できるようにしました。

8月26日
Bill Wendling は、部分文字列定数の解析と出力を追加し、いくつかのコメントをクリーンアップするパッチを送信しました。ありがとうビル!

Laurent Klinger さんが 3 つのバグを報告しました。複合定数内の記号定数が正しく処理されないことと、NML= タグの右側にある名前リスト変数が正しく認識されないことでした。両方とも修正されました。彼が見つけたもう 1 つの問題は、シンボルが適切な名前空間で作成されていないことでした…これは大きな問題であり、私は待ちます。

Michael Richmond は、修正されたいくつかの問題を報告しました: 固定形式ソースのステートメント ラベル領域でタブが展開されないことがありました。SAVE ステートメントのブランケット形式がまったく実装されていませんでした。彼はまた、データ転送ステートメントの解析に関する問題を最初に指摘しました。

READ(10,100) ×
問題は、それ(10,100)が完全に適切な複素定数であり、I/O 制御リストなしで READ ステートメントの形式でユニット番号として解析されていたことです。複雑な定数のマッチングが実装されていなかったため、最初に I/O マッチャーを実装したとき、これはうまく機能しました…:)。データ転送ステートメントは、他の I/O ステートメントと同じ方法で処理されるようになりました。まず、「(」とそれに続く制御リストをチェックします。「(」が見つからない場合は、代替形式がチェックされます。
Michael はまた、g95 が部分文字列参照が実際には関数参照であるとあまりにも早く判断したため、他の方法では不明なシンボルの部分文字列参照が問題に遭遇したことを指摘しました。これは現在修正されていますが、未知のシンボルが何であるかを判断するためのアルゴリズムは、さらに改訂する必要があるのではないかと思います。また、指定ステートメントの前にある FORMAT ステートメントと ENTRY ステートメントに関して彼が指摘した問題を修正しました。最後の問題は、’P’ 記述子の後に別の編集記述子が必要なことでした。彼の要求で、同じ g77 オプションの機能を複製する -ffixed-line-length-80 オプションも追加しました。

サブタイプ参照と配列参照の解決関数を追加しました。データ転送ステートメントに関連するいくつかの制約を追加しました。ソース行が長すぎるために切り捨てられたことをユーザーに知らせるオプションの警告が追加されました。

Dan Nicolaescu さんが format-checker のエラー出力に問題を発見しましたが、現在は修正されています。彼はまた、g95 が整数乗された定数を初期化式と見なさないという事実を明らかにしました。Dan は、単一ステートメントの IF 句に関する問題も送信しました。問題の句にはアクション句として PAUSE ステートメントがありましたが、これは fortran 95 で削除されました。実際の問題は、ひどく誤解を招くエラー メッセージでしたが、修正されました。

Marc Dejardin は、g95 がコメントを処理する方法のバグを指摘しました。g95_match_eos() を修正して、解析中の現在の行の末尾のコメントを食べるようにしました。コメントは少しトリッキーです — フリーモードでは、行頭の ‘c’ はコメントを*開始しません*。

G95 の長さは 21,000 行です。

タイトルとURLをコピーしました