public override bool WriteNode(IndentedTextWriter writer, BaseNode node, WriteNodeFunc defaultWriteNodeFunc, ILogger logger) { // pygamehack does not need padding variables if (node.Name.StartsWith("pad")) { return(true); } // Name and type hint prefix writer.Write(node.Name); writer.Write(": "); // Basic type var simpleTypeNode = GetSimpleType(node); if (simpleTypeNode != null) { writer.Write(simpleTypeNode); } // Class Instance else if (node is ClassInstanceNode classInstanceNode) { writer.Write(classInstanceNode.InnerNode.Name); } // Pointer else if (node is PointerNode pointerNode) { WritePointer(writer, pointerNode); } // Offset writer.Write(" = 0x"); writer.Write($"{node.Offset:X}"); writer.WriteLine(); return(true); }
/// <summary> /// Outputs the C++ code for the node to the <see cref="TextWriter"/> instance. /// </summary> /// <param name="writer">The writer to output to.</param> /// <param name="node">The node to output.</param> /// <param name="defaultWriteNodeFunc">The default implementation of <see cref="CppCodeGenerator.WriteNode"/>.</param> /// <param name="logger">The logger.</param> /// <returns>True if the code generator has processed the node, false otherwise. If this method returns false, the default implementation is used.</returns> public virtual bool WriteNode(IndentedTextWriter writer, BaseNode node, WriteNodeFunc defaultWriteNodeFunc, ILogger logger) { return(false); }