رفع parseerror في هاسكل/بارسيك
سؤال
ما هي الطريقة المفضلة لرفع الأخطاء (ParseError
) في Parsec؟ حصلت على بعض التعليمات البرمجية داخل المحلل الذي يؤدي الشيك وإذا فشل الشيك ParseError
يجب إرجاع (أي Left ParseError
عند الجري parse
).
المحلول
يمكنك استخدام Text.ParserCombinators.Parsec.Prim.unexpected
و Control.Monad.fail
لهذا. كلاهما يأخذ String
الوسيطة التي تشير إلى رسالة الخطأ وستعود (في هذه الحالة) قيمة النوع GenParser tok st a
.
لمزيد ، انظر Text.ParserCombinators.Parsec.Error
, ، على وجه التحديد Message
. هناك يمكنك قراءة الوظيفة التي يجب استخدامها في هذه الحالة (على الرغم من أن كلاهما يشير إلى خطأ في التحليل ، إلا أنهما مختلفان قليلاً).
لا تنتمي إلى StackOverflow