private Primary ParsePrimary()
        {
            var primary = TryExtractVariants(new Func <AstNode>[] {
                ParseReceiver,
                ParseExplicitAddress, // should be before ParseDereference
                ParseDereference,
            });

            if (primary == null)
            {
                return(null);
            }

            var node = new Primary();

            node.AddChild(primary);

            return(node);
        }