예제 #1
0
        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);
        }