public override Node VisitObjectAccess(TParser.ObjectAccessContext context) { var path = new NodesCollection <Node>(context.Start); VisitObjectAccess(context, path); var obj = new ObjectAccess(path[0], null, path[0].Position); foreach (var node in path.Skip(1)) { obj = new ObjectAccess(node, obj, node.Position); } return(obj); }