meowlang/parser/AssignmentOperatorExtensions.cs
2022-02-12 18:30:04 +01:00

34 lines
1.3 KiB
C#

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 => "<<=",
};
}