<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Apr 21, 2015 at 4:53 PM, Anthony Ramine <span dir="ltr"><<a href="mailto:n.oxyde@gmail.com" target="_blank">n.oxyde@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Le 21 avr. 2015 à 14:15, Vlad Dumitrescu <<a href="mailto:vladdu55@gmail.com">vladdu55@gmail.com</a>> a écrit :<br>> The dot is recognized anyway<br>
<br>
</span>Not always.<br>
<br>
f() -> #foo.bar<br>
g() -> 3.14</blockquote><div><br></div><div>What I mean is that the dot token doesn't have to contain the whitespace in it in order to get recognized. Like for the % character, the whitespace doesn't need to get consumed and will be part of the next token. This will give more consistency too, as the newlines are otherwise always first in a white_space token.</div><div><br></div><div>After digging in the code, I believe that I have an explanation, but am not sure if it's correct. It seems that this is an artifact of how the reentrant lexer (erl_scan:tokens) is implemented. Usually the end of the input is 'eof', but if the input is a string we don't know if the input is finished and we should return 'ok', or if there may be more input and return 'more'. Having the string end with ". " (dot space) will have the implementation return 'ok'. This is even mentioned in the docs for erl_scan:tokens. I would prefer for such cases to end the input with 'eof' (String ++ eof) which is already done in several places in erl_scan, in the compiler, in dialyzer.</div><div><br></div><div>regards,</div><div>Vlad</div><div><br></div></div><br></div></div>