プログラミングと工作と

PythonとかPascalとかAVRマイコンとか、コンパイラつくったり電子工作なんかを楽しんでいるおっさんの記録

記号表作成の為の、こまごましたメソッド - リターンズ

昨日は、会社の送別会で久しぶりに朝帰りをしてしまった。
今日も一日ぐったりしていて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'
という表示にしました。

明日は、記号表を完成させ、実際に動かしてみたいと思います。