मैं AnTLR4 में अजगर व्याकरण को लागू कर रहा हूँ, लेकिन मैं मांगपत्र के साथ एक ही समस्या का सामना कर रहा हूँ और DEDENT यहाँ पर चर्चा की: ANTLR4- dynamically inject tokenAnTLR4: मांगपत्र और DEDENT टोकन
समाधान मैं कोशिश कर रहा हूँ टेर द्वारा समाधान कन्वर्ट करने के लिए है कि हो सकता है यहां पाया गया http://antlr3.org/grammar/1078018002577/python.tar.gz (अगला टोकन ओवरराइड करें और काल्पनिक टोकन डालें)।
LEADING_WS
: {getColumn()==1}?
// match spaces or tabs, tracking indentation count
( ' ' { spaces++; }
| '\t' { spaces += 8; spaces -= (spaces % 8); }
| '\014' // formfeed is ok
)+
{
}
...
लेकिन मुझे एक त्रुटि हो रही है क्योंकि lexer नियम में कार्रवाई एकल altermost विकल्प पर पिछले तत्व होना चाहिए रखें:
समस्या इस समाधान मानता है कि है कि हम की तरह एक lexer नियम है।
क्या कोई मुझे समाधान खोजने में मदद कर सकता है?
बहुत बहुत धन्यवाद !!!
बेशर्म प्लग के लिए क्षमा करें, लेकिन मैं एक ही मुद्दा था और इसके लिए एक सहायक वर्ग लिखने का फैसला किया: [antlr-denter] (https://github.com/yshavit/antlr-denter)। – yshavit