プログラミングと工作と

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

記号表作成の為の、こまごましたメソッド2

もうひとつメソッドを作ったので紹介します。

昨日紹介したリテラルをチェックする時、整数かどうかを調べるのですが、
整数の前に - (マイナス)の符号が付いている場合があります。
これを普通に .isdigit で調べると false になって整数じゃないと判断されてしまいます。
そこで、マイナスが空いている場合でも整数判断出来るように、メソッドをつくります。

def check_int(self, st):
    i = 0
    length = len(st)
    intcheck = 'true'
    if st[0] == '-':  #最初の文字がマイナスなら
        i = 1           #一文字飛ばす
    while i < length:
        if st[i] not in self.token.digit:
            intcheck = 'false'
            break
        i = i + 1
    return intcheck

スクリプト内のコメントで書いたように、

if st[0] == '-':
        i = 1
        
文字列の最初の文字(st[0])がマイナスなら
次の文字(st[1])から整数かどうかを調べるという簡単なメソッドです。
文字列をリストのように添字で一文字ずつ指定できるPythonならではの楽ちん処理です。
こういう恩恵は最大限に受けないと!