public override void WriteTo(ITextOutput output, ILAstWritingOptions options) { if (options.UseFieldSugar) { if (this.MatchStFld(out var target, out var field, out var value)) { ILRange.WriteTo(output, options); output.Write("stfld "); Disassembler.DisassemblerHelpers.WriteOperand(output, field); output.Write('('); target.WriteTo(output, options); output.Write(", "); value.WriteTo(output, options); output.Write(')'); return; } else if (this.MatchStsFld(out field, out value)) { ILRange.WriteTo(output, options); output.Write("stsfld "); Disassembler.DisassemblerHelpers.WriteOperand(output, field); output.Write('('); value.WriteTo(output, options); output.Write(')'); return; } } OriginalWriteTo(output, options); }
public override void WriteTo(ITextOutput output, ILAstWritingOptions options) { if (options.UseFieldSugar) { if (this.MatchStFld(out var target, out var field, out var value)) { WriteILRange(output, options); output.Write("stfld "); field.WriteTo(output); output.Write('('); target.WriteTo(output, options); output.Write(", "); value.WriteTo(output, options); output.Write(')'); return; } else if (this.MatchStsFld(out field, out value)) { WriteILRange(output, options); output.Write("stsfld "); field.WriteTo(output); output.Write('('); value.WriteTo(output, options); output.Write(')'); return; } } OriginalWriteTo(output, options); }
public override void WriteTo(ITextOutput output, ILAstWritingOptions options) { output.Write(OpCode); if (!string.IsNullOrEmpty(Comment)) { output.Write(" // " + Comment); } }
public override void WriteTo(ITextOutput output, ILAstWritingOptions options) { output.Write(OpCode); if (!string.IsNullOrEmpty(Message)) { output.Write("(\""); output.Write(Message); output.Write("\")"); } }
public override void WriteTo(ITextOutput output, ILAstWritingOptions options) { WriteILRange(output, options); output.Write(OpCode); if (Kind != NopKind.Normal) { output.Write("." + Kind.ToString().ToLowerInvariant()); } if (!string.IsNullOrEmpty(Comment)) { output.Write(" // " + Comment); } }
public override void WriteTo(ITextOutput output, ILAstWritingOptions options) { output.Write("using ("); Variable.WriteTo(output); output.Write(" = "); ResourceExpression.WriteTo(output, options); output.WriteLine(") {"); output.Indent(); Body.WriteTo(output, options); output.Unindent(); output.WriteLine(); output.Write("}"); }
public override void WriteTo(ITextOutput output, ILAstWritingOptions options) { output.Write("string.to.int ("); Argument.WriteTo(output, options); output.Write(", { "); for (int i = 0; i < Map.Length; i++) { if (i > 0) { output.Write(", "); } output.Write($"[{i}] = \"{Map[i]}\""); } output.Write(" })"); }
public override void WriteTo(ITextOutput output, ILAstWritingOptions options) { if (options.UseFieldSugar) { if (this.MatchLdFld(out var target, out var field)) { output.Write("ldfld "); Disassembler.DisassemblerHelpers.WriteOperand(output, field); output.Write('('); target.WriteTo(output, options); output.Write(')'); return; } else if (this.MatchLdsFld(out field)) { output.Write("ldsfld "); Disassembler.DisassemblerHelpers.WriteOperand(output, field); return; } } OriginalWriteTo(output, options); }
public override void WriteTo(ITextOutput output, ILAstWritingOptions options) { WriteILRange(output, options); output.Write("using"); if (IsAsync) { output.Write(".async"); } if (IsRefStruct) { output.Write(".ref"); } output.Write(" ("); Variable.WriteTo(output); output.Write(" = "); ResourceExpression.WriteTo(output, options); output.WriteLine(") {"); output.Indent(); Body.WriteTo(output, options); output.Unindent(); output.WriteLine(); output.Write("}"); }
public override void WriteTo(ITextOutput output, ILAstWritingOptions options) { if (options.UseFieldSugar) { if (this.MatchLdFld(out var target, out var field)) { ILRange.WriteTo(output, options); output.Write("ldfld "); field.WriteTo(output); output.Write('('); target.WriteTo(output, options); output.Write(')'); return; } else if (this.MatchLdsFld(out field)) { ILRange.WriteTo(output, options); output.Write("ldsfld "); field.WriteTo(output); return; } } OriginalWriteTo(output, options); }
public override void WriteTo(ITextOutput output, ILAstWritingOptions options) { WriteILRange(output, options); output.Write(OpCode); // the non-custom WriteTo would add useless parentheses }
public static void WriteIlFunctionTo(ILFunction function, ITextOutput output, ILAstWritingOptions options, Func <ILInstruction, string> callback) { //output.Write(function.OpCode); output.Write(originalOpCodeNames[(int)function.OpCode]); if (function.Method != null) { output.Write(' '); //function.Method.WriteTo(output); if (function.Method is IMethod method && method.IsConstructor) { output.WriteReference(function.Method, method.DeclaringType?.Name + "." + method.Name); } else { output.WriteReference(function.Method, function.Method.Name); } }