2011-12-14 11 views
11

मैं एक पार्सर उत्पन्न करने के लिए हैप्पी का उपयोग कर रहा हूं।"आंतरिक हैप्पी त्रुटि" ओवरराइड करना - नहीं हैप्पीएटएएल

मुझे पता चला है कि जब मैं इसे टोकन देता हूं जो शीर्ष स्तर की तुलना में निचले स्तर पर व्याकरण के हिस्से से मेल खाता है (जैसे इसे स्वयं अभिव्यक्ति देना, यह एक बयान का हिस्सा नहीं है), मुझे मिलता है एक पार्स त्रुटि के बजाय एक "आंतरिक हैप्पी त्रुटि"।

क्या notHappyAtAll ओवरराइड करने का कोई तरीका है ताकि मैं "आंतरिक हैप्पी त्रुटि" से बेहतर त्रुटि संदेश मुद्रित कर सकूं? जाहिर है ऑटो-जनरेटेड पार्सर फ़ाइल को बदलने के अलावा, जब भी मैं व्याकरण को अद्यतन करता हूं, मुझे इसे करना होगा।

+1

शायद [खुश दस्तावेज़] (http://haskell.org/happy/doc/html/sec-monads.html#sec-exception) मदद? अस्वीकरण: शायद वे नहीं करते हैं। –

+0

यदि आप हमेशा अपने व्याकरण के शीर्ष-स्तर के बजाय "टुकड़े" से मेल खाना चाहते हैं, तो आपको कई प्रारंभिक प्रतीकों की आवश्यकता होगी - हैप्पी मैनुअल की सेक्शन 2.7 देखें। –

+0

क्या आपने अपने व्याकरण के शीर्ष पर एक त्रुटि निर्देश परिभाषित किया है? यह फॉर्म '% त्रुटि {parseError}' - 'parseError' का होना चाहिए कुछ उपयोगकर्ता परिभाषित फ़ंक्शन है। मैनुअल के अध्याय 2 देखें। –

उत्तर

1

यह समस्या हैप्पी 1.18.7 में तय की गई प्रतीत होती है।

संबंधित मुद्दे