-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMathExpressions.cs
More file actions
27 lines (21 loc) · 803 Bytes
/
MathExpressions.cs
File metadata and controls
27 lines (21 loc) · 803 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
namespace MathExpressionParser;
public interface Expression;
public class BinaryExpr(Expression left, TokenType op, Expression right) : Expression {
public readonly Expression Left = left;
public readonly TokenType Op = op;
public readonly Expression Right = right;
}
public class UnaryExpr(Expression subject, TokenType op) : Expression {
public readonly Expression Subject = subject;
public readonly TokenType Op = op;
}
public class NumberExpr(decimal number) : Expression {
public readonly decimal Number = number;
}
public class VariableExpr(string name) : Expression {
public readonly string Name = name;
}
public class CallExpr(string name, Expression[] args) : Expression {
public readonly string Name = name;
public readonly Expression[] Args = args;
}