namespace meowlang.parser; public static class AssignmentOperatorExtensions { public static AssignmentOperator ToAssignmentOperator(this string str) => str switch { "=" => AssignmentOperator.Assign, "+=" => AssignmentOperator.PlusAssign, "-=" => AssignmentOperator.MinusAssign, "*=" => AssignmentOperator.MultAssign, "/=" => AssignmentOperator.DivAssign, "%=" => AssignmentOperator.ModAssign, "|=" => AssignmentOperator.BitwiseOrAssign, "&=" => AssignmentOperator.BitwiseAndAssign, "^=" => AssignmentOperator.BitwiseXorAssign, ">>=" => AssignmentOperator.ShiftRightAssign, "<<=" => AssignmentOperator.ShiftLeftAssign, }; public static string ToString(this AssignmentOperator op) => op switch { AssignmentOperator.Assign => "=", AssignmentOperator.PlusAssign => "+=", AssignmentOperator.MinusAssign => "-=", AssignmentOperator.MultAssign => "*=", AssignmentOperator.DivAssign => "/=", AssignmentOperator.ModAssign => "%=", AssignmentOperator.BitwiseOrAssign => "|=", AssignmentOperator.BitwiseAndAssign => "&=", AssignmentOperator.BitwiseXorAssign => "^=", AssignmentOperator.ShiftRightAssign => ">>=", AssignmentOperator.ShiftLeftAssign => "<<=", }; }