プログラミングと工作と

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

ちょっとだけ「俺」仕様

今日はVAR_STMTS行きます。
いつものように、今日書く部分の文法規則↓

7. VAR_STMTS     →  IDS ':' TYPE ';' (VAR_STMTS | λ)

def var_stmts():
    global token
    if token in KEYWORD:
        エラー:予約語が変数名に使われてるよ!
    x = ids()
    if token != ':':
        エラー:':'コロンが抜けてませんか?
    if next_token() not in ['int', 'integer', 'bool', 'boolean']:
        エラー:型名が間違ってませんか?
    if next_token() != ';':
        エラー:';'セミコロンが抜けてませんか?
    if next_token != 'begin':
        if token in KEYWORD:
            エラー:ここは'begin'か非キーワードのくるところ!
    if token not in KEYWORD:
        var_stmts()


今は、型として「integer」と「boolean」の2つだけしか想定していないので、この部分は後々変更されます。
また、「僕はPascalが好きです」と言っておいてなんなんですが、integerとかbooleanとかprocedureとか・・・、なんか長ったらしいですよね。
正直、書く時「めんどくさいなー」と思ったりします。
オリジナルに敬意を表して、このながったらしい書き方も受理させますが、ささやかな変更として「int」「bool」「proc」「func」などの省略形も書けるようにしたいと思います。
ほんの少しC言語風?せっかくイチから作るのですから、ちょっとだけ「俺色」に染めてやります。