C# Grammar for tree-sitter.
copied from cf-post-staging / tree-sitter-c-sharpC# grammar for tree-sitter based upon the Roslyn grammar with changes in order to: - Deal with differences between the parsing technologies - Work around some bugs in that grammar - Handle #if, #else, #elif, #endif blocks - Support syntax highlighting/parsing of fragments - Simplify the output tree - Reduce parser state count and complexity - Be in-line with tree-sitter's convention where applicable