2010-02-01 31 views
12

मुझे पता चला है कि आत्मा का उपयोग कैसे करें - यानी, मैंने एक मामूली जटिल व्याकरण लिखा है। मैं हमेशा एक कार्यक्रम को बढ़ाने का दृष्टिकोण लेता हूं - एक समय में एक उपप्रणाली। मैंने एक जटिल मॉडल के लिए डेटा संरचनाएं लिखी हैं जिनमें उच्चतम स्तर पर 4 प्रकार हैं।बूस्ट :: व्याकरण से व्याकरण रचनात्मक व्याकरण

मैं एक समय में शीर्ष स्तर के प्रकारों को एक प्रकार का विश्लेषण करने के लिए grammar composed from rules approach का उपयोग करना चाहता हूं - यानी, मैं एक शीर्ष स्तर व्याकरण के साथ 4 व्याकरण लिखना चाहता हूं। यदि यह संभव है (जो मुझे संदेह करना शुरू हो रहा है), तो क्या कोई ऐसा स्निपेट पोस्ट कर सकता है या ऐसा प्रोजेक्ट का संदर्भ दे सकता है जो ऐसा करता है।

50+ (संभवतः बहुत अधिक) नियमों (उचित त्रुटि हैंडलिंग के लिए) के साथ एक शीर्ष स्तर व्याकरण मजेदार की तरह नहीं लगता है (टीएमपी कोड अस्थिर/संकलित करने में धीमा है, और बेकार त्रुटि संदेश प्रदान करता है)।

उत्तर

11

एक वास्तविक प्रोग्राम से सरल, क्यूई को कर्म के समान काम करना चाहिए।

template<class Iter> 
struct subgrammar_1 
: karma::grammar<Iter, ...> 
{ 
    ... 
} 

template<class Iter> 
struct top_level_grammar 
: karma::grammar<Iter, ...> 
{ 
    top_level_grammar() : top_level_grammar::base_type(start) 
    { 
     start %= r1 | r2; 
    } 
    karma::rule<Iter, ...> r1; 
    subgrammar_1<Iter> r2; 
    ... 
} 
+0

(+1) हां, यह वही है जो मैं ढूंढ रहा था: पी, जब मैं कुछ समय लेता हूं तो मैं कोशिश करूंगा। –

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