どんどん行っちゃうよ
今日は、3・4番めの文法規則
3. CONSTS → 'const' CONST_STMTS
→ λ
4. VARS → 'var' VAR_STMTS
→ λ
を書いてみます。ほぼ同じなので、ほぼコピペでいけますね。
def consts(token):
global token
if token != 'const':
エラー:キーワード'const'がないよ!
if next_token() not in NON_KEY_ID:
エラー:予約語が定数名に使われてるよ!
const_stmts()
def vars(token):
global token
if token != 'var':
エラー:キーワード'var'がないよ!
if next_token() not in NON_KEY_ID:
エラー:予約語が変数名に使われてるよ!
var_stmts()
構造は全く同じですね。
ちょっと簡単すぎたから、調子に乗って5番目も行っちゃいます。
5. BEGIN_END STMT → 'begin' 'end' '.'
def begin_end_stmt(token):
global token
if token != 'begin':
エラー:キーワード'begin'がないよ!
if next_token() != 'end':
エラー:キーワード'end'がないよ!
if next_token() != '.':
エラー:ピリオド'.'がないよ!
next_token()
なんかグイグイ進んで気持ちいいです。