public DottedName dotted_name()
{
var segs = new List<Identifier>();
var name = id();
var posStart = name.Start;
var posEnd = name.End;
segs.Add(name);
while (PeekAndDiscard(TokenType.DOT))
{
name = id();
posEnd = name.End;
segs.Add(name);
}
return new DottedName(segs, filename, posStart, posEnd);
}