<div dir="ltr">If I decided to go with the multiple lexers route to basically change &quot;modes&quot; while I&#39;m in the context of parenthesis... how would one do this? Should I create an action like<div><br></div><div style>
<div>(define parameter-lexer</div><div>  (lexer</div><div>   [(eof) &#39;EOF]</div><div>   [(:or &quot;V&quot; &quot;Z&quot; &quot;B&quot; &quot;S&quot; &quot;C&quot; &quot;I&quot; &quot;J&quot; &quot;F&quot; &quot;D&quot;) (token-SIMPLE_TYPE lexeme)]</div>
<div>   [className (token-CLASS_NAME lexeme)]))</div><div><br></div><div style>And </div><div style><div>(define node-lexer</div><div>  (lexer</div><div>   [(eof) &#39;EOF]   </div><div>   [&quot;.method&quot; &#39;dirMethod]</div>
<div>   ...</div><div>   [&quot;(&quot; `(OP ,(parameter-lexer input-port))]</div><div>   [&quot;)&quot; &#39;CP]</div><div>   ...))</div></div></div><div class="gmail_extra"><br>This would seem to create some artificial hierarchy that the parser would have to understand (a list within the existing list for example?)? Should I flatten afterwards to get rid of that?</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">Would love to see a concrete example of multiple lexers in action if someone has it.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Thanks much!</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">David</div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jun 8, 2013 at 10:05 PM, Jon Zeppieri <span dir="ltr">&lt;<a href="mailto:zeppieri@gmail.com" target="_blank">zeppieri@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The results you&#39;re seeing are consistent with longest match;<br>
&quot;ILandroid&quot; is longer than &quot;I.&quot; The order of the [trigger action-expr]<br>
pairs won&#39;t affect that. The order only affects which action is chosen<br>
for an ambiguous match, but this case isn&#39;t ambiguous.<br>
<br>
I don&#39;t think you can do what you&#39;re trying to do with only a (single)<br>
lexer, unless there are some additional rules that aren&#39;t expressed in<br>
your grammar (for example, &quot;qualifiers cannot start with upper-case<br>
letters&quot;).<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
On Fri, Jun 7, 2013 at 7:44 PM, David Weinstein &lt;<a href="mailto:dweinst@insitusec.com">dweinst@insitusec.com</a>&gt; wrote:<br>
&gt; Can anyone explain the behavior that is observed here with the<br>
&gt; parser-tools/lexer. I think I&#39;m overlooking something but both precedence<br>
&gt; and trying to make the longest match should be creating the expected<br>
&gt; behavior (please see comments in the .rkt). Thanks for your help!<br>
&gt;<br>
&gt;<br>
&gt; David<br>
&gt;<br>
&gt;<br>
</div></div><div class="HOEnZb"><div class="h5">&gt; ____________________<br>
&gt;   Racket Users list:<br>
&gt;   <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
&gt;<br>
</div></div></blockquote></div><br></div></div>