[erlang-questions] Are newlines significant in Erlang grammar?

Ryan Molden ryanmolden@REDACTED
Tue Dec 20 17:45:44 CET 2011


I have been playing around with making a lexer/parser for Erlang using
boost::spirit and using the YRL from lib\stdlib-1.17.5\src\erl_parse.yrl as
my grammar.  It isn't specifically called out there (or anywhere else I can
find), but I assume that newlines are significant and implied as input
terminators?

For instance the following is accepted by the compiler (ignore the
meaninglessness/infinite recursion of blah)

-module .foo.
blah(F)->blah(F-1).

However, if I put it all on one line, like so:

-module .foo.blah(F)->blah(F-1).

it is not accepted. It seems to be because .foo.blah is being parsed as a
single instance of expr_900, which is defined as


expr_900 -> '.' atom
expr_900 -> expr_900 '.' atom
expr_900 -> expr_max

I am fine treating newlines as input terminators but it isn't clear which
non-terminals require the presence of a newline and which don't.

Ryan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20111220/831d1cb8/attachment.htm>


More information about the erlang-questions mailing list