मैं वाईएसीसी (वास्तव में बाइसन) में एक व्याकरण लिख रहा हूं, और मुझे एक बदलाव/समस्या कम हो रही है। इसके बाद पोस्टफिक्स वृद्धि और कमी ऑपरेटर शामिल हैं। यहाँ व्याकरण का एक कांट छांट संस्करण है:वाईएसीसी शिफ्ट को ठीक करने/पोस्ट-वृद्धि ऑपरेटर से संघर्ष कैसे कम करें?
%token NUMBER ID INC DEC
%left '+' '-'
%left '*' '/'
%right PREINC
%left POSTINC
%%
expr: NUMBER
| ID
| expr '+' expr
| expr '-' expr
| expr '*' expr
| expr '/' expr
| INC expr %prec PREINC
| DEC expr %prec PREINC
| expr INC %prec POSTINC
| expr DEC %prec POSTINC
| '(' expr ')'
;
%%
बाइसन मुझसे कहता है 12 पारी/संघर्ष को कम देखते हैं, लेकिन अगर मैं पोस्टफ़िक्स वेतन वृद्धि और घटती के लिए लाइनों बाहर टिप्पणी, यह ठीक काम करता है। क्या कोई इस संघर्ष को ठीक करने के बारे में जानता है? इस बिंदु पर, मैं एक एलएल (के) पार्सर जेनरेटर पर जाने पर विचार कर रहा हूं, जो इसे अधिक आसान बनाता है, लेकिन एलएएलआर व्याकरण हमेशा लिखने के लिए और अधिक प्राकृतिक लग रहा है। मैं जीएलआर पर भी विचार कर रहा हूं, लेकिन मुझे किसी भी अच्छे सी/सी ++ जीएलआर पार्सर जनरेटर के बारे में पता नहीं है।
यदि कम मतदाता कम से कम कारण बताएंगे तो मैं इसकी सराहना करता हूं ... – Zifre