コンパイラ作成(2) rubyのenum

前回の続きで字句解析の中身をちょっとだけ。

# トークンの種類 enumの代わり
module TK
  EOF     = 1    # End of file
  ID      = 2    # Identifire
  NUMBER  = 3    # Number
  SYMBOL  = 4    # Operator
  STRING  = 5    # String
  UNKNOWN = 6    # Unkown token
end

rubyにはenumに相当する機能がないのでその代わり。トークンの種類を表してるよ。SYMBOLのところのコメントがOperatorになってるのは、最初は演算子とそれ以外の記号類を別の種別にしようかと考えてた名残。
UNKNOWNはLexerが解釈できない文字。ソースコード中の予想外の記号や全角文字かなんか。今のところ対応してる記号は=+-;(){}だけ。