2011-11-30 26 views
6

डिफ़ॉल्ट फ्लेक्स द्वारा सबसे लंबे मैच नियम का उपयोग करता है। क्या यह व्यवहार कम से कम अनुक्रम से मेल खाने के लिए इस व्यवहार को ओवरराइड करने का कोई तरीका है?फ्लेक्स (लेक्सर) में सबसे कम मिलान नियम को कैसे सक्षम करें?

फ्लेक्स के मैनुअल में धन्यवाद

+0

नहीं, और यदि आप इसे चाहते हैं तो आप इसे नहीं चाहते हैं। उदाहरण के लिए, यदि अधिकतर लेक्सर्स (निश्चित रूप से सभी मेरा) कैच-ऑल नियम के साथ समाप्त नहीं होते हैं, तो बहुत से लोग। वापसी yytext [0]; '। यह एकमात्र नियम बन जाएगा जो कुछ भी करता था। – EJP

उत्तर

0

This page कहना है कि यह किसी भी गैर लालची ऑपरेटरों क्योंकि यह एक पार्सर एक स्कैनर के बजाय है, और पता चलता है नियमित अभिव्यक्ति लापता कार्यक्षमता जोड़ने के लिए इस्तेमाल किया जा सकता भी नहीं है।

+0

मेरा मतलब लालची ऑपरेटरों प्रति से नहीं था। अगर आपके पास कुछ स्ट्रिंग्स के समान उपसर्ग से मिलान करने वाले रेगेक्सप्रस को पूरी तरह से अलग किया गया है तो डिफ़ॉल्ट रूप से एक लेक्सर सबसे लंबे समय तक चुनता है। मुझे इसकी आवश्यकता है कि इसे छोटा, रीसेट करें, और फिर से मिलान करना शुरू करें। – VilleDePommes