module Hydra.Sources.Tier4.Ext.Csharp.Syntax where
import Hydra.Sources.Tier3.All
import Hydra.Dsl.Types as Types
import Hydra.Dsl.Annotations
import Hydra.Dsl.Bootstrap
csharpSyntaxModule :: Module
csharpSyntaxModule :: Module
csharpSyntaxModule = Namespace
-> [Element] -> [Module] -> [Module] -> Maybe String -> Module
Module Namespace
ns [Element]
elements [Module
hydraCoreModule] [Module]
tier0Modules (Maybe String -> Module) -> Maybe String -> Module
forall a b. (a -> b) -> a -> b
$
String -> Maybe String
forall a. a -> Maybe a
Just (String
"A C# syntax module based on the ANTLR grammar dated 02/07/2024 and available at:\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/grammar")
where
ns :: Namespace
ns = String -> Namespace
Namespace String
"hydra/ext/csharp/syntax"
def :: String -> Type -> Element
def = Namespace -> String -> Type -> Element
datatype Namespace
ns
csharp :: String -> Type
csharp = Namespace -> String -> Type
typeref Namespace
ns
elements :: [Element]
elements = [Element]
lexicalElements [Element] -> [Element] -> [Element]
forall a. [a] -> [a] -> [a]
++ [Element]
syntacticElements [Element] -> [Element] -> [Element]
forall a. [a] -> [a] -> [a]
++ [Element]
unsafeElements
lexicalElements :: [Element]
lexicalElements = [
String -> Type -> Element
def String
"Identifier" Type
string,
String -> Type -> Element
def String
"Keyword" Type
string,
String -> Type -> Element
def String
"Literal" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"boolean"String -> Type -> FieldType
>: Type
boolean,
String
"integer"String -> Type -> FieldType
>: String -> Type
csharp String
"IntegerLiteral",
String
"real"String -> Type -> FieldType
>: Type
bigfloat,
String
"character"String -> Type -> FieldType
>: Type
string,
String
"string"String -> Type -> FieldType
>: Type
string,
String
"null"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"IntegerLiteral" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"decimal"String -> Type -> FieldType
>: Type
string,
String
"hexadecimal"String -> Type -> FieldType
>: Type
string,
String
"binary"String -> Type -> FieldType
>: Type
bigint]
]
syntacticElements :: [Element]
syntacticElements = [
String -> Type -> Element
def String
"NamespaceName" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"NamespaceOrTypeName",
String -> Type -> Element
def String
"TypeName" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"NamespaceOrTypeName",
String -> Type -> Element
def String
"NamespaceOrTypeName" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"IdentifierNamespaceOrTypeName",
String
"qualified"String -> Type -> FieldType
>: String -> Type
csharp String
"QualifiedNamespaceOrTypeName",
String
"alias"String -> Type -> FieldType
>: String -> Type
csharp String
"QualifiedAliasMember"],
String -> Type -> Element
def String
"IdentifierNamespaceOrTypeName" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"arguments"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeArgumentList"],
String -> Type -> Element
def String
"QualifiedNamespaceOrTypeName" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"namespaceOrType"String -> Type -> FieldType
>: String -> Type
csharp String
"NamespaceOrTypeName",
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"arguments"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeArgumentList"],
String -> Type -> Element
def String
"Type" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"reference"String -> Type -> FieldType
>: String -> Type
csharp String
"ReferenceType",
String
"value"String -> Type -> FieldType
>: String -> Type
csharp String
"ValueType",
String
"param"String -> Type -> FieldType
>: String -> Type
csharp String
"TypeParameter",
String
"pointer"String -> Type -> FieldType
>: String -> Type
csharp String
"PointerType"],
String -> Type -> Element
def String
"ReferenceType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"class"String -> Type -> FieldType
>: String -> Type
csharp String
"ClassType",
String
"interface"String -> Type -> FieldType
>: String -> Type
csharp String
"InterfaceType",
String
"array"String -> Type -> FieldType
>: String -> Type
csharp String
"ArrayType",
String
"delegate"String -> Type -> FieldType
>: String -> Type
csharp String
"DelegateType",
String
"dynamic"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"ClassType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"typeName"String -> Type -> FieldType
>: String -> Type
csharp String
"TypeName",
String
"object"String -> Type -> FieldType
>: Type
unit,
String
"string"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"InterfaceType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeName",
String -> Type -> Element
def String
"ArrayType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"NonArrayType",
String
"rank"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"RankSpecifier"],
String -> Type -> Element
def String
"NonArrayType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"value"String -> Type -> FieldType
>: String -> Type
csharp String
"ValueType",
String
"class"String -> Type -> FieldType
>: String -> Type
csharp String
"ClassType",
String
"interface"String -> Type -> FieldType
>: String -> Type
csharp String
"InterfaceType",
String
"delegate"String -> Type -> FieldType
>: String -> Type
csharp String
"DelegateType",
String
"dynamic"String -> Type -> FieldType
>: Type
unit,
String
"parameter"String -> Type -> FieldType
>: String -> Type
csharp String
"TypeParameter",
String
"pointer"String -> Type -> FieldType
>: String -> Type
csharp String
"PointerType"],
String -> Type -> Element
def String
"RankSpecifier" Type
int32,
String -> Type -> Element
def String
"DelegateType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeName",
String -> Type -> Element
def String
"ValueType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"nonNullable"String -> Type -> FieldType
>: String -> Type
csharp String
"StructOrEnumType",
String
"nullable"String -> Type -> FieldType
>: String -> Type
csharp String
"StructOrEnumType"],
String -> Type -> Element
def String
"StructOrEnumType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"struct"String -> Type -> FieldType
>: String -> Type
csharp String
"StructType",
String
"enum"String -> Type -> FieldType
>: String -> Type
csharp String
"EnumType"],
String -> Type -> Element
def String
"StructType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"typeName"String -> Type -> FieldType
>: String -> Type
csharp String
"TypeName",
String
"simple"String -> Type -> FieldType
>: String -> Type
csharp String
"SimpleType",
String
"tuple"String -> Type -> FieldType
>: String -> Type
csharp String
"TupleType"],
String -> Type -> Element
def String
"SimpleType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"numeric"String -> Type -> FieldType
>: String -> Type
csharp String
"NumericType",
String
"bool"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"NumericType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"integral"String -> Type -> FieldType
>: String -> Type
csharp String
"IntegralType",
String
"floatingPoint"String -> Type -> FieldType
>: String -> Type
csharp String
"FloatingPointType",
String
"decimal"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"IntegralType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"sbyte"String -> Type -> FieldType
>: Type
unit,
String
"byte"String -> Type -> FieldType
>: Type
unit,
String
"short"String -> Type -> FieldType
>: Type
unit,
String
"ushort"String -> Type -> FieldType
>: Type
unit,
String
"int"String -> Type -> FieldType
>: Type
unit,
String
"uint"String -> Type -> FieldType
>: Type
unit,
String
"long"String -> Type -> FieldType
>: Type
unit,
String
"ulong"String -> Type -> FieldType
>: Type
unit,
String
"char"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"FloatingPointType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"float"String -> Type -> FieldType
>: Type
unit,
String
"double"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"TupleType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TupleTypeElement",
String -> Type -> Element
def String
"TupleTypeElement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"identifier"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Identifier"],
String -> Type -> Element
def String
"EnumType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeName",
String -> Type -> Element
def String
"TypeArgumentList" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Type",
String -> Type -> Element
def String
"TypeParameter" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Identifier",
String -> Type -> Element
def String
"UnmanagedType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"value"String -> Type -> FieldType
>: String -> Type
csharp String
"ValueType",
String
"pointer"String -> Type -> FieldType
>: String -> Type
csharp String
"PointerType"],
String -> Type -> Element
def String
"VariableReference" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Expression",
String -> Type -> Element
def String
"Pattern" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"declaration"String -> Type -> FieldType
>: String -> Type
csharp String
"DeclarationPattern",
String
"constant"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"var"String -> Type -> FieldType
>: String -> Type
csharp String
"Designation"],
String -> Type -> Element
def String
"DeclarationPattern" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"designation"String -> Type -> FieldType
>: String -> Type
csharp String
"Designation"],
String -> Type -> Element
def String
"Designation" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Identifier",
String -> Type -> Element
def String
"ArgumentList" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Argument",
String -> Type -> Element
def String
"Argument" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Identifier",
String
"value"String -> Type -> FieldType
>: String -> Type
csharp String
"ArgumentValue"],
String -> Type -> Element
def String
"ArgumentValue" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"in"String -> Type -> FieldType
>: String -> Type
csharp String
"VariableReference",
String
"ref"String -> Type -> FieldType
>: String -> Type
csharp String
"VariableReference",
String
"out"String -> Type -> FieldType
>: String -> Type
csharp String
"VariableReference"],
String -> Type -> Element
def String
"PrimaryExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"noArray"String -> Type -> FieldType
>: String -> Type
csharp String
"PrimaryNoArrayCreationExpression",
String
"array"String -> Type -> FieldType
>: String -> Type
csharp String
"ArrayCreationExpression"],
String -> Type -> Element
def String
"PrimaryNoArrayCreationExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"literal"String -> Type -> FieldType
>: String -> Type
csharp String
"Literal",
String
"interpolatedString"String -> Type -> FieldType
>: String -> Type
csharp String
"InterpolatedStringExpression",
String
"simpleName"String -> Type -> FieldType
>: String -> Type
csharp String
"SimpleName",
String
"parenthesized"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"tuple"String -> Type -> FieldType
>: String -> Type
csharp String
"TupleExpression",
String
"memberAccess"String -> Type -> FieldType
>: String -> Type
csharp String
"MemberAccess",
String
"nullConditionalMemberAccess"String -> Type -> FieldType
>: String -> Type
csharp String
"NullConditionalMemberAccess",
String
"invocation"String -> Type -> FieldType
>: String -> Type
csharp String
"InvocationExpression",
String
"elementAccess"String -> Type -> FieldType
>: String -> Type
csharp String
"ElementAccess",
String
"nullConditionalElementAccess"String -> Type -> FieldType
>: String -> Type
csharp String
"NullConditionalElementAccess",
String
"thisAccess"String -> Type -> FieldType
>: Type
unit,
String
"baseAccess"String -> Type -> FieldType
>: String -> Type
csharp String
"BaseAccess",
String
"postIncrement"String -> Type -> FieldType
>: String -> Type
csharp String
"PrimaryExpression",
String
"postDecrement"String -> Type -> FieldType
>: String -> Type
csharp String
"PrimaryExpression",
String
"objectCreation"String -> Type -> FieldType
>: String -> Type
csharp String
"ObjectCreationExpression",
String
"delegateCreation"String -> Type -> FieldType
>: String -> Type
csharp String
"DelegateCreationExpression",
String
"anonymousObjectCreation"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"MemberDeclaratorList",
String
"typeof"String -> Type -> FieldType
>: String -> Type
csharp String
"TypeofExpression",
String
"sizeof"String -> Type -> FieldType
>: String -> Type
csharp String
"UnmanagedType",
String
"checked"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"unchecked"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"defaultValue"String -> Type -> FieldType
>: String -> Type
csharp String
"DefaultValueExpression",
String
"nameof"String -> Type -> FieldType
>: String -> Type
csharp String
"NamedEntity",
String
"anonymousMethod"String -> Type -> FieldType
>: String -> Type
csharp String
"AnonymousMethodExpression",
String
"pointerMemberAccess"String -> Type -> FieldType
>: String -> Type
csharp String
"PointerMemberAccess",
String
"pointerElementAccess"String -> Type -> FieldType
>: String -> Type
csharp String
"PointerElementAccess",
String
"stackalloc"String -> Type -> FieldType
>: String -> Type
csharp String
"StackallocExpression"],
String -> Type -> Element
def String
"InterpolatedStringExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"regular"String -> Type -> FieldType
>: String -> Type
csharp String
"InterpolatedRegularStringExpression",
String
"verbatim"String -> Type -> FieldType
>: String -> Type
csharp String
"InterpolatedVerbatimStringExpression"],
String -> Type -> Element
def String
"InterpolatedRegularStringExpression" Type
string,
String -> Type -> Element
def String
"RegularInterpolation" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"width"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Expression",
String
"format"String -> Type -> FieldType
>: Type -> Type
optional Type
string],
String -> Type -> Element
def String
"InterpolatedVerbatimStringExpression" Type
string,
String -> Type -> Element
def String
"VerbatimInterpolation" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"width"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ConstantExpression",
String
"format"String -> Type -> FieldType
>: Type -> Type
optional Type
string],
String -> Type -> Element
def String
"SimpleName" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"typeArguments"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeArgumentList"],
String -> Type -> Element
def String
"TupleExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"elements"String -> Type -> FieldType
>: Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TupleElement",
String
"deconstruction"String -> Type -> FieldType
>: String -> Type
csharp String
"DeconstructionTuple"],
String -> Type -> Element
def String
"TupleElement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Identifier",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"DeconstructionTuple" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"DeconstructionElement",
String -> Type -> Element
def String
"DeconstructionElement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"tuple"String -> Type -> FieldType
>: String -> Type
csharp String
"DeconstructionTuple",
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier"],
String -> Type -> Element
def String
"MemberAccess" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"head"String -> Type -> FieldType
>: String -> Type
csharp String
"MemberAccessHead",
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"typeArguments"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeArgumentList"],
String -> Type -> Element
def String
"MemberAccessHead" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"primary"String -> Type -> FieldType
>: String -> Type
csharp String
"PrimaryExpression",
String
"predefined"String -> Type -> FieldType
>: String -> Type
csharp String
"PredefinedType",
String
"qualifiedAlias"String -> Type -> FieldType
>: String -> Type
csharp String
"QualifiedAliasMember"],
String -> Type -> Element
def String
"PredefinedType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"bool", String
"byte", String
"char", String
"decimal", String
"double", String
"float", String
"int", String
"long", String
"object", String
"sbyte", String
"short", String
"string",
String
"uint", String
"ulong", String
"ushort"],
String -> Type -> Element
def String
"NullConditionalMemberAccess" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"PrimaryExpression",
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"typeArguments"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeArgumentList",
String
"dependentAccess"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"DependentAccess"],
String -> Type -> Element
def String
"DependentAccess" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"memberAccess"String -> Type -> FieldType
>: String -> Type
csharp String
"DependentAccessForMember",
String
"elementAccess"String -> Type -> FieldType
>: String -> Type
csharp String
"ArgumentList",
String
"invocation"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ArgumentList"],
String -> Type -> Element
def String
"DependentAccessForMember" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"typeArguments"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeArgumentList"],
String -> Type -> Element
def String
"NullConditionalProjectionInitializer" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"PrimaryExpression",
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"typeArguments"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeArgumentList"],
String -> Type -> Element
def String
"InvocationExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"PrimaryExpression",
String
"arguments"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ArgumentList"],
String -> Type -> Element
def String
"NullConditionalInvocationExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"head"String -> Type -> FieldType
>: String -> Type
csharp String
"NullConditionalInvocationExpressionHead",
String
"arguments"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ArgumentList"],
String -> Type -> Element
def String
"NullConditionalInvocationExpressionHead" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"member"String -> Type -> FieldType
>: String -> Type
csharp String
"NullConditionalMemberAccess",
String
"element"String -> Type -> FieldType
>: String -> Type
csharp String
"NullConditionalElementAccess"],
String -> Type -> Element
def String
"ElementAccess" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"PrimaryNoArrayCreationExpression",
String
"arguments"String -> Type -> FieldType
>: String -> Type
csharp String
"ArgumentList"],
String -> Type -> Element
def String
"NullConditionalElementAccess" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"PrimaryNoArrayCreationExpression",
String
"arguments"String -> Type -> FieldType
>: String -> Type
csharp String
"ArgumentList",
String
"dependentAccess"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"DependentAccess"],
String -> Type -> Element
def String
"BaseAccess" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"BaseAccessWithIdentifier",
String
"arguments"String -> Type -> FieldType
>: String -> Type
csharp String
"ArgumentList"],
String -> Type -> Element
def String
"BaseAccessWithIdentifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"typeArguments"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeArgumentList"],
String -> Type -> Element
def String
"ObjectCreationExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"arguments"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ArgumentList",
String
"initializer"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ObjectOrCollectionInitializer"],
String -> Type -> Element
def String
"ObjectOrCollectionInitializer" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"object"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"MemberInitializer",
String
"collection"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ElementInitializer"],
String -> Type -> Element
def String
"MemberInitializer" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"target"String -> Type -> FieldType
>: String -> Type
csharp String
"InitializerTarget",
String
"value"String -> Type -> FieldType
>: String -> Type
csharp String
"InitializerValue"],
String -> Type -> Element
def String
"InitializerTarget" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"arguments"String -> Type -> FieldType
>: String -> Type
csharp String
"ArgumentList"],
String -> Type -> Element
def String
"InitializerValue" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"objectOrCollection"String -> Type -> FieldType
>: String -> Type
csharp String
"ObjectOrCollectionInitializer"],
String -> Type -> Element
def String
"ElementInitializer" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"single"String -> Type -> FieldType
>: String -> Type
csharp String
"NonAssignmentExpression",
String
"list"String -> Type -> FieldType
>: String -> Type
csharp String
"ExpressionList"],
String -> Type -> Element
def String
"ExpressionList" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Expression",
String -> Type -> Element
def String
"ArrayCreationExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"nonArrayType"String -> Type -> FieldType
>: String -> Type
csharp String
"NonArrayTypeArrayCreationExpression",
String
"arrayType"String -> Type -> FieldType
>: String -> Type
csharp String
"ArrayTypeArrayCreationExpression",
String
"rankSpecifier"String -> Type -> FieldType
>: String -> Type
csharp String
"RankSpecifierArrayCreationExpression"],
String -> Type -> Element
def String
"NonArrayTypeArrayCreationExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"NonArrayType",
String
"expressions"String -> Type -> FieldType
>: String -> Type
csharp String
"ExpressionList",
String
"rankSpecifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"RankSpecifier",
String
"initializer"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ArrayInitializer"],
String -> Type -> Element
def String
"ArrayTypeArrayCreationExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"ArrayType",
String
"initializer"String -> Type -> FieldType
>: String -> Type
csharp String
"ArrayInitializer"],
String -> Type -> Element
def String
"RankSpecifierArrayCreationExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"rankSpecifier"String -> Type -> FieldType
>: String -> Type
csharp String
"RankSpecifier",
String
"initializer"String -> Type -> FieldType
>: String -> Type
csharp String
"ArrayInitializer"],
String -> Type -> Element
def String
"DelegateCreationExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"DelegateType",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"MemberDeclaratorList" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"MemberDeclarator",
String -> Type -> Element
def String
"MemberDeclarator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"SimpleName",
String
"memberAccess"String -> Type -> FieldType
>: String -> Type
csharp String
"MemberAccess",
String
"nullConditionalProjectionInitializer"String -> Type -> FieldType
>: String -> Type
csharp String
"NullConditionalProjectionInitializer",
String
"baseAccess"String -> Type -> FieldType
>: String -> Type
csharp String
"BaseAccess",
String
"assignment"String -> Type -> FieldType
>: String -> Type
csharp String
"AssignmentMemberDeclarator"],
String -> Type -> Element
def String
"AssignmentMemberDeclarator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"TypeofExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"unboundTypeName"String -> Type -> FieldType
>: String -> Type
csharp String
"UnboundTypeName",
String
"void"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"UnboundTypeName" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"UnboundTypeNamePart",
String -> Type -> Element
def String
"UnboundTypeNamePart" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"aliased"String -> Type -> FieldType
>: Type
boolean,
String
"dimension"String -> Type -> FieldType
>: Type -> Type
optional Type
int32],
String -> Type -> Element
def String
"DefaultValueExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"explicitlyTyped"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"defaultLiteral"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"StackallocExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"UnmanagedType",
String
"expression"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ConstantExpression",
String
"initializer"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"NamedEntity" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"target"String -> Type -> FieldType
>: String -> Type
csharp String
"NamedEntityTarget",
String
"parts"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"NamedEntityPart"],
String -> Type -> Element
def String
"NamedEntityPart" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"typeArguments"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeArgumentList"],
String -> Type -> Element
def String
"NamedEntityTarget" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"SimpleName",
String
"this"String -> Type -> FieldType
>: Type
unit,
String
"base"String -> Type -> FieldType
>: Type
unit,
String
"predefinedType"String -> Type -> FieldType
>: String -> Type
csharp String
"PredefinedType",
String
"qualifiedAliasMember"String -> Type -> FieldType
>: String -> Type
csharp String
"QualifiedAliasMember"],
String -> Type -> Element
def String
"UnaryExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"primary"String -> Type -> FieldType
>: String -> Type
csharp String
"PrimaryExpression",
String
"plus"String -> Type -> FieldType
>: String -> Type
csharp String
"UnaryExpression",
String
"minus"String -> Type -> FieldType
>: String -> Type
csharp String
"UnaryExpression",
String
"not"String -> Type -> FieldType
>: String -> Type
csharp String
"UnaryExpression",
String
"bitwiseComplement"String -> Type -> FieldType
>: String -> Type
csharp String
"UnaryExpression",
String
"preIncrement"String -> Type -> FieldType
>: String -> Type
csharp String
"UnaryExpression",
String
"preDecrement"String -> Type -> FieldType
>: String -> Type
csharp String
"UnaryExpression",
String
"cast"String -> Type -> FieldType
>: String -> Type
csharp String
"CastExpression",
String
"await"String -> Type -> FieldType
>: String -> Type
csharp String
"UnaryExpression",
String
"pointerIndirection"String -> Type -> FieldType
>: String -> Type
csharp String
"UnaryExpression",
String
"addressOf"String -> Type -> FieldType
>: String -> Type
csharp String
"UnaryExpression"],
String -> Type -> Element
def String
"CastExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"UnaryExpression"],
String -> Type -> Element
def String
"MultiplicativeExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"simple"String -> Type -> FieldType
>: String -> Type
csharp String
"UnaryExpression",
String
"binary"String -> Type -> FieldType
>: String -> Type
csharp String
"BinaryMultiplicativeExpression"],
String -> Type -> Element
def String
"BinaryMultiplicativeExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"left"String -> Type -> FieldType
>: String -> Type
csharp String
"MultiplicativeExpression",
String
"operator"String -> Type -> FieldType
>: String -> Type
csharp String
"MultiplicativeOperator",
String
"right"String -> Type -> FieldType
>: String -> Type
csharp String
"UnaryExpression"],
String -> Type -> Element
def String
"MultiplicativeOperator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [String
"times", String
"divide", String
"modulo"],
String -> Type -> Element
def String
"AdditiveExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"simple"String -> Type -> FieldType
>: String -> Type
csharp String
"MultiplicativeExpression",
String
"binary"String -> Type -> FieldType
>: String -> Type
csharp String
"BinaryAdditiveExpression"],
String -> Type -> Element
def String
"BinaryAdditiveExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"left"String -> Type -> FieldType
>: String -> Type
csharp String
"AdditiveExpression",
String
"operator"String -> Type -> FieldType
>: String -> Type
csharp String
"AdditiveOperator",
String
"right"String -> Type -> FieldType
>: String -> Type
csharp String
"MultiplicativeExpression"],
String -> Type -> Element
def String
"AdditiveOperator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [String
"plus", String
"minus"],
String -> Type -> Element
def String
"ShiftExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"simple"String -> Type -> FieldType
>: String -> Type
csharp String
"AdditiveExpression",
String
"binary"String -> Type -> FieldType
>: String -> Type
csharp String
"BinaryShiftExpression"],
String -> Type -> Element
def String
"BinaryShiftExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"left"String -> Type -> FieldType
>: String -> Type
csharp String
"ShiftExpression",
String
"operator"String -> Type -> FieldType
>: String -> Type
csharp String
"ShiftOperator",
String
"right"String -> Type -> FieldType
>: String -> Type
csharp String
"AdditiveExpression"],
String -> Type -> Element
def String
"ShiftOperator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [String
"left", String
"right"],
String -> Type -> Element
def String
"RelationalExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"simple"String -> Type -> FieldType
>: String -> Type
csharp String
"ShiftExpression",
String
"binary"String -> Type -> FieldType
>: String -> Type
csharp String
"BinaryRelationalExpression",
String
"isType"String -> Type -> FieldType
>: String -> Type
csharp String
"IsTypeExpression",
String
"isPattern"String -> Type -> FieldType
>: String -> Type
csharp String
"IsPatternExpression",
String
"asType"String -> Type -> FieldType
>: String -> Type
csharp String
"AsTypeExpression"],
String -> Type -> Element
def String
"BinaryRelationalExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"left"String -> Type -> FieldType
>: String -> Type
csharp String
"RelationalExpression",
String
"operator"String -> Type -> FieldType
>: String -> Type
csharp String
"RelationalOperator",
String
"right"String -> Type -> FieldType
>: String -> Type
csharp String
"ShiftExpression"],
String -> Type -> Element
def String
"RelationalOperator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"lessThan", String
"greaterThan", String
"lessThanOrEqual", String
"greaterThanOrEqual"],
String -> Type -> Element
def String
"IsTypeExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"RelationalExpression",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type"],
String -> Type -> Element
def String
"IsPatternExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"RelationalExpression",
String
"pattern"String -> Type -> FieldType
>: String -> Type
csharp String
"Pattern"],
String -> Type -> Element
def String
"AsTypeExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"RelationalExpression",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type"],
String -> Type -> Element
def String
"EqualityExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"simple"String -> Type -> FieldType
>: String -> Type
csharp String
"RelationalExpression",
String
"binary"String -> Type -> FieldType
>: String -> Type
csharp String
"BinaryEqualityExpression"],
String -> Type -> Element
def String
"BinaryEqualityExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"left"String -> Type -> FieldType
>: String -> Type
csharp String
"EqualityExpression",
String
"operator"String -> Type -> FieldType
>: String -> Type
csharp String
"EqualityOperator",
String
"right"String -> Type -> FieldType
>: String -> Type
csharp String
"RelationalExpression"],
String -> Type -> Element
def String
"EqualityOperator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [String
"equal", String
"notEqual"],
String -> Type -> Element
def String
"AndExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"simple"String -> Type -> FieldType
>: String -> Type
csharp String
"EqualityExpression",
String
"binary"String -> Type -> FieldType
>: String -> Type
csharp String
"BinaryAndExpression"],
String -> Type -> Element
def String
"BinaryAndExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"left"String -> Type -> FieldType
>: String -> Type
csharp String
"AndExpression",
String
"right"String -> Type -> FieldType
>: String -> Type
csharp String
"EqualityExpression"],
String -> Type -> Element
def String
"ExclusiveOrExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"simple"String -> Type -> FieldType
>: String -> Type
csharp String
"AndExpression",
String
"binary"String -> Type -> FieldType
>: String -> Type
csharp String
"BinaryExclusiveOrExpression"],
String -> Type -> Element
def String
"BinaryExclusiveOrExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"left"String -> Type -> FieldType
>: String -> Type
csharp String
"ExclusiveOrExpression",
String
"right"String -> Type -> FieldType
>: String -> Type
csharp String
"AndExpression"],
String -> Type -> Element
def String
"InclusiveOrExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"simple"String -> Type -> FieldType
>: String -> Type
csharp String
"ExclusiveOrExpression",
String
"binary"String -> Type -> FieldType
>: String -> Type
csharp String
"BinaryInclusiveOrExpression"],
String -> Type -> Element
def String
"BinaryInclusiveOrExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"left"String -> Type -> FieldType
>: String -> Type
csharp String
"InclusiveOrExpression",
String
"right"String -> Type -> FieldType
>: String -> Type
csharp String
"ExclusiveOrExpression"],
String -> Type -> Element
def String
"ConditionalAndExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"simple"String -> Type -> FieldType
>: String -> Type
csharp String
"InclusiveOrExpression",
String
"binary"String -> Type -> FieldType
>: String -> Type
csharp String
"BinaryConditionalAndExpression"],
String -> Type -> Element
def String
"BinaryConditionalAndExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"left"String -> Type -> FieldType
>: String -> Type
csharp String
"ConditionalAndExpression",
String
"right"String -> Type -> FieldType
>: String -> Type
csharp String
"InclusiveOrExpression"],
String -> Type -> Element
def String
"ConditionalOrExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"simple"String -> Type -> FieldType
>: String -> Type
csharp String
"ConditionalAndExpression",
String
"binary"String -> Type -> FieldType
>: String -> Type
csharp String
"BinaryConditionalOrExpression"],
String -> Type -> Element
def String
"BinaryConditionalOrExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"left"String -> Type -> FieldType
>: String -> Type
csharp String
"ConditionalOrExpression",
String
"right"String -> Type -> FieldType
>: String -> Type
csharp String
"ConditionalAndExpression"],
String -> Type -> Element
def String
"NullCoalescingExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"simple"String -> Type -> FieldType
>: String -> Type
csharp String
"ConditionalOrExpression",
String
"binary"String -> Type -> FieldType
>: String -> Type
csharp String
"BinaryNullCoalescingExpression",
String
"throw"String -> Type -> FieldType
>: String -> Type
csharp String
"NullCoalescingExpression"],
String -> Type -> Element
def String
"BinaryNullCoalescingExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"left"String -> Type -> FieldType
>: String -> Type
csharp String
"ConditionalOrExpression",
String
"right"String -> Type -> FieldType
>: String -> Type
csharp String
"NullCoalescingExpression"],
String -> Type -> Element
def String
"DeclarationExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"LocalVariableType",
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier"],
String -> Type -> Element
def String
"LocalVariableType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"var"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"ConditionalExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"simple"String -> Type -> FieldType
>: String -> Type
csharp String
"NullCoalescingExpression",
String
"simpleConditional"String -> Type -> FieldType
>: String -> Type
csharp String
"SimpleConditionalExpression",
String
"refConditional"String -> Type -> FieldType
>: String -> Type
csharp String
"RefConditionalExpression"],
String -> Type -> Element
def String
"SimpleConditionalExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"condition"String -> Type -> FieldType
>: String -> Type
csharp String
"NullCoalescingExpression",
String
"true"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"false"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"RefConditionalExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"condition"String -> Type -> FieldType
>: String -> Type
csharp String
"NullCoalescingExpression",
String
"true"String -> Type -> FieldType
>: String -> Type
csharp String
"VariableReference",
String
"false"String -> Type -> FieldType
>: String -> Type
csharp String
"VariableReference"],
String -> Type -> Element
def String
"LambdaExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"async"String -> Type -> FieldType
>: Type
boolean,
String
"signature"String -> Type -> FieldType
>: String -> Type
csharp String
"AnonymousFunctionSignature",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"AnonymousFunctionBody"],
String -> Type -> Element
def String
"AnonymousMethodExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"async"String -> Type -> FieldType
>: Type
boolean,
String
"signature"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ExplicitAnonymousFunctionParameter",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"Block"],
String -> Type -> Element
def String
"AnonymousFunctionSignature" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"explicit"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ExplicitAnonymousFunctionParameter",
String
"implicit"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Identifier"],
String -> Type -> Element
def String
"ExplicitAnonymousFunctionParameter" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"modifier"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"AnonymousFunctionParameterModifier",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier"],
String -> Type -> Element
def String
"AnonymousFunctionParameterModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [ String
"ref", String
"out", String
"in" ],
String -> Type -> Element
def String
"AnonymousFunctionBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"nullConditionalInvocation"String -> Type -> FieldType
>: String -> Type
csharp String
"NullConditionalInvocationExpression",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"ref"String -> Type -> FieldType
>: String -> Type
csharp String
"VariableReference",
String
"block"String -> Type -> FieldType
>: String -> Type
csharp String
"Block"],
String -> Type -> Element
def String
"QueryExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"from"String -> Type -> FieldType
>: String -> Type
csharp String
"FromClause",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"QueryBody"],
String -> Type -> Element
def String
"FromClause" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Type",
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"in"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"QueryBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"clauses"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"QueryBodyClause",
String
"selectOrGroup"String -> Type -> FieldType
>: String -> Type
csharp String
"SelectOrGroupClause",
String
"continuation"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"QueryContinuation"],
String -> Type -> Element
def String
"QueryBodyClause" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"from"String -> Type -> FieldType
>: String -> Type
csharp String
"FromClause",
String
"let"String -> Type -> FieldType
>: String -> Type
csharp String
"LetClause",
String
"where"String -> Type -> FieldType
>: String -> Type
csharp String
"BooleanExpression",
String
"join"String -> Type -> FieldType
>: String -> Type
csharp String
"JoinClause",
String
"orderby"String -> Type -> FieldType
>: Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Ordering"],
String -> Type -> Element
def String
"LetClause" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"left"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"right"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"JoinClause" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Type",
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"in"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"on"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"equals"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"into"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Identifier"],
String -> Type -> Element
def String
"Ordering" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"direction"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"OrderingDirection"],
String -> Type -> Element
def String
"OrderingDirection" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [ String
"ascending", String
"descending" ],
String -> Type -> Element
def String
"SelectOrGroupClause" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"select"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"group"String -> Type -> FieldType
>: String -> Type
csharp String
"GroupClause"],
String -> Type -> Element
def String
"GroupClause" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"grouped"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"by"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"QueryContinuation" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"into"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"QueryBody"],
String -> Type -> Element
def String
"Assignment" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"left"String -> Type -> FieldType
>: String -> Type
csharp String
"UnaryExpression",
String
"operator"String -> Type -> FieldType
>: String -> Type
csharp String
"AssignmentOperator",
String
"right"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"AssignmentOperator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"simple"String -> Type -> FieldType
>: Type
boolean,
String
"plusEquals"String -> Type -> FieldType
>: Type
unit,
String
"minusEquals"String -> Type -> FieldType
>: Type
unit,
String
"timesEquals"String -> Type -> FieldType
>: Type
unit,
String
"divideEquals"String -> Type -> FieldType
>: Type
unit,
String
"modEquals"String -> Type -> FieldType
>: Type
unit,
String
"andEquals"String -> Type -> FieldType
>: Type
unit,
String
"orEquals"String -> Type -> FieldType
>: Type
unit,
String
"xorEquals"String -> Type -> FieldType
>: Type
unit,
String
"leftShiftEquals"String -> Type -> FieldType
>: Type
unit,
String
"rightShiftEquals"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"Expression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"nonAssignment"String -> Type -> FieldType
>: String -> Type
csharp String
"NonAssignmentExpression",
String
"assignment"String -> Type -> FieldType
>: String -> Type
csharp String
"Assignment"],
String -> Type -> Element
def String
"NonAssignmentExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"declaration"String -> Type -> FieldType
>: String -> Type
csharp String
"DeclarationExpression",
String
"conditional"String -> Type -> FieldType
>: String -> Type
csharp String
"ConditionalExpression",
String
"lambda"String -> Type -> FieldType
>: String -> Type
csharp String
"LambdaExpression",
String
"query"String -> Type -> FieldType
>: String -> Type
csharp String
"QueryExpression"],
String -> Type -> Element
def String
"ConstantExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Expression",
String -> Type -> Element
def String
"BooleanExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Expression",
String -> Type -> Element
def String
"Statement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"labeled"String -> Type -> FieldType
>: String -> Type
csharp String
"LabeledStatement",
String
"declaration"String -> Type -> FieldType
>: String -> Type
csharp String
"DeclarationStatement",
String
"embedded"String -> Type -> FieldType
>: String -> Type
csharp String
"EmbeddedStatement"],
String -> Type -> Element
def String
"EmbeddedStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"block"String -> Type -> FieldType
>: String -> Type
csharp String
"Block",
String
"empty"String -> Type -> FieldType
>: Type
unit,
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"StatementExpression",
String
"selection"String -> Type -> FieldType
>: String -> Type
csharp String
"SelectionStatement",
String
"iteration"String -> Type -> FieldType
>: String -> Type
csharp String
"IterationStatement",
String
"jump"String -> Type -> FieldType
>: String -> Type
csharp String
"JumpStatement",
String
"try"String -> Type -> FieldType
>: String -> Type
csharp String
"TryStatement",
String
"checked"String -> Type -> FieldType
>: String -> Type
csharp String
"Block",
String
"unchecked"String -> Type -> FieldType
>: String -> Type
csharp String
"Block",
String
"lock"String -> Type -> FieldType
>: String -> Type
csharp String
"LockStatement",
String
"using"String -> Type -> FieldType
>: String -> Type
csharp String
"UsingStatement",
String
"yield"String -> Type -> FieldType
>: String -> Type
csharp String
"YieldStatement",
String
"unsafe"String -> Type -> FieldType
>: String -> Type
csharp String
"Block",
String
"fixed"String -> Type -> FieldType
>: String -> Type
csharp String
"FixedStatement"],
String -> Type -> Element
def String
"Block" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Statement",
String -> Type -> Element
def String
"LabeledStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"label"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"statement"String -> Type -> FieldType
>: String -> Type
csharp String
"Statement"],
String -> Type -> Element
def String
"DeclarationStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"variable"String -> Type -> FieldType
>: String -> Type
csharp String
"LocalVariableDeclaration",
String
"constant"String -> Type -> FieldType
>: String -> Type
csharp String
"LocalConstantDeclaration",
String
"function"String -> Type -> FieldType
>: String -> Type
csharp String
"LocalFunctionDeclaration"],
String -> Type -> Element
def String
"LocalVariableDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"implicitlyTyped"String -> Type -> FieldType
>: String -> Type
csharp String
"ImplicitlyTypedLocalVariableDeclaration",
String
"explicitlyTyped"String -> Type -> FieldType
>: String -> Type
csharp String
"ExplicitlyTypedLocalVariableDeclaration",
String
"ref"String -> Type -> FieldType
>: String -> Type
csharp String
"RefLocalVariableDeclaration"],
String -> Type -> Element
def String
"ImplicitlyTypedLocalVariableDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"var"String -> Type -> FieldType
>: String -> Type
csharp String
"ImplicitlyTypedLocalVariableDeclarator",
String
"refVar"String -> Type -> FieldType
>: String -> Type
csharp String
"RefVarImplicitlyTypedLocalVariableDeclaration"],
String -> Type -> Element
def String
"RefVarImplicitlyTypedLocalVariableDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"refKind"String -> Type -> FieldType
>: String -> Type
csharp String
"RefKind",
String
"declarator"String -> Type -> FieldType
>: String -> Type
csharp String
"RefLocalVariableDeclarator"],
String -> Type -> Element
def String
"ImplicitlyTypedLocalVariableDeclarator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"ExplicitlyTypedLocalVariableDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"declarators"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ExplicitlyTypedLocalVariableDeclarator"],
String -> Type -> Element
def String
"ExplicitlyTypedLocalVariableDeclarator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"initializer"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"LocalVariableInitializer"],
String -> Type -> Element
def String
"LocalVariableInitializer" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"initializer"String -> Type -> FieldType
>: String -> Type
csharp String
"ArrayInitializer"],
String -> Type -> Element
def String
"RefLocalVariableDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"refKind"String -> Type -> FieldType
>: String -> Type
csharp String
"RefKind",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"declarators"String -> Type -> FieldType
>: Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"RefLocalVariableDeclarator"],
String -> Type -> Element
def String
"RefLocalVariableDeclarator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"left"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"right"String -> Type -> FieldType
>: String -> Type
csharp String
"VariableReference"],
String -> Type -> Element
def String
"LocalConstantDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"declarators"String -> Type -> FieldType
>: Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ConstantDeclarator"],
String -> Type -> Element
def String
"ConstantDeclarator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"ConstantExpression"],
String -> Type -> Element
def String
"LocalFunctionDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"standard"String -> Type -> FieldType
>: String -> Type
csharp String
"StandardLocalFunctionDeclaration",
String
"ref"String -> Type -> FieldType
>: String -> Type
csharp String
"RefLocalFunctionDeclaration"],
String -> Type -> Element
def String
"StandardLocalFunctionDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"LocalFunctionModifier",
String
"returnType"String -> Type -> FieldType
>: String -> Type
csharp String
"ReturnType",
String
"header"String -> Type -> FieldType
>: String -> Type
csharp String
"LocalFunctionHeader",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"LocalFunctionBody"],
String -> Type -> Element
def String
"RefLocalFunctionDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"RefLocalFunctionModifier",
String
"refKind"String -> Type -> FieldType
>: String -> Type
csharp String
"RefKind",
String
"returnType"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"header"String -> Type -> FieldType
>: String -> Type
csharp String
"LocalFunctionHeader",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"RefLocalFunctionBody"],
String -> Type -> Element
def String
"LocalFunctionHeader" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"typeParameters"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeParameterList",
String
"parameters"String -> Type -> FieldType
>: String -> Type
csharp String
"FormalParameterList",
String
"constraints"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeParameterConstraintsClause"],
String -> Type -> Element
def String
"LocalFunctionModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"ref"String -> Type -> FieldType
>: String -> Type
csharp String
"RefLocalFunctionModifier",
String
"async"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"RefLocalFunctionModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [String
"static", String
"unsafe"],
String -> Type -> Element
def String
"LocalFunctionBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"block"String -> Type -> FieldType
>: String -> Type
csharp String
"Block",
String
"nullConditionalInvocation"String -> Type -> FieldType
>: String -> Type
csharp String
"NullConditionalInvocationExpression",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"RefLocalFunctionBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"block"String -> Type -> FieldType
>: String -> Type
csharp String
"Block",
String
"ref"String -> Type -> FieldType
>: String -> Type
csharp String
"VariableReference"],
String -> Type -> Element
def String
"StatementExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"nullConditionalInvocation"String -> Type -> FieldType
>: String -> Type
csharp String
"NullConditionalInvocationExpression",
String
"invocation"String -> Type -> FieldType
>: String -> Type
csharp String
"InvocationExpression",
String
"objectCreation"String -> Type -> FieldType
>: String -> Type
csharp String
"ObjectCreationExpression",
String
"assignment"String -> Type -> FieldType
>: String -> Type
csharp String
"Assignment",
String
"postIncrement"String -> Type -> FieldType
>: String -> Type
csharp String
"PrimaryExpression",
String
"postDecrement"String -> Type -> FieldType
>: String -> Type
csharp String
"PrimaryExpression",
String
"preIncrement"String -> Type -> FieldType
>: String -> Type
csharp String
"UnaryExpression",
String
"preDecrement"String -> Type -> FieldType
>: String -> Type
csharp String
"UnaryExpression",
String
"await"String -> Type -> FieldType
>: String -> Type
csharp String
"UnaryExpression"],
String -> Type -> Element
def String
"SelectionStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"if"String -> Type -> FieldType
>: String -> Type
csharp String
"IfStatement",
String
"switch"String -> Type -> FieldType
>: String -> Type
csharp String
"SwitchStatement"],
String -> Type -> Element
def String
"IfStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"condition"String -> Type -> FieldType
>: String -> Type
csharp String
"BooleanExpression",
String
"ifBranch"String -> Type -> FieldType
>: String -> Type
csharp String
"EmbeddedStatement",
String
"elseBranch"String -> Type -> FieldType
>: String -> Type
csharp String
"EmbeddedStatement"],
String -> Type -> Element
def String
"SwitchStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"branches"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"SwitchSection"],
String -> Type -> Element
def String
"SwitchSection" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"labels"String -> Type -> FieldType
>: Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"SwitchLabel",
String
"statements"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Statement"],
String -> Type -> Element
def String
"SwitchLabel" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"branch"String -> Type -> FieldType
>: String -> Type
csharp String
"SwitchBranch",
String
"default"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"SwitchBranch" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"pattern"String -> Type -> FieldType
>: String -> Type
csharp String
"Pattern",
String
"guard"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"IterationStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"while"String -> Type -> FieldType
>: String -> Type
csharp String
"WhileStatement",
String
"do"String -> Type -> FieldType
>: String -> Type
csharp String
"DoStatement",
String
"for"String -> Type -> FieldType
>: String -> Type
csharp String
"ForStatement",
String
"foreach"String -> Type -> FieldType
>: String -> Type
csharp String
"ForeachStatement"],
String -> Type -> Element
def String
"WhileStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"condition"String -> Type -> FieldType
>: String -> Type
csharp String
"BooleanExpression",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"EmbeddedStatement"],
String -> Type -> Element
def String
"DoStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"EmbeddedStatement",
String
"while"String -> Type -> FieldType
>: String -> Type
csharp String
"BooleanExpression"],
String -> Type -> Element
def String
"ForStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"initializer"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ForInitializer",
String
"condition"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"BooleanExpression",
String
"iterator"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"StatementExpressionList",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"EmbeddedStatement"],
String -> Type -> Element
def String
"ForInitializer" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"variable"String -> Type -> FieldType
>: String -> Type
csharp String
"LocalVariableDeclaration",
String
"statements"String -> Type -> FieldType
>: String -> Type
csharp String
"StatementExpressionList"],
String -> Type -> Element
def String
"StatementExpressionList" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"StatementExpression",
String -> Type -> Element
def String
"ForeachStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"kind"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"RefKind",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"LocalVariableType",
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"EmbeddedStatement"],
String -> Type -> Element
def String
"JumpStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"break"String -> Type -> FieldType
>: Type
unit,
String
"continue"String -> Type -> FieldType
>: Type
unit,
String
"goto"String -> Type -> FieldType
>: String -> Type
csharp String
"GotoStatement",
String
"return"String -> Type -> FieldType
>: String -> Type
csharp String
"ReturnStatement",
String
"throw"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"GotoStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"case"String -> Type -> FieldType
>: String -> Type
csharp String
"ConstantExpression",
String
"default"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"ReturnStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"simple"String -> Type -> FieldType
>: Type
unit,
String
"value"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"ref"String -> Type -> FieldType
>: String -> Type
csharp String
"VariableReference"],
String -> Type -> Element
def String
"TryStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"Block",
String
"catches"String -> Type -> FieldType
>: String -> Type
csharp String
"CatchClauses",
String
"finally"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Block"],
String -> Type -> Element
def String
"CatchClauses" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"specific"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"SpecificCatchClause",
String
"general"String -> Type -> FieldType
>: String -> Type
csharp String
"Block"],
String -> Type -> Element
def String
"SpecificCatchClause" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"specifier"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ExceptionSpecifier",
String
"filter"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"BooleanExpression",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"Block"],
String -> Type -> Element
def String
"ExceptionSpecifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"identifier"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Identifier"],
String -> Type -> Element
def String
"LockStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"EmbeddedStatement"],
String -> Type -> Element
def String
"UsingStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"acquisition"String -> Type -> FieldType
>: String -> Type
csharp String
"ResourceAcquisition",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"EmbeddedStatement"],
String -> Type -> Element
def String
"ResourceAcquisition" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"local"String -> Type -> FieldType
>: String -> Type
csharp String
"LocalVariableDeclaration",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"YieldStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"return"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"break"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"CompilationUnit" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"externs"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Identifier",
String
"usings"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"UsingDirective",
String
"attributes"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"GlobalAttributeSection",
String
"members"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"NamespaceMemberDeclaration"],
String -> Type -> Element
def String
"NamespaceDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Identifier",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"NamespaceBody"],
String -> Type -> Element
def String
"NamespaceBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"externs"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Identifier",
String
"usings"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"UsingDirective",
String
"members"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"NamespaceMemberDeclaration"],
String -> Type -> Element
def String
"UsingDirective" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"alias"String -> Type -> FieldType
>: String -> Type
csharp String
"UsingAliasDirective",
String
"namespace"String -> Type -> FieldType
>: String -> Type
csharp String
"NamespaceName",
String
"static"String -> Type -> FieldType
>: String -> Type
csharp String
"TypeName"],
String -> Type -> Element
def String
"UsingAliasDirective" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"alias"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"NamespaceOrTypeName"],
String -> Type -> Element
def String
"NamespaceMemberDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"namespace"String -> Type -> FieldType
>: String -> Type
csharp String
"NamespaceDeclaration",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"TypeDeclaration"],
String -> Type -> Element
def String
"TypeDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"class"String -> Type -> FieldType
>: String -> Type
csharp String
"ClassDeclaration",
String
"struct"String -> Type -> FieldType
>: String -> Type
csharp String
"StructDeclaration",
String
"interface"String -> Type -> FieldType
>: String -> Type
csharp String
"InterfaceDeclaration",
String
"enum"String -> Type -> FieldType
>: String -> Type
csharp String
"EnumDeclaration",
String
"delegate"String -> Type -> FieldType
>: String -> Type
csharp String
"DelegateDeclaration"],
String -> Type -> Element
def String
"QualifiedAliasMember" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"alias"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"member"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"arguments"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeArgumentList"],
String -> Type -> Element
def String
"ClassDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ClassModifier",
String
"partial"String -> Type -> FieldType
>: Type
unit,
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"parameters"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeParameterList",
String
"base"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ClassBase",
String
"constraints"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeParameterConstraintsClause",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"ClassBody"],
String -> Type -> Element
def String
"ClassModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"new",
String
"public",
String
"protected",
String
"internal",
String
"private",
String
"abstract",
String
"sealed",
String
"static",
String
"unsafe"],
String -> Type -> Element
def String
"TypeParameterList" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeParameterPart",
String -> Type -> Element
def String
"TypeParameterPart" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"TypeParameter"],
String -> Type -> Element
def String
"ClassBase" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"class"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ClassType",
String
"interfaces"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"InterfaceType"],
String -> Type -> Element
def String
"TypeParameterConstraintsClause" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"parameter"String -> Type -> FieldType
>: String -> Type
csharp String
"TypeParameter",
String
"constraints"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeParameterConstraints"],
String -> Type -> Element
def String
"TypeParameterConstraints" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"primary"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"PrimaryConstraint",
String
"secondary"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"SecondaryConstraints",
String
"constructor"String -> Type -> FieldType
>: Type
boolean],
String -> Type -> Element
def String
"PrimaryConstraint" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"classType"String -> Type -> FieldType
>: String -> Type
csharp String
"ClassType",
String
"class"String -> Type -> FieldType
>: Type
unit,
String
"struct"String -> Type -> FieldType
>: Type
unit,
String
"unmanaged"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"SecondaryConstraints" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"SecondaryConstraint",
String -> Type -> Element
def String
"SecondaryConstraint" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"interface"String -> Type -> FieldType
>: String -> Type
csharp String
"InterfaceType",
String
"parameter"String -> Type -> FieldType
>: String -> Type
csharp String
"TypeParameter"],
String -> Type -> Element
def String
"ClassBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ClassMemberDeclaration",
String -> Type -> Element
def String
"ClassMemberDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"constant"String -> Type -> FieldType
>: String -> Type
csharp String
"ConstantDeclaration",
String
"field"String -> Type -> FieldType
>: String -> Type
csharp String
"FieldDeclaration",
String
"method"String -> Type -> FieldType
>: String -> Type
csharp String
"MethodDeclaration",
String
"property"String -> Type -> FieldType
>: String -> Type
csharp String
"PropertyDeclaration",
String
"event"String -> Type -> FieldType
>: String -> Type
csharp String
"EventDeclaration",
String
"indexer"String -> Type -> FieldType
>: String -> Type
csharp String
"IndexerDeclaration",
String
"operator"String -> Type -> FieldType
>: String -> Type
csharp String
"OperatorDeclaration",
String
"constructor"String -> Type -> FieldType
>: String -> Type
csharp String
"ConstructorDeclaration",
String
"finalizer"String -> Type -> FieldType
>: String -> Type
csharp String
"FinalizerDeclaration",
String
"staticConstructor"String -> Type -> FieldType
>: String -> Type
csharp String
"StaticConstructorDeclaration",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"TypeDeclaration"],
String -> Type -> Element
def String
"ConstantDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ConstantModifier",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"declarators"String -> Type -> FieldType
>: Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ConstantDeclarator"],
String -> Type -> Element
def String
"ConstantModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"new",
String
"public",
String
"protected",
String
"internal",
String
"private"],
String -> Type -> Element
def String
"FieldDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"FieldModifier",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"declarators"String -> Type -> FieldType
>: Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"VariableDeclarator"],
String -> Type -> Element
def String
"FieldModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"new",
String
"public",
String
"protected",
String
"internal",
String
"private",
String
"static",
String
"readonly",
String
"volatile",
String
"unsafe"],
String -> Type -> Element
def String
"VariableDeclarators" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"VariableDeclarator",
String -> Type -> Element
def String
"VariableDeclarator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"initializer"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"VariableInitializer"],
String -> Type -> Element
def String
"MethodDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"standard"String -> Type -> FieldType
>: String -> Type
csharp String
"StandardMethodDeclaration",
String
"refReturn"String -> Type -> FieldType
>: String -> Type
csharp String
"RefReturnMethodDeclaration"],
String -> Type -> Element
def String
"StandardMethodDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"MethodModifier",
String
"returnType"String -> Type -> FieldType
>: String -> Type
csharp String
"ReturnType",
String
"header"String -> Type -> FieldType
>: String -> Type
csharp String
"MethodHeader",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"MethodBody"],
String -> Type -> Element
def String
"RefReturnMethodDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"RefMethodModifier",
String
"kind"String -> Type -> FieldType
>: String -> Type
csharp String
"RefKind",
String
"returnType"String -> Type -> FieldType
>: String -> Type
csharp String
"ReturnType",
String
"header"String -> Type -> FieldType
>: String -> Type
csharp String
"MethodHeader",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"RefMethodBody"],
String -> Type -> Element
def String
"MethodModifiers" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"MethodModifier",
String
"partial"String -> Type -> FieldType
>: Type
boolean],
String -> Type -> Element
def String
"RefKind" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"ref",
String
"refReadonly"],
String -> Type -> Element
def String
"MethodHeader" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"MemberName",
String
"typeParameters"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeParameterList",
String
"parameters"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"FormalParameterList",
String
"constraints"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeParameterConstraintsClause"],
String -> Type -> Element
def String
"MethodModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"ref"String -> Type -> FieldType
>: String -> Type
csharp String
"RefMethodModifier",
String
"async"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"RefMethodModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"new",
String
"public",
String
"protected",
String
"internal",
String
"private",
String
"static",
String
"virtual",
String
"sealed",
String
"override",
String
"abstract",
String
"extern",
String
"unsafe"],
String -> Type -> Element
def String
"ReturnType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"ref"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"void"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"MemberName" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"interfaceType"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeName",
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier"],
String -> Type -> Element
def String
"MethodBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"block"String -> Type -> FieldType
>: String -> Type
csharp String
"Block",
String
"nullConditionalInvocation"String -> Type -> FieldType
>: String -> Type
csharp String
"NullConditionalInvocationExpression",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"empty"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"RefMethodBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"block"String -> Type -> FieldType
>: String -> Type
csharp String
"Block",
String
"ref"String -> Type -> FieldType
>: String -> Type
csharp String
"VariableReference",
String
"empty"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"FormalParameterList" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"fixed"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"FixedParameter",
String
"array"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ParameterArray"],
String -> Type -> Element
def String
"FixedParameter" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifier"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ParameterModifier",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"defaultArgument"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"ParameterModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"mode"String -> Type -> FieldType
>: String -> Type
csharp String
"ParameterModeModifier",
String
"this"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"ParameterModeModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"ref",
String
"out",
String
"in"],
String -> Type -> Element
def String
"ParameterArray" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"ArrayType",
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier"],
String -> Type -> Element
def String
"PropertyDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"standard"String -> Type -> FieldType
>: String -> Type
csharp String
"StandardPropertyDeclaration",
String
"refReturn"String -> Type -> FieldType
>: String -> Type
csharp String
"RefReturnPropertyDeclaration"],
String -> Type -> Element
def String
"StandardPropertyDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"PropertyModifier",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"MemberName",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"PropertyBody"],
String -> Type -> Element
def String
"RefReturnPropertyDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"PropertyModifier",
String
"refKind"String -> Type -> FieldType
>: String -> Type
csharp String
"RefKind",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"MemberName",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"RefPropertyBody"],
String -> Type -> Element
def String
"PropertyModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"new",
String
"public",
String
"protected",
String
"internal",
String
"private",
String
"static",
String
"virtual",
String
"sealed",
String
"override",
String
"abstract",
String
"extern",
String
"unsafe"],
String -> Type -> Element
def String
"PropertyBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"block"String -> Type -> FieldType
>: String -> Type
csharp String
"BlockPropertyBody",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"BlockPropertyBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"accessors"String -> Type -> FieldType
>: String -> Type
csharp String
"AccessorDeclarations",
String
"initializer"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"VariableInitializer"],
String -> Type -> Element
def String
"RefPropertyBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"block"String -> Type -> FieldType
>: String -> Type
csharp String
"RefGetAccessorDeclaration",
String
"ref"String -> Type -> FieldType
>: String -> Type
csharp String
"VariableReference"],
String -> Type -> Element
def String
"AccessorDeclarations" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"get"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"AccessorDeclaration",
String
"set"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"AccessorDeclaration"],
String -> Type -> Element
def String
"AccessorDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifier"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"AccessorModifier",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"AccessorBody"],
String -> Type -> Element
def String
"AccessorModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"protected",
String
"internal",
String
"private",
String
"protectedInternal",
String
"internalProtected",
String
"protectedPrivate",
String
"privateProtected"],
String -> Type -> Element
def String
"AccessorBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"block"String -> Type -> FieldType
>: String -> Type
csharp String
"Block",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"empty"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"RefGetAccessorDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifier"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"AccessorModifier",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"RefAccessorBody"],
String -> Type -> Element
def String
"RefAccessorBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"block"String -> Type -> FieldType
>: String -> Type
csharp String
"Block",
String
"ref"String -> Type -> FieldType
>: String -> Type
csharp String
"VariableReference",
String
"empty"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"EventDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"standard"String -> Type -> FieldType
>: String -> Type
csharp String
"StandardEventDeclaration",
String
"accessors"String -> Type -> FieldType
>: String -> Type
csharp String
"AccessorsEventDeclaration"],
String -> Type -> Element
def String
"StandardEventDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"EventModifier",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"declarators"String -> Type -> FieldType
>: String -> Type
csharp String
"VariableDeclarators"],
String -> Type -> Element
def String
"AccessorsEventDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"EventModifier",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"MemberName",
String
"accessors"String -> Type -> FieldType
>: String -> Type
csharp String
"EventAccessorDeclarations"],
String -> Type -> Element
def String
"EventModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"new",
String
"public",
String
"protected",
String
"internal",
String
"private",
String
"static",
String
"virtual",
String
"sealed",
String
"override",
String
"abstract",
String
"extern",
String
"unsafe"],
String -> Type -> Element
def String
"EventAccessorDeclarations" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"add"String -> Type -> FieldType
>: String -> Type
csharp String
"AddRemoveAccessorDeclaration",
String
"remove"String -> Type -> FieldType
>: String -> Type
csharp String
"AddRemoveAccessorDeclaration"],
String -> Type -> Element
def String
"AddRemoveAccessorDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"Block"],
String -> Type -> Element
def String
"IndexerDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"standard"String -> Type -> FieldType
>: String -> Type
csharp String
"StandardIndexerDeclaration",
String
"ref"String -> Type -> FieldType
>: String -> Type
csharp String
"RefIndexerDeclaration"],
String -> Type -> Element
def String
"StandardIndexerDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"IndexerModifier",
String
"declarator"String -> Type -> FieldType
>: String -> Type
csharp String
"IndexerDeclarator",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"IndexerBody"],
String -> Type -> Element
def String
"RefIndexerDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"IndexerModifier",
String
"refKind"String -> Type -> FieldType
>: String -> Type
csharp String
"RefKind",
String
"declarator"String -> Type -> FieldType
>: String -> Type
csharp String
"IndexerDeclarator",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"RefIndexerBody"],
String -> Type -> Element
def String
"IndexerModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"new",
String
"public",
String
"protected",
String
"internal",
String
"private",
String
"virtual",
String
"sealed",
String
"override",
String
"abstract",
String
"extern",
String
"unsafe"],
String -> Type -> Element
def String
"IndexerDeclarator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"interface"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"InterfaceType",
String
"parameters"String -> Type -> FieldType
>: String -> Type
csharp String
"FormalParameterList"],
String -> Type -> Element
def String
"IndexerBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"block"String -> Type -> FieldType
>: String -> Type
csharp String
"AccessorDeclarations",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"RefIndexerBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"block"String -> Type -> FieldType
>: String -> Type
csharp String
"RefGetAccessorDeclaration",
String
"ref"String -> Type -> FieldType
>: String -> Type
csharp String
"VariableReference"],
String -> Type -> Element
def String
"OperatorDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"OperatorModifier",
String
"declarator"String -> Type -> FieldType
>: String -> Type
csharp String
"OperatorDeclarator",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"OperatorBody"],
String -> Type -> Element
def String
"OperatorModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"public",
String
"static",
String
"extern",
String
"unsafe"],
String -> Type -> Element
def String
"OperatorDeclarator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"unary"String -> Type -> FieldType
>: String -> Type
csharp String
"UnaryOperatorDeclarator",
String
"binary"String -> Type -> FieldType
>: String -> Type
csharp String
"BinaryOperatorDeclarator",
String
"conversion"String -> Type -> FieldType
>: String -> Type
csharp String
"ConversionOperatorDeclarator"],
String -> Type -> Element
def String
"UnaryOperatorDeclarator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"operator"String -> Type -> FieldType
>: String -> Type
csharp String
"OverloadableUnaryOperator",
String
"parameter"String -> Type -> FieldType
>: String -> Type
csharp String
"FixedParameter"],
String -> Type -> Element
def String
"OverloadableUnaryOperator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"plus",
String
"minus",
String
"not",
String
"complement",
String
"increment",
String
"decrement",
String
"true",
String
"false"],
String -> Type -> Element
def String
"BinaryOperatorDeclarator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"operator"String -> Type -> FieldType
>: String -> Type
csharp String
"OverloadableBinaryOperator",
String
"left"String -> Type -> FieldType
>: String -> Type
csharp String
"FixedParameter",
String
"right"String -> Type -> FieldType
>: String -> Type
csharp String
"FixedParameter"],
String -> Type -> Element
def String
"OverloadableBinaryOperator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"add",
String
"subtract",
String
"multiply",
String
"divide",
String
"modulus",
String
"and",
String
"or",
String
"xor",
String
"leftShift",
String
"rightShift",
String
"equal",
String
"notEqual",
String
"greaterThan",
String
"lessThan",
String
"greaterThanOrEqual",
String
"lessThanOrEqual"],
String -> Type -> Element
def String
"ConversionOperatorDeclarator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"kind"String -> Type -> FieldType
>: String -> Type
csharp String
"ConversionKind",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"parameter"String -> Type -> FieldType
>: String -> Type
csharp String
"FixedParameter"],
String -> Type -> Element
def String
"ConversionKind" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"implicit",
String
"explicit"],
String -> Type -> Element
def String
"OperatorBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"block"String -> Type -> FieldType
>: String -> Type
csharp String
"Block",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"empty"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"ConstructorDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ConstructorModifier",
String
"declarator"String -> Type -> FieldType
>: String -> Type
csharp String
"ConstructorDeclarator",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"ConstructorBody"],
String -> Type -> Element
def String
"ConstructorModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"public",
String
"protected",
String
"internal",
String
"private",
String
"extern",
String
"unsafe"],
String -> Type -> Element
def String
"ConstructorDeclarator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"parameters"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"FormalParameterList",
String
"initializer"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ConstructorInitializer"],
String -> Type -> Element
def String
"ConstructorInitializer" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"base"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ArgumentList",
String
"this"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ArgumentList"],
String -> Type -> Element
def String
"ConstructorBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"block"String -> Type -> FieldType
>: String -> Type
csharp String
"Block",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"empty"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"StaticConstructorDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: String -> Type
csharp String
"StaticConstructorModifiers",
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"StaticConstructorBody"],
String -> Type -> Element
def String
"StaticConstructorModifiers" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"extern"String -> Type -> FieldType
>: Type
boolean,
String
"unsafe"String -> Type -> FieldType
>: Type
boolean],
String -> Type -> Element
def String
"StaticConstructorBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"block"String -> Type -> FieldType
>: String -> Type
csharp String
"Block",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"empty"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"FinalizerDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"extern"String -> Type -> FieldType
>: Type
boolean,
String
"unsafe"String -> Type -> FieldType
>: Type
boolean,
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"body"String -> Type -> FieldType
>: String -> Type
csharp String
"FinalizerBody"],
String -> Type -> Element
def String
"FinalizerBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"block"String -> Type -> FieldType
>: String -> Type
csharp String
"Block",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"empty"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"StructDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"StructModifier",
String
"ref"String -> Type -> FieldType
>: Type
boolean,
String
"partial"String -> Type -> FieldType
>: Type
boolean,
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"parameters"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeParameterList",
String
"interfaces"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"InterfaceType",
String
"constraints"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeParameterConstraintsClause",
String
"body"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"StructMemberDeclaration"],
String -> Type -> Element
def String
"StructModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"new",
String
"public",
String
"protected",
String
"internal",
String
"private",
String
"readonly",
String
"unsafe"],
String -> Type -> Element
def String
"StructMemberDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"constant"String -> Type -> FieldType
>: String -> Type
csharp String
"ConstantDeclaration",
String
"field"String -> Type -> FieldType
>: String -> Type
csharp String
"FieldDeclaration",
String
"method"String -> Type -> FieldType
>: String -> Type
csharp String
"MethodDeclaration",
String
"property"String -> Type -> FieldType
>: String -> Type
csharp String
"PropertyDeclaration",
String
"event"String -> Type -> FieldType
>: String -> Type
csharp String
"EventDeclaration",
String
"indexer"String -> Type -> FieldType
>: String -> Type
csharp String
"IndexerDeclaration",
String
"operator"String -> Type -> FieldType
>: String -> Type
csharp String
"OperatorDeclaration",
String
"constructor"String -> Type -> FieldType
>: String -> Type
csharp String
"ConstructorDeclaration",
String
"staticConstructor"String -> Type -> FieldType
>: String -> Type
csharp String
"StaticConstructorDeclaration",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"TypeDeclaration",
String
"fixedSizeBuffer"String -> Type -> FieldType
>: String -> Type
csharp String
"FixedSizeBufferDeclaration"],
String -> Type -> Element
def String
"ArrayInitializer" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"VariableInitializer",
String -> Type -> Element
def String
"VariableInitializer" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression",
String
"array"String -> Type -> FieldType
>: String -> Type
csharp String
"ArrayInitializer"],
String -> Type -> Element
def String
"InterfaceDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"InterfaceModifier",
String
"partial"String -> Type -> FieldType
>: Type
boolean,
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"parameters"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"VariantTypeParameters",
String
"base"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"InterfaceType",
String
"constraints"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeParameterConstraintsClause",
String
"body"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"InterfaceMemberDeclaration"],
String -> Type -> Element
def String
"InterfaceModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"new",
String
"public",
String
"protected",
String
"internal",
String
"private",
String
"unsafe"],
String -> Type -> Element
def String
"VariantTypeParameters" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"VariantTypeParameter",
String -> Type -> Element
def String
"VariantTypeParameter" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"variance"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"VarianceAnnotation",
String
"parameter"String -> Type -> FieldType
>: String -> Type
csharp String
"TypeParameter"],
String -> Type -> Element
def String
"VarianceAnnotation" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"in",
String
"out"],
String -> Type -> Element
def String
"InterfaceMemberDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"method"String -> Type -> FieldType
>: String -> Type
csharp String
"InterfaceMethodDeclaration",
String
"property"String -> Type -> FieldType
>: String -> Type
csharp String
"InterfacePropertyDeclaration",
String
"event"String -> Type -> FieldType
>: String -> Type
csharp String
"InterfaceEventDeclaration",
String
"indexer"String -> Type -> FieldType
>: String -> Type
csharp String
"InterfaceIndexerDeclaration"],
String -> Type -> Element
def String
"InterfaceMethodDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"new"String -> Type -> FieldType
>: Type
boolean,
String
"returnType"String -> Type -> FieldType
>: String -> Type
csharp String
"ReturnType",
String
"refKind"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"RefKind",
String
"header"String -> Type -> FieldType
>: String -> Type
csharp String
"InterfaceMethodHeader"],
String -> Type -> Element
def String
"InterfaceMethodHeader" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"parameters"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"FormalParameterList",
String
"typeParameters"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeParameterList",
String
"constraints"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeParameterConstraintsClause"],
String -> Type -> Element
def String
"InterfacePropertyDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"new"String -> Type -> FieldType
>: Type
boolean,
String
"refKind"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"RefKind",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"accessors"String -> Type -> FieldType
>: String -> Type
csharp String
"InterfaceAccessors"],
String -> Type -> Element
def String
"InterfaceAccessors" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"get"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"set"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes"],
String -> Type -> Element
def String
"InterfaceEventDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"new"String -> Type -> FieldType
>: Type
boolean,
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier"],
String -> Type -> Element
def String
"InterfaceIndexerDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"new"String -> Type -> FieldType
>: Type
boolean,
String
"refKind"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"RefKind",
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"parameters"String -> Type -> FieldType
>: String -> Type
csharp String
"FormalParameterList",
String
"accessors"String -> Type -> FieldType
>: String -> Type
csharp String
"InterfaceAccessors"],
String -> Type -> Element
def String
"EnumDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"EnumModifier",
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"base"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"EnumBase",
String
"body"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"EnumBody"],
String -> Type -> Element
def String
"EnumBase" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"type"String -> Type -> FieldType
>: String -> Type
csharp String
"IntegralType",
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"TypeName"],
String -> Type -> Element
def String
"EnumBody" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"EnumMemberDeclaration",
String -> Type -> Element
def String
"EnumModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"new",
String
"public",
String
"protected",
String
"internal",
String
"private"],
String -> Type -> Element
def String
"EnumMemberDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"value"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ConstantExpression"],
String -> Type -> Element
def String
"DelegateDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"DelegateModifier",
String
"returnType"String -> Type -> FieldType
>: String -> Type
csharp String
"ReturnType",
String
"refKind"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"RefKind",
String
"refReturnType"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Type",
String
"header"String -> Type -> FieldType
>: String -> Type
csharp String
"DelegateHeader"],
String -> Type -> Element
def String
"DelegateHeader" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"typeParameters"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"VariantTypeParameters",
String
"parameters"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"FormalParameterList",
String
"constraints"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeParameterConstraintsClause"],
String -> Type -> Element
def String
"DelegateModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"new",
String
"public",
String
"protected",
String
"internal",
String
"private",
String
"unsafe"],
String -> Type -> Element
def String
"GlobalAttributeSection" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"target"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"attributes"String -> Type -> FieldType
>: String -> Type
csharp String
"AttributeList"],
String -> Type -> Element
def String
"Attributes" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"AttributeSection",
String -> Type -> Element
def String
"AttributeSection" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"target"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"AttributeTarget",
String
"attributes"String -> Type -> FieldType
>: String -> Type
csharp String
"AttributeList"],
String -> Type -> Element
def String
"AttributeTarget" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"identifier"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"keyword"String -> Type -> FieldType
>: String -> Type
csharp String
"Keyword"],
String -> Type -> Element
def String
"AttributeList" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attribute",
String -> Type -> Element
def String
"Attribute" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"AttributeName",
String
"arguments"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"AttributeArguments"],
String -> Type -> Element
def String
"AttributeName" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeName",
String -> Type -> Element
def String
"AttributeArguments" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"positonal"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"PositionalArgumentList",
String
"named"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"NamedArgumentList"],
String -> Type -> Element
def String
"PositionalArgumentList" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"PositionalArgument",
String -> Type -> Element
def String
"PositionalArgument" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Identifier",
String
"value"String -> Type -> FieldType
>: String -> Type
csharp String
"AttributeArgumentExpression"],
String -> Type -> Element
def String
"NamedArgumentList" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"NamedArgument",
String -> Type -> Element
def String
"NamedArgument" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"value"String -> Type -> FieldType
>: String -> Type
csharp String
"AttributeArgumentExpression"],
String -> Type -> Element
def String
"AttributeArgumentExpression" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"NonAssignmentExpression"]
unsafeElements :: [Element]
unsafeElements = [
String -> Type -> Element
def String
"PointerType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"valueType"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"ValueType",
String
"pointerDepth"String -> Type -> FieldType
>: Type
int32],
String -> Type -> Element
def String
"PointerMemberAccess" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"pointer"String -> Type -> FieldType
>: String -> Type
csharp String
"PrimaryExpression",
String
"member"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"typeArguments"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"TypeArgumentList"],
String -> Type -> Element
def String
"PointerElementAccess" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"pointer"String -> Type -> FieldType
>: String -> Type
csharp String
"PrimaryNoArrayCreationExpression",
String
"index"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"FixedStatement" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"pointerType"String -> Type -> FieldType
>: String -> Type
csharp String
"PointerType",
String
"declarators"String -> Type -> FieldType
>: Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"FixedPointerDeclarator",
String
"statement"String -> Type -> FieldType
>: String -> Type
csharp String
"EmbeddedStatement"],
String -> Type -> Element
def String
"FixedPointerDeclarator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
union [
String
"reference"String -> Type -> FieldType
>: String -> Type
csharp String
"VariableReference",
String
"expression"String -> Type -> FieldType
>: String -> Type
csharp String
"Expression"],
String -> Type -> Element
def String
"FixedSizeBufferDeclaration" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"attributes"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"Attributes",
String
"modifiers"String -> Type -> FieldType
>: Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"FixedSizeBufferModifier",
String
"elementType"String -> Type -> FieldType
>: String -> Type
csharp String
"Type",
String
"declarators"String -> Type -> FieldType
>: Type -> Type
nonemptyList (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
csharp String
"FixedSizeBufferDeclarator"],
String -> Type -> Element
def String
"FixedSizeBufferModifier" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [String] -> Type
enum [
String
"new",
String
"public",
String
"internal",
String
"private",
String
"unsafe"],
String -> Type -> Element
def String
"FixedSizeBufferDeclarator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$ [FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
csharp String
"Identifier",
String
"size"String -> Type -> FieldType
>: String -> Type
csharp String
"ConstantExpression"]]