RX0167

डोमेन: पार्सिंग

त्रुटि संदेश

जहाँ मान चाहिए वहाँ `if`: %s (%s)

संदेश में %s उस मान की जगह है जिसे इंजन त्रुटि उठाते समय भरता है।

कहानी

आपने if को ऐसी जगह रखा जहाँ मान चाहिए था, जैसे x = if ok 'yes' else 'no', और इंजन ने पार्स पर बताया कि if मान नहीं बनाता। समझिए बात। if एक flow है: वह कथनों को अपने भीतर रखता है और उनके बीच राह चुनता है। वह खुद कोई मान नहीं बनाता, इसलिए x में बाँधने को कुछ नहीं बचता। पहले इसका जवाब "नाम if कुछ नहीं ढूँढता" आता था, जो भ्रामक था। अब इंजन सिखाता है। सही लिखावट यह है कि हर शाखा के भीतर बाँधिए: if ok के नीचे इंडेंट करके x = 'yes', फिर else और उसके नीचे x = 'no'। नाम module का है, इसलिए शाखा के बाहर भी दिखता है। जैसे चौराहे का सिपाही रास्ता बताता है, खुद गंतव्य नहीं बन जाता। इलाज: if के नतीजे को बाँधने की जगह हर शाखा में bind कीजिए। संदेश में वह जगह है जहाँ आपने if लिखा।

पाठ Rush इंजन की त्रुटि सूची से लिया गया है।