سؤال

ما هي الطريقة المفضلة لرفع الأخطاء (ParseError) في Parsec؟ حصلت على بعض التعليمات البرمجية داخل المحلل الذي يؤدي الشيك وإذا فشل الشيك ParseError يجب إرجاع (أي Left ParseError عند الجري parse).

هل كانت مفيدة؟

المحلول

يمكنك استخدام Text.ParserCombinators.Parsec.Prim.unexpected و Control.Monad.fail لهذا. كلاهما يأخذ String الوسيطة التي تشير إلى رسالة الخطأ وستعود (في هذه الحالة) قيمة النوع GenParser tok st a.

لمزيد ، انظر Text.ParserCombinators.Parsec.Error, ، على وجه التحديد Message. هناك يمكنك قراءة الوظيفة التي يجب استخدامها في هذه الحالة (على الرغم من أن كلاهما يشير إلى خطأ في التحليل ، إلا أنهما مختلفان قليلاً).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top