2013-04-07 70 views
1

我正在爲稱爲Jack(類似於Java)的語言構建編譯器。我正在使用我的標記器,但我在嘗試確定文件中的標記是否是整數時遇到問題。下面是我如何實現在語言保留字和符號:在Python中構建編譯器:確定整數值

def tokenType(self): 
    if self.token in ['class', 'constructor', 'function', 'method', 'field', 'static', 'var', 'int', 'char', 'boolean', 'void', 'true', 'false', 'null', 'this', 'let', 'do', 'if', 'else', 'while', 'return']: 
     return 'KEYWORD' 

    elif self.token in ['{', '}', '(', ')', '[', ']', '.', ',', ';', '+', '-', '*' ,'/', '&', '|', '<', '>', '=', '~']: 
     return 'SYMBOL' 

但是,我不知道我會如何確定令牌是0到32767之間的整數是有辦法要輕鬆搜索一系列值?

+0

@JMK在Python這被拼寫爲0 <= ... <= 32767。 – user4815162342 2013-04-07 20:10:18

回答

0

您的意思是這樣的?

elif self.token.isdigit(): 
    return 'INTEGER_LITERAL' 
4
elif self.token.isdigit() and 0 <= int(self.token) < 32768: 
    return 'INTEGER'