| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- using System.IO;
- namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
- {
- public class FoldExpression : BaseNode
- {
- private bool _isLeftFold;
- private string _operatorName;
- private BaseNode _expression;
- private BaseNode _initializer;
- public FoldExpression(bool isLeftFold, string operatorName, BaseNode expression, BaseNode initializer) : base(NodeType.FunctionParameter)
- {
- _isLeftFold = isLeftFold;
- _operatorName = operatorName;
- _expression = expression;
- _initializer = initializer;
- }
- public override void PrintLeft(TextWriter writer)
- {
- writer.Write("(");
- if (_isLeftFold && _initializer != null)
- {
- _initializer.Print(writer);
- writer.Write(" ");
- writer.Write(_operatorName);
- writer.Write(" ");
- }
- writer.Write(_isLeftFold ? "... " : " ");
- writer.Write(_operatorName);
- writer.Write(!_isLeftFold ? " ..." : " ");
- _expression.Print(writer);
- if (!_isLeftFold && _initializer != null)
- {
- _initializer.Print(writer);
- writer.Write(" ");
- writer.Write(_operatorName);
- writer.Write(" ");
- }
- writer.Write(")");
- }
- }
- }
|