From 18d38bc32d2a6e459ce1897e553b21aed11967fe Mon Sep 17 00:00:00 2001 From: winscripter <142818255+winscripter@users.noreply.github.com> Date: Thu, 25 Jul 2024 14:29:51 +0400 Subject: [PATCH] Update XML Documentation File --- ILSourceParser.xml | 550 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 545 insertions(+), 5 deletions(-) diff --git a/ILSourceParser.xml b/ILSourceParser.xml index 5c76dbe..ee9bcd3 100644 --- a/ILSourceParser.xml +++ b/ILSourceParser.xml @@ -1638,24 +1638,81 @@ + + + Represents an IL .param directive. This directive is used to apply custom + attributes to method parameters. + + + + + The one-based index of the parameter where attributes should be applied. If the + value of this property is 0, custom attributes will be applied on the method + return type instead. + + + + + Descendant custom attributes of this .param directive. + + + + + Represents information about a parameter modifier in IL code. For example, + [in], [out], or [opt]. + + + + + Represents the type of parameter modifier as . + + + + + Represents declaration of a method parameter in IL code. + + + + + Specifies parameter modifiers of this parameter. For example, [out], [in], + and [opt]. + + + + + Specifies the marshalling of this parameter, if specified (e.g. the IL marshal() + function). + + + + + Specifies the type of this parameter, such as string or int32. + + + + + Specifies the name of this parameter. In IL code, parameter names are optional, so + this could have a value of null. + + Represents the IL .permissionset directive syntax. @@ -1684,24 +1741,249 @@ The byte array that contains the bytes of the permission set. + + + Represents the syntax node that specifies the entry point passed to the pinvokeimpl() + function. Used by the syntax node . + + + + + The name of the entry point. + + + + + Represents an IL pinvokeimpl() function, typically declared in + method flags before the method return type and name. + + + + + Represents the DLL name. In this example: + + + pinvokeimpl("User32.dll" as "SampleEntryPoint" nomangle lasterr unicode cdecl) + + + .. the value of this property will be "User32.dll". + + + + + Represents the entry point of the DLL. In this example: + + + pinvokeimpl("User32.dll" as "SampleEntryPoint" nomangle lasterr unicode cdecl) + + + .. the value of this property will be "SampleEntryPoint". + + + + + Represents the character set. In this example: + + + pinvokeimpl("User32.dll" as "SampleEntryPoint" nomangle lasterr unicode cdecl) + + + .. the value of this property will be due to the unicode flag specified in the pinvokeimpl function. + + + Remark: If the character set is not specified, the value of this property + defaults to . + + + + + Represents the character set as a string. In this example: + + + pinvokeimpl("User32.dll" as "SampleEntryPoint" nomangle lasterr unicode cdecl) + + + .. the value of this property will be "unicode". + + + Remark: To get based + on the character set passed to the pinvokeimpl function, use the + property instead. + + + + + Specifies whether the last error should be set. In this example: + + + pinvokeimpl("User32.dll" as "SampleEntryPoint" nomangle lasterr unicode cdecl) + + + .. the value of this property will be . If we omit the + lasterr flag in the pinvokeimpl function, the value of this property will + be . + + + + + Specifies the calling convention. In this example: + + + pinvokeimpl("User32.dll" as "SampleEntryPoint" nomangle lasterr unicode cdecl) + + + .. the value of this property will be because + of the cdecl flag in the pinvokeimpl() function. + + + + + Represents the calling convention as a string. In this example: + + + pinvokeimpl("User32.dll" as "SampleEntryPoint" nomangle lasterr unicode cdecl) + + + .. the value of this property will be "cdecl". + + + Remark: To get based + on the calling convention passed to the pinvokeimpl function, use the + property instead. + + + + + Specifies whether exact spelling is specified. In this example: + + + pinvokeimpl("User32.dll" as "SampleEntryPoint" nomangle lasterr unicode cdecl) + + + .. the value of this property will be because of the nomangle + flag. If we omit this flag, the value of this property will be . + + + + + Represents a syntax node for predefined types. Those include: + + int8 + int16 + int32 + int64 + uint8 + uint16 + uint32 + uint64 + float32 + float64 + + This syntax node also specifies values passed to these types as functions. For + example, int32(48) is perfectly valid in IL code and such will result in + , which will also specify 48 passed to the + int32 function. + + + + + Represents the name of the type as a string. In this example: int32(48), + the value of this property will be 48 as a string. + + + + + Represents the predefined type as . + + + + + Represents the value passed to the function of the predefined type. For example, + int32(48) is valid in IL code, and parsing that will result in this property + having a value of 48. However, if it is just the int32 keyword and not a function, + this property will have a value of . + + + + + Represents a declaration of a property, e.g. the IL .property directive. + + + + + The type of the property, for example, a string or int32. + + + + + Is this property static? For example, has the instance keyword: + + // vvvvvvvv <--------- HERE + .property instance string MyProperty() + { + } + + + + + + Represents the name of the property. + + + + + Specifies the information about the .get accessor defined in this property. If + this accessor is omitted, the value of this property is + . + + + + + Specifies the information about the .set accessor defined in this property. If + this accessor is omitted, the value of this property is + . + + + + + Represents custom attributes defined in this property. In this example: + + + .property instance string MyProperty() + { + .custom instance void [MyAssembly]MyNamespace.MyAttribute::.ctor() = ( + 01 00 00 00 + ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.NullableAttribute::.ctor() = ( + 01 00 00 00 + ) + .get instance string get_MyProperty() + .set instance void set_MyProperty(string) + } + + + .. the first two .custom directives inside the property will be defined + in this property. + + Represents the IL .removeon accessor, similar to C#'s event remove accessor. @@ -1726,30 +2008,163 @@ the implementation of the accessor. + + + Represents an IL .size directive. + + + + + The value of the directive as a string, which specifies the size passed to the directive. + + + + + Represents an IL .stackreserve directive. + + + + + The number that specifies the stack reserve. + + + + + Represents an IL string literal, such as "this!\n". + + + + + Represents the value of the string literal, including unescaped escape characters. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents either the string keyword or the string literal. + + + + + Represents the value of the string literal, if specified. + + + + + Is the string type just the string keyword and not the string literal? + + + + + Represents an IL .subsystem directive. + + + + + A number that specifies the subsystem. + + + + + Represents parameter of the IL switch instruction. + + + + + A collection of labels to jump to based on the last number from stack. + + + + + Represents a base class for each syntax node defined. + + + + + Represents leading trivia - e.g. syntax trivias appearing before the + syntax node. + + + + + Represents trailing trivia - e.g. syntax trivias appearing after the + syntax node. + + Represents an IL .try block. @@ -1760,15 +2175,31 @@ Descendant nodes of the block. - - + + + Represents an IL .try followed by finally block. + - - + + + The information about the .try block. + + + + + The information about the finally block. + + + + + Represents a base class for most types. + - This node is associated with the following kinds: + Represents an IL directive that represents the reference to an existing type, + such as [System.Runtime]System.Console. This node is associated with the + following types: @@ -1779,24 +2210,108 @@ + + + Represents a base node for every other syntax node that specifies a type. This syntax + node is associated with the following nodes: + + + + + + + + + + + + + + + + + + + + + + Represents invocation of an IL unmanaged function pointer. + + + + + The return type of the unmanaged function pointer. + + + + + Parameters passed to the unmanaged function pointer. + + + + + The calling convention of the unmanaged function pointer being invoked. + + + + + Represents an IL .ver directive. This directive specifies the version of + the assembly, similar to . + + + + + Specifies the major version. In this example: .ver 1 : 2 : 3 : 4, 1 is the major version. + + + + + Specifies the minor version. In this example: .ver 1 : 2 : 3 : 4, 2 is the minor version. + + + + + Specifies the build version. In this example: .ver 1 : 2 : 3 : 4, 3 is the build version. + + + + + Specifies the revision. In this example: .ver 1 : 2 : 3 : 4, 4 is the revision. + + + + + Represents an IL .vtentry directive. + + + + + The entry number. In this example: .vtentry 1 : 2, 1 is the entry number. + + + + + The slot number. In this example: .vtentry 1 : 2, 2 is the slot number. + + Represents a single extension method that provides the method @@ -1822,6 +2337,18 @@ The input type of marshal to process. An output marshal. + + + Represents a single extension that provides the method to . + + + + + Converts values of the .ver directive into . + + The information about the .ver IL directive. + A new instance of . + A bunch of extension methods that retrieve names of assemblies from @@ -1938,6 +2465,19 @@ The input boolean literal. A boolean from the boolean literal. + + + Represents an extension that provides the method to the + syntax node . + + + + + Returns the full name of the given type reference. + + The syntax node that contains the type reference. + Full name of the type being referenced. + A bunch of extension methods that return a byte array or enumerable