उपयोग नकारात्मक अग्रदर्शी विधेय:
phrase
=(!"START" .)* "START" result:(!"END" .)* "END" .* {
for (var i=0;i<result.length;++i)
// remove empty element added by predicate matching
{result[i]=result[i][1];
}
return result.join("");
}
आप अंत के लिए एक नकारात्मक विधेय के साथ ही स्टार्ट उपयोग करने के लिए क्योंकि pegjs में पुनरावृत्ति लालची है की जरूरत है।
वैकल्पिक रूप से, कार्रवाई के रूप में
{return result.join("").split(',').join("");}
लिखा जा सकता है हालांकि इस join
का नहीं-जरूरी दस्तावेज व्यवहार पर निर्भर करता है जब (नेस्टेड सरणियों के साथ काम कर अर्थात् है कि यह मिलती है और उसके बाद के लिए अल्पविराम कोनकैटेनेट्स साथ उप-सरणियों उन्हें)।
[अद्यतन] खाली तत्वों से निपटने के लिए एक छोटा रास्ता
phrase
=(!"START" .)* "START" result:(t:(!"END" .){return t[1];})* "END" .* {
return result.join("");
}
धन्यवाद है! !!!!!!!!! –