パーセックでオフセットの位置を(入力の開始点からのcharctersとして)簡単に取得できますか?もしそうなら、どうですか?内部的にParsecは、ソース名、行および列を持つデータ型として位置を保持します。オフセットとしてのパーセルの位置
私はパーサpを使って何かを解析し、オフセットとしての左右の位置だけでなく、その結果を返します
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))
のようなパーサを書くことができるようにしたいと思います。
alex
(字句解析ジェネレータ)は、絶対文字オフセット、行番号、および列番号を保持するハンドルpositionsを処理します。私はparsecで絶対文字オフセットを逃しています。
オフセットを何から? parsecはすでに0からの行オフセットと0からの列オフセットを示しています。ファイルの先頭から文字単位でオフセットされていますか? –
@DonStewart入力の開始から文字のオフセットが必要です。 – Romildo