34 lines
1.3 KiB
C#
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 => "<<=",
|
||
|
};
|
||
|
}
|