बीएनएफ में नहीं होने पर, ईबीएनएफ में को छोड़कर (आमतौर पर "-" के रूप में परिभाषित किया गया है)। आपके मामले में, वाक्य रचना होगा:
alphaNum="a"|"b"|...|"z"|"0"|"1"|...|"9"|"A"|...|"Z";
S= (alphaNum,{alphaNum}) - "foo";
या यदि आप चाहते हैं कि उसे असंवेदनशील मामला है:
foo="f"|"F","o"|"O","o"|"O";
alphaNum="a"|"b"|...|"z"|"0"|"1"|...|"9"|"A"|...|"Z";
S= (alphaNum,{alphaNum}) - foo;
यह एक अलग स्वीकृति मानदंडों से टिप्पणी जो होगा में किया गया था में जो परिणाम इसके बराबर:
alphaNum="a"|"b"|...|"z"|"0"|"1"|...|"9";
S= alphaNum - "f", {alphaNum}
|"f", alphaNum - "o", {alphaNum}
|"f", "o", alphaNum - "o", {alphaNum};
यह स्ट्रिंग्स "एफ" और "एफओ" छोड़ देता है।
हालांकि, यह ध्यान रखना महत्वपूर्ण है कि ईरा बैक्सटर के जवाब में यह है कि कुछ भी छोड़कर (अस्वीकृत) कारक समस्याएं पैदा करेगा।
4.7 वाक्यात्मक अपवाद
एक वाक्यात्मक-अपवाद एक वाक्यात्मक कारक विषय कि प्रतीकों में से दृश्यों वाक्यात्मक-अपवाद द्वारा का प्रतिनिधित्व समान रूप से हो सकता है प्रतिबंध के होते हैं: यह भी ISO standard में बताया गया है द्वारा प्रतिनिधित्व किया गया एक वाक्य रचनात्मक-कारक जिसमें कोई मेटा-पहचानकर्ता नहीं है।
नोट - एक वाक्यात्मक-अपवाद एक मनमाना वाक्यात्मक-कारक होने की अनुमति दी है, तो विस्तारित BNF भाषाओं का एक व्यापक वर्ग विषय से मुक्त व्याकरण से, प्रयास जो रसेल के लिए नेतृत्व सहित निर्धारित कर सकते हैं जैसे विरोधाभास, उदाहरण के लिए
xx = "A" - xx;
क्या "ए" xx का एक उदाहरण है? ऐसा लाइसेंस अवांछनीय है और इसलिए सिंटैक्टिक-अपवाद का रूप प्रतिबंधित है जो सुरक्षित साबित हो सकते हैं। इस प्रकार एक सिंटैक्टिक-कारक सामान्य रूप से कुछ संदर्भ-मुक्त व्याकरण के बराबर है, एक वाक्य रचनात्मक अपवाद हमेशा नियमित व्याकरण के बराबर होता है। यह दिखाया जा सकता है कि संदर्भ-मुक्त व्याकरण और नियमित व्याकरण के बीच का अंतर हमेशा एक और संदर्भ मुक्त व्याकरण है; इसलिए इस वाक्य के अनुसार एक वाक्य रचनात्मक शब्द (और इसलिए व्याकरण परिभाषित) कुछ संदर्भ मुक्त व्याकरण के बराबर है।
मुझे लगता है कि अलग-अलग पात्रों का उपयोग करके स्ट्रिंग का निर्माण करके इसे एक जटिल तरीके से परिभाषित करना संभव है। – Jus12
हां, आप कर सकते हैं। आपने सामान्य रूप से अस्वीकृति के बारे में पूछा। आपके विशिष्ट उदाहरण के लिए, यह व्याकरण चाल करेगा: एस = नहीं किसी भी * | 'एफ' नहीं किसी भी * | 'एफ' 'ओ' नहीं किसी भी *; notF = 'a' | ... 'ई' | 'जी' | ... 'जेड'; नहीं ओ = 'ए' | ... | 'एन' | 'पी' | ... 'जेड'; कोई = 'ए' | ... | 'जेड'; –