stack式CUI計算機 芳ステム２０２１ (YOSHISUTEMU_2021）

・はじめに
このプログラムはCUIプログラムのスタック処理計算機です。
計算機とは言っても、プログラム言語の初期スクリプトとして
電卓を作成している書籍もままあって
そっちの方向で作成した計算機です

・文字列読み込みの方針
このプログラムの文字列の処理は
１文字づつ字句解析をしているのではなく
先頭の半角スペースとタブを削除して
行末の半角スペースとタブを削除して
文字列での比較をして各命令と等しいか比較しているだけです
ちなみに一度に使用できる命令名もしくは数字列は一つの単語だけです

・stack_calc_芳ステム_2021_single.exe
芳ステム2021をシングルモードで起動する実行FILEです
シングルモードとは一行づつ入力していくかんじの
stack式計算機です

・stack_calc_芳ステム_2021_multi.exe
芳ステム2021をマルチモードで起動する実行FILEです
マルチモードとはコマンドを打ち込んだFILEから
読み込んでまとめて実行するかんじの
stack式計算機です

・入力の方針（数字）
数字を入力してエンターを押すと
スタックにpushすることとなります

・入力の方針（演算）
演算子か演算の名前を入力するとその演算を実行します
!dumpとか!DUMP等と入力するとスタックの中身を出力します
演算の名前は大文字と小文字を区別します
ですが色々なパターンを用意してます
書籍の中で全部小文字に変換して比較していて
あんまりパクるのもどうなんだ？と思い
大文字と小文字を区別してます

・演算の使用
演算子やコマンドもそうなんですけど
スタックからpopしてきて（しないのもあります）
演算や動作をして
スタックにpushするというのが基本です（しないのもあります）
小型のプログラムなのでスタックマシンになってます
演算の仕様につきましては、HSPでマニュアルを作成しましたので
そちらを御覧下さい

・pop処理
popというかスタックの一番上を捨てて欲しい場合
!discad演算を入力して下さい
!discard演算の名前も複数あります

!pop演算を入力するとpop処理を行い
（!pop演算の名前も複数あります）
スタックの一番上の値をmemory@変数に代入します
この計算機では、演算に引数をつけて入力出来ないので
memory@に値を入力することでカバーしています
ちょっとめんどくさくはありますが

演算内の処理でpopを行った時、スタックに値がない場合
エラーダイアログが現れて処理は中断されます
しかしプログラムの実行は止まりません

・演算の!
色々と書籍を読みながら妄想していた時に
演算の前に!をつければユーザーが使える記号が多くなるんじゃね？と思い
演算子の前には!がつく方針です
まだ最終決定じゃないのでつけなくても大丈夫です
文字列の演算の前にも!つけてもいいです
Perlのように命令の前は&の方がいいかな。とも思ってるとこです

・不明な入力
入力した語句がどの要素とも一致しない場合
Pardon?と出力されます
動作は止まらないので
落ち着いてリカバリーして下さい

・コメント
先頭のスペースとタブを削除した後
先頭が//だとコメントになります
とか言って出力はされますがw