記号表作成の為の、こまごましたメソッド - リターンズ
昨日は、会社の送別会で久しぶりに朝帰りをしてしまった。
今日も一日ぐったりしていて24時間位時間を無駄にしたじゃないか!
若いときはホイホイ行っていたけど、もう会社の飲み会はいいや・・・
さて、前回足りないことに気がついたメソッドを作ります。
「値」を判別するメソッドです。
def which_type(self, name):
if self.check_lit(name):
if self.check_int(name):
which_type = 'int_s'
else:
which_type = 'bool_s'
elif name in self.symbol:
which_type = self.symbol[name]['type']
else:
which_type = 'err_s'
e.error(25)
return which_type
値がリテラルなら
整数なら→'int_s'を返す
それ以外なら→'bool_s'を返す
#今は整数とブーリアンの2種類しか型がないので
#整数とそれ以外(ブーリアン)という区別で判定しています。
名前が記号表に存在するなら
記号表に登録されている型を返す
それ以外なら
'err_s'を返し
エラー表示を行う
という簡単なものです。
型名は
整数型:'int_s'
ブーリアン型:'bool_s'
という表示にしました。
明日は、記号表を完成させ、実際に動かしてみたいと思います。