pp4d - インデントによるブロック

[id:lethevert:20050915:p4]
インデントによるブロックをどのように書けば解析しやすいかを考えていたところ、下のような構造体を考えれば、よいのではないかと思った。

::ReadBuffer =
    { lineNo :: Int
    , line   :: [Char]
    , indent :: Int
    , symbol :: [[Char]]
    }

つまり、字句解析の際に、シンボルを読み込むごとに、構文解析に渡すのではなく、行単位で字句解析をしてから、構文解析にパスするようにするのが自然なのではないか?
ところで、こういうのって、yaccなどで扱うにはどのように記述するんだろう?