見出し画像

ASSGエディタの構文チェックでもメモ活躍

ここ数日間、所得税の「更生の申請」にかかり切りでした。(過年度の確定申告の訂正)
私は個人事業主で、特定企業の基幹システムの保守を請負っています。このような労働形態の場合「家内労働等の必要経費の特例」の対象になります。必要経費が55万円以内であれば、55万円が必要経費になります。5年以内で更生の申請ができます。
5年分がやっと終わり、ちょっとしたクリスマスプレゼントになりました。


前回、ASSGのメモ機能について
メモ機能は「必要なことを簡単にメモ書きしておき、いつでも簡単に呼び出せる」と紹介しました。
今回は、メモ機能を使った「構文チェック」の紹介です。

初期のASSGエディタでは、構文ノーチェックでした。
命令コードのスペルミス、
未定義フィールド、
フリーフォーマットのセミコロン(;)忘れ、
ENDIFの無いIF文等々、
コンパイルリストとの戦いでした。

これをASSGエディタでチェックできるようにしました。
一番苦労したのは、オペコードに対してオペランドが正しいか、のチェックです。例えば
WKA = WKB + 1
この1行が正しいかどうかの判定は、意外と難しいのです。
まず、オペコードが省略されているので 補います。
オペコード=[EVAL]
オペランド[WKA][WKB][1]の属性を調べます。
[WKA]=[数値変数]
[WKB]=[数値変数]
[1]=[数値リテラル]

右辺の計算式のオペランドを整理します。
[数値変数] + [数値リテラル] → [数値混合]
結果的に WKA = WKB + 1 は
EVAL [数値変数]=[数値混合]
と単純化します。(平たく言えば、計算結果と変数に入れる)
単純化したパターンを「メモ機能」(やっと出てきました)に登録しておきます。(EVALだけでも20パターンあります)

オペランドには「数値変数」「文字変数」「数値リテラル」「文字リテラル」、他にも「データ構造」「表意定数」「標識」「配列」「ファイル名」「レコード名」など様々なものがあります。組み込み関数(BIF)の結果もオペランドになります。今でも時々「こんなパターンがあったか!」とメモに追加することがあります。
※オペコードによってはチェックが困難なのでノーチェックのものもあります。


長々と書いてしまいましたが、構文チェックの一部でメモ機能を使い、100%ではありませんがコンパイルエラーを減らす目標は十分に達成できました。
#AS400 #RPG #ASSG #キャンディーズ


キャンディーズネタですが、
紅白にランちゃんが出ますね。
きっと左手にミキちゃん、右手にスーちゃんが見えると思う。


この記事が気に入ったらサポートをしてみませんか?