private void VisitObjectAccess(TParser.ObjectAccessContext context, NodesCollection <Node> path) { while (true) { var id = new Identifier(context.Identifier().GetText(), context.Identifier().Symbol); path.Add(id); var leftExp = context.expression(); if (leftExp is TParser.ObjectAccessContext objCtx) { context = objCtx; continue; } else { path.Add(Visit(leftExp)); } break; } }