-
Notifications
You must be signed in to change notification settings - Fork 0
/
Statement.cs
71 lines (67 loc) · 1.26 KB
/
Statement.cs
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CS252Project
{
public abstract class Statement
{
}
public class DVar : Statement
{
public string Var;
public Expr Expr;
}
public class Print : Statement
{
public Expr Expr;
}
public class Assign : Statement
{
public string Var;
public Expr Expr;
}
public class Forlp : Statement
{
public string Var;
public Expr From;
public Expr To;
public Statement stmt;
}
public class ReadInt : Statement
{
public string Ident;
}
public class Sequence : Statement
{
public Statement stmt1;
public Statement stmt2;
}
public abstract class Expr { }
public class Stringvalue : Expr
{
public string value;
}
public class IntFloatValue : Expr
{
public float value;
}
public class Variable : Expr
{
public string Ident;
}
public class BinExpr : Expr
{
public Expr left;
public Expr right;
public BinOp op;
}
[Flags]
public enum BinOp
{
Add = 1,
Sub = 2,
Mult = 4,
Div = 8,
}
}