2012-09-01 35 views

cevap

10

kullanın Negatif ilerleme yüklemler:

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(""); 
    } 

Sen pegjs tekrarlama açgözlü olduğu için olumsuz bir END için yüklemi ve ayrıca START kullanmak gerekir. o virgül ve sonra birleştirir ile alt diziler katılır yani o (iç içe diziler ile uğraşırken bu join değil-ille belgelenmiş davranış dayanır rağmen

Alternatif eylem

{return result.join("").split(',').join("");} 

olarak yazılmış olabilir onları).

[GÜNCELLEME] boş unsurları ile başa çıkmak için daha kısa bir yol

phrase 
    =(!"START" .)* "START" result:(t:(!"END" .){return t[1];})* "END" .* { 
     return result.join(""); 
    } 
+0

teşekkürler olduğunu! !!!!!!!!! –

İlgili konular