Parsecを使用して、位置をオフセットとして(入力の開始からの文字として)簡単に取得できますか?もしそうなら、どのように?内部的には、Parsecは、ソース名、行、および列を持つデータ型としての位置を保持します。
次のようなパーサーを記述できるようにしたいと思います
pWithPos p = do left <- getPosition -- gets the current position as an offset
x <- p
right <- getPosition -- gets the current position as an offset
return (x,(left,right))
これは、パーサーpを使用して何かを解析し、その結果と、その左右の位置をオフセットとして返します。
alex
(字句アナライザジェネレータ)たとえば、絶対文字オフセット、行番号、および列番号を保持する位置を処理します。パーセクの絶対文字オフセットがありません。