2012-10-23 20 views
6

मैं एक छोटे से टॉक के लिए विकास और सार सिंटेक्स ट्री मेटा-मॉडल विकसित कर रहा हूं और अभी मुझे एक ब्लॉक मॉडलिंग के साथ परेशानी है। वे शाब्दिक प्रकार के हैं लेकिन दूसरी ओर वे विधियों की तरह व्यवहारिक संस्थाएं हैं। ब्लॉक लैम्ब्डा कार्यों की तरह हैं ताकि शायद किसी के साथ काम करने का बेहतर अभ्यास हो।लैम्ब्डा फ़ंक्शन का अनुमानित प्रतिनिधित्व

मैं किसी भी सलाह के लिए आभारी रहूंगा।

उत्तर

8

रिफैक्टरिंग ब्राउज़र का एक बहुत अच्छा एएसटी है, इसके कार्यान्वयन पर एक नज़र डालें।

आपके प्रश्न के संबंध में: रिफैक्टरिंग ब्राउज़र ब्लॉक और विधियों के साझा हिस्सों को SequenceNode नामक एक अलग नोड प्रकार में निकाल देता है। अनुक्रम नोड temps और बयान के अनुक्रम मॉडल। ब्लॉक नोड फिर अनुक्रम नोड को लपेटता है, तर्क जोड़ता है, और मूल्य नोड्स के साझा व्यवहार को विरासत में लेता है। विधि नोड अनुक्रम नोड को लपेटता है और विधि नाम, तर्क, pragmas, आदि जोड़ता है