2012-01-16 13 views
5

क्या हम जीएचसी एपीआई या टेक्स्ट स्रोत मॉड्यूल लोड करने के लिए कुछ और नहीं कर सकते हैं, लेकिन एएसटी एक्सप्रेशन, haskell-src-exts Exp type के समान? इस तरह हम कोड पीढ़ी और पार्सिंग के लिए समय बचा सकते हैं।हास्केल सार वाक्यविन्यास अभिव्यक्ति की गतिशील लोडिंग

उत्तर

3

मुझे नहीं लगता कि जीएचसी एपीआई एक एएसटी इंटरफ़ेस का खुलासा करता है (हालांकि गलत हो सकता है), लेकिन टेम्पलेट हास्केल करता है। यदि आप Language.Haskell.THExp संरचना का उपयोग करके अभिव्यक्तियां बनाते हैं, तो आप कार्य/घोषणाएं बना सकते हैं और $(someTHFunction) वाक्यविन्यास द्वारा उनका उपयोग कर सकते हैं।

एक काफी बड़ी चेतावनी यह है कि TH केवल संकलन समय पर चलता है, इसलिए आपको सब कुछ पूर्व-उत्पन्न करने की आवश्यकता होगी। यदि आप रन-टाइम पर TH का उपयोग करना चाहते हैं, तो मुझे लगता है कि आपको टेम्पलेट हैकेल एएसटी को सुंदर प्रिंट करना होगा, फिर परिणामी स्ट्रिंग पर जीएचसी एपीआई का उपयोग करें।

+1

इसके अलावा मैं टेम्पलेट हास्केल स्रोत कोड उत्पन्न कर सकता हूं। इसे एएसटी अभिव्यक्ति उत्पन्न करने और हास्केल टेक्स्ट स्रोत उत्पन्न करने के बीच समझौता के रूप में माना जा सकता है। – modular

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