X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=src%2Fparse.icl;h=e60ad1778afe54d3e5d0f7ae0275d87822cddd5e;hb=4932517e2d12cd55922231175bf2f0a06f5b85d6;hp=f1c76209cb94746f0551e03508df860961e38e76;hpb=39ec3b9396a095d914f703163ff02ea5028eea26;p=cc1516.git diff --git a/src/parse.icl b/src/parse.icl index f1c7620..e60ad17 100644 --- a/src/parse.icl +++ b/src/parse.icl @@ -172,8 +172,14 @@ trans2 t f = satTok t >>= \(_, r).pure (f r) trans1 :: TokenValue a -> Parser Token a trans1 t r = trans2 t $ const r +derive gEq TokenValue satTok :: TokenValue -> Parser Token Token -satTok t = satisfy ((===) t) +satTok t = satisfy $ eq t + where + eq (IdentToken _) (_, IdentToken _) = True + eq (NumberToken _) (_, NumberToken _) = True + eq (CharToken _) (_, CharToken _) = True + eq x (_, y) = gEq {|*|} x y parseSepList :: TokenValue (Parser Token a) -> Parser Token [a] parseSepList sep p =