This does a few things: - Add support for templated struct. - Change parsing of template scope. Now all template scope `<..>` are parsed properly. - Rework to support better match syntax. - Avoid warning from scope guard processing. Now initialize the return value to zero. Pull Request: https://projects.blender.org/blender/blender/pulls/145132