プログラミングと工作と

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

2015-08-01から1ヶ月間の記事一覧

構文解析Ver.1の試運転

昨日までで、新しい構文規則を全部スクリプトへ落とし終えました。ちょっと長くなりますが、構文解析クラスのスクリプト全文を示します。その後に、実行結果を載せます。とりあえず、問題なく動いているようです。#!/usr/bin/python# coding: utf-8class psr…

構文解析部の変更その10 ー生成則 2. EXEC_STMTSー

今日は、生成則 2. EXEC_STMTS を書いていきます。生成則を再掲します。 2. EXEC_STMTS → EXEC_STMT EXEC_STMTS → λ 実行文を繰り返すだけです。 それでは、スクリプトへ落としていきましょう! def exec_stmts(self): self.token.next() if self.token.toke…

構文解析部の変更その9 ー生成則 3. EXEC_STMTー

今日は、生成則 3. EXEC_STMT を書いていきます。生成則を再掲します。 3. EXEC_STMT → ASSIGN_STMT 簡単すぎて、なんでこんな規則が必要なんだ?と思いますが、これは後々のための文法です。今は代入文(assign stmt)だけなので無意味に見えますが、今後if文…

構文解析部の変更その8 ー生成則 4. ASSIGN_STMTー

今日は、生成則 4. ASSIGN_STMT を書いていきます。生成則を再掲します。 4. ASSIGN_STMT → NON_KEY_ID ':=' EXPRESS ';' 昨日までは、ほぼ同じ形の生成規則が続いたのでコピペですんでいましたが、久しぶりに違う形がやってきました。といっても、やはり生…

構文解析部の変更その7 ー生成則 5. EXPRESSー

おっと、下書きを書いたら安心して、upするの忘れてた←昨日 今日は、生成則 5. EXPRESS を書いていきます。生成則を再掲します。 5. EXPRESS → TERM EXPRESSES 形としては、FACTORやTERMとまったく同じです。これはもう、コピペあるのみです。それでは、スク…

構文解析部の変更その6 ー生成則 6. EXPRESSESー

今日は、生成則 6. EXPRESSES を書いていきます。生成則を再掲します。 6. EXPRESSES → REL_OP TERM → λ 形としては、FACTORSやTERMSと同じです。これまた、ほぼコピペで行けそうです。それでは、スクリプトへ落としていきましょう! def expresses(self): i…

構文解析部の変更その5 ー生成則 7.TERMー

今日は、生成則 7.TERM を書いていきます。生成則を再掲します。 8. TERM → TACTER TERMS これまた、なんかどこかで見た気がします。昨日のFACTORSとFACTORの関係と同じですね。生成規則10.FACTORを再掲してみます。 9. FACTOR → PART FACTORS かたちがまっ…

構文解析部の変更その4 ー生成則 8.TERMSー

今日は、生成則 8.TERMS を書いていきます。生成則を再掲します。 8. TERMS → ADD_LEV_OP FACTOR TERMS → λ なんか、どこかで見た気がしますね。そう、この前作ったFACTORSとそっくりです。生成規則10.FACTORSを再掲してみます。 10.FACTORS → MULT_LEV_OP P…