{#- C# visitor method template

   Context variables:
   - camel_method: visitor method name in camelCase
   - params: C# parameter list as string
   - result_type: visitor callback result type
   - action_type: "skip", "continue", "preserve_html", "custom", or "custom_template"
   - action_value: custom output or template string (for custom/custom_template)
#}
        public {{ result_type }} {{ camel_method }}({{ params }})
        {
{% if unsupported_diagnostic %}
            throw new NotSupportedException("{{ unsupported_diagnostic }}");
{% elif action_type == "skip" %}
            return new {{ result_type }}.Skip();
{% elif action_type == "continue" %}
            return new {{ result_type }}.Continue();
{% elif action_type == "preserve_html" %}
            return new {{ result_type }}.PreserveHtml();
{% elif action_type == "custom" %}
            return new {{ result_type }}.Custom("{{ action_value }}");
{% elif action_type == "custom_template" %}
            return new {{ result_type }}.Custom($"{{ action_value }}");
{% endif %}
        }
