0
LOLCODE のパーサーを作成しようとしていますが、私は何をしていますか? (念のため、これらの奇妙な言葉を=説明すると))予約済みのキーワードの疑問符
だから、私はO RLY?
とYA RLY
のトークンを持っている必要があります。 私はこのようにやろうとしています:
reserved = { ...,
'O': 'IF_O',
'RLY?': 'IF_RLY',
'YA': 'THEN_YA',
'RLY': 'THEN_RLY', ...}
tokens = reserved.values() + (...)
t_IF_O = r'O'
t_IF_RLY = r'RLY\?'
t_THEN_YA = r'YA'
t_THEN_RLY = r'RLY'
そして、私はO RLY?
を書くときにはIF_O THEN_RLY
と未定義シンボル?
のように解析されます。
RLYを置き換えた場合は、たとえば、RLYYで、RLY?: 'IF_RLY'
- >'RLYY': 'IF_RLY'
およびt_IF_RLY = r'RLYY'
のように置換すると、O RLYY
で動作します。
だから、これは予約語の疑問符の問題だと思いますが、これの回避策はわかりません。