Choking on Syntactic Sugar

Maurice Castro <>
Tue Mar 13 08:09:57 CET 2001

Hi All,
	When writing a parser for Erlang we discovered an interesting 
construction in regexp.erl (line 121 in our somewhat older distribution).

reg4([$.|S]) -> {{comp_class,"\n"},S};
reg4("[^" ++ S0) ->
    case char_class(S0) of
        {Cc,[$]|S1]} -> {{comp_class,Cc},S1};
        {Cc,S} -> throw({error,{unterminated,"["}})

It appears as if the ++ append operator has developed a new trick, it
can be used to divide a string into 2 parts (just like Prolog). 

My question is in 3 parts:

	1) is this behaviour desirable 
		- note it is pure syntactic sugar for [$[, $^ | S0]
	2) is this behaviour intended
	3) is it documented

Comments welcome.

	Maurice Castro

More information about the erlang-questions mailing list