public override object VisitRos_message(RosMessageParser.Ros_messageContext context) { var messageDescriptor = new MessageDescriptor(); for (int i = 0; i < context.ChildCount; ++i) { var result = Visit(context.GetChild(i)); if (result is FieldDescriptor field) { messageDescriptor.AddField(field); } if (result is ConstantDescriptor constant) { messageDescriptor.AddConstant(constant); } if (result is string comment) { messageDescriptor.AddComment(comment); } } _listener.OnVisitRosMessage(messageDescriptor); return(messageDescriptor); }