<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Dec 16, 2014 at 4:15 PM, Kevin Smith <span dir="ltr"><<a href="mailto:zenparsing@gmail.com" target="_blank">zenparsing@gmail.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>We cannot tell with just two tokens of lookahead whether we need to parse a concise method or a function declaration.</div></div></blockquote><div>[...] </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Otherwise, are there any other parsing tricks which might help out?  (I'm not 100% sure what our constraints are with respect to lookahead or rewind.)<br></div></div></blockquote><div><br></div><div>Um, use three tokens of lookahead?</div><div><br></div><div>It doesn't seem like this is actually an ambiguous grammar, but maybe I'm missing something.</div><div><br></div><div>I can recommend both ANTLR and peg.js as robust solutions that can handle arbitrary lookahead.</div><div>  --scott</div></div></div></div>