[erlang-questions] : sytax of atoms

Caoyuan Deng <>
Mon Apr 16 13:54:57 CEST 2007


Thanks for you clarification. I'll update the Erlang.nbs file as
possible. But NBS does not support >127 char in definition, I'll fire
a feature request to them.


On 4/16/07, Raimo Niskanen <> wrote:
> To elaborate on the atom syntax definition. Erlang is defined for
> ISO-8859-1 and there are more characters allowed for unquoted atoms,
> see erl_scan.erl.
>
> Allowed decimal ASCII ranges for the first character:
>         97-122,223-246,248-255
> That is a-z and ß-ÿ except ÷.
>
> Allowed decimal ASCII ranges for the following character(s):
>         97-122,223-246,248-255,
>         65-90,192-214,216-222,
>         48-57,95,64
> That is a-z and ß-ÿ except ÷,
>         A-Z and À-Þ except ×,
>         0-9, _ and @.
>
> On top of this a dot between atoms is translated by the compiler
> and the shell evaluator to a quoted atom containing the dot.
> It has to be a dot, not a full stop. A full stop is a dot
> followed by whitespace, comment or end of file. This is an atom:
>         'a.b' = a .b
> Note that the unquoted variant is not a legal pattern, so:
>         a .b = 'a.b'
> gives an illegal_pattern runtime error.
>
> For quoted atoms any char is allowed between the quotes ''.
> Plus, a \ opens an escape sequence:
>         '\\\'\n\r\t\v\b\f\e\s\d'
>         '\000 - \177'
>         '\^@\^A - \^Z\^[\^\\^]\^_'
>
>
>
> On Sun, Apr 15, 2007 at 04:11:46AM +0200, Robert Virding wrote:
> > As regular expressions for leex:
> >
> > [a-z][A-Za-z0-9_-.]*
> > '(\\\^.|\\.|[^'])*'
> >
> > With macros they're even shorter.
> >
> > Robert
> >
> >
> > Caoyuan Deng wrote:
> > > There is an LALR-1 grammar definition similar to yacc:
> > > lib/stdlib-1.14.4/src/erl_parse.yrl
> > >
> > > And as I'm writing a Erlang IDE for NetBeans, I also wrote a LL(k)
> > > grammar definition for Erlang:
> > > http://erlybird.svn.sourceforge.net/viewvc/erlybird/trunk/erlybird/erlybird-erlang-editor/src/org/netbeans/modules/languages/erlang/Erlang.nbs?revision=96&view=markup
> > >
> > > For the Atom, it's something like:
> > > TOKEN:atom: (
> > >     ["a"-"z"] ["a"-"z" "A"-"Z" "0"-"9" "_" "@"]* |
> > >     "\'" ([^ "\\" "\'" "\n" "\r"] |
> > >           ("\\" (. |
> > >                  (["0"-"7"]) |
> > >                  (["0"-"7"] ["0"-"7"]) |
> > >                  (["0"-"7"] ["0"-"7"] ["0"-"7"])
> > >                  ("^" ["@" "A"-"Z" "["-"_"])
> > >                 )
> > >           )
> > >     )*
> > >     "\'"
> > > )
> > >
> > >
> > > On 4/14/07, Tony Finch <> wrote:
> > >> The reference manual doesn't say that dots are permitted in atoms but they
> > >> seem to be, e.g. in unquoted long node names.
> > >>
> > >> Is there a formal grammar (e.g. BNF) of Erlang anywhere?
> > >>
> > >> Tony.
> > >> --
> > >> f.a.n.finch  <>  http://dotat.at/
> > >> HEBRIDES: SOUTH OR SOUTHEAST 4 OR 5, OCCASIONALLY 6 OR 7. MODERATE OR ROUGH.
> > >> RAIN LATER. MODERATE OR GOOD.
> > >> _______________________________________________
> > >> erlang-questions mailing list
> > >> 
> > >> http://www.erlang.org/mailman/listinfo/erlang-questions
> > >>
> > > _______________________________________________
> > > erlang-questions mailing list
> > > 
> > > http://www.erlang.org/mailman/listinfo/erlang-questions
> > >
> > _______________________________________________
> > erlang-questions mailing list
> > 
> > http://www.erlang.org/mailman/listinfo/erlang-questions
>
> --
>
> / Raimo Niskanen, Erlang/OTP, Ericsson AB
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions
>




More information about the erlang-questions mailing list