12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- using System;
- namespace Jint.Parser.Ast
- {
- public enum BinaryOperator
- {
- Plus,
- Minus,
- Times,
- Divide,
- Modulo,
- Equal,
- NotEqual,
- Greater,
- GreaterOrEqual,
- Less,
- LessOrEqual,
- StrictlyEqual,
- StricltyNotEqual,
- BitwiseAnd,
- BitwiseOr,
- BitwiseXOr,
- LeftShift,
- RightShift,
- UnsignedRightShift,
- InstanceOf,
- In,
- }
- public class BinaryExpression : Expression
- {
- public BinaryOperator Operator;
- public Expression Left;
- public Expression Right;
- public static BinaryOperator ParseBinaryOperator(string op)
- {
- switch (op)
- {
- case "+":
- return BinaryOperator.Plus;
- case "-":
- return BinaryOperator.Minus;
- case "*":
- return BinaryOperator.Times;
- case "/":
- return BinaryOperator.Divide;
- case "%":
- return BinaryOperator.Modulo;
- case "==":
- return BinaryOperator.Equal;
- case "!=":
- return BinaryOperator.NotEqual;
- case ">":
- return BinaryOperator.Greater;
- case ">=":
- return BinaryOperator.GreaterOrEqual;
- case "<":
- return BinaryOperator.Less;
- case "<=":
- return BinaryOperator.LessOrEqual;
- case "===":
- return BinaryOperator.StrictlyEqual;
- case "!==":
- return BinaryOperator.StricltyNotEqual;
- case "&":
- return BinaryOperator.BitwiseAnd;
- case "|":
- return BinaryOperator.BitwiseOr;
- case "^":
- return BinaryOperator.BitwiseXOr;
- case "<<":
- return BinaryOperator.LeftShift;
- case ">>":
- return BinaryOperator.RightShift;
- case ">>>":
- return BinaryOperator.UnsignedRightShift;
- case "instanceof":
- return BinaryOperator.InstanceOf;
- case "in":
- return BinaryOperator.In;
- default:
- throw new ArgumentOutOfRangeException("Invalid binary operator: " + op);
- }
- }
- }
- }
|