トップ «前の日記(2014-05-21 (Wed)) 最新 次の日記(2014-05-29 (Thu))» 編集

uDiary

海野秀之(うんのひでゆき)の外部記憶

Twitter (twilog) / RSS / アンテナ / ぶくま

2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|08|
2010|01|02|03|05|06|07|10|11|
2011|03|08|
2012|02|04|07|08|10|
2013|01|02|03|05|06|08|11|12|
2014|01|02|05|06|07|08|09|12|
2015|01|02|03|04|

2014-05-23 (Fri)

[Haskell][Tiger] Tiger Book chap3: Parser

3章の課題である Tiger Language Parser を書いた: https://github.com/unnohideyuki/Tiger-in-Haskell/tree/master/chap3

ほとんど文法をそのまま Happy で書いただけなんだけど、shift/reduce conflict の解消については以下を参考にさせてもらった。 https://github.com/sunchao/tiger/blob/master/tiger.grm

Happy と Alex の連携については、これが、たぶん一番ナイーブな方法だと思う。

http://www.cs.princeton.edu/~appel/modern/testcases/ にあるものでは、test49.tig のみが Parse Error に:

$ ./parsetest < ../testcases/test49.tig
parsetest: Parse Error at token nil at line 5, col 25

2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|08|
2010|01|02|03|05|06|07|10|11|
2011|03|08|
2012|02|04|07|08|10|
2013|01|02|03|05|06|08|11|12|
2014|01|02|05|06|07|08|09|12|
2015|01|02|03|04|
Categories 3imp | Card | Cutter | Dalvik | Euler | Football | GAE/J | Hand | Haskell | Re:View | Ruby | Scheme | TQD | Tiger | TigerBook読 | UikiTeXi | Verilog | Violin | Web | parconc | tDiary | お勉強 | エントロピー | ツン読 | | 将棋 | 政治について | | 模写してみよう | 確率論 | 設定など | 雑文 | 音声