昨日は遅かったこともあり、起きたらPM2:00でした(凹

 

はぁ~まだ起きてからちょっとしか経ってないのに、暗くなってきやがりました…。

 

まぁ、気を取り直して中途半端に作業を終わらせていたABのコーディングを仕上げることにします。
最近している作業は、レキシカルスコープ概念の導入。変数がスコープ内で定義された場合はそのスコープ内からのみ参照可能になるってヤツです。
スコープになり得るステートメントは下記のようなものが挙げられます。

 

  • For~Next 
  • While~Wend
  • Do~Loop
  • If~End If
  • Select~End Select

 

これらのステートメントは条件分岐や繰り返しなどの意味を持ちますので、純粋にスコープのみの意味を示すScope~End Scopeなどの導入も考えています。他のBasic系の言語で、スコープのみを意味する構文ってどうなっているんでしょうかね…。ちょっと気になります。

 

さて、改めてレキシカルスコープを有効にするためにABコンパイラのソースコードをいじっているワケですが、ローカル領域のみならず、グローバル領域でのスコープ概念も十分に考えておかなければならないことに気づかされます。そう、ABはグローバル領域も実行可能領域になっているのです。

 

そんな問題も休日を使ってクリアしたいところ。次回は例外処理に入りたいと思います。