forked from michellegao715/SimpleJava-Compiler
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathASTOperatorExpression.java
More file actions
107 lines (89 loc) · 2.6 KB
/
ASTOperatorExpression.java
File metadata and controls
107 lines (89 loc) · 2.6 KB
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
class ASTOperatorExpression extends ASTExpression {
public static final int BAD_OPERATOR = 0;
public static final int PLUS = 1;
public static final int MINUS = 2;
public static final int MULTIPLY = 3;
public static final int DIVIDE = 4;
public static final int AND = 5;
public static final int OR = 6;
public static final int EQUAL = 7;
public static final int NOT_EQUAL = 8;
public static final int LESS_THAN = 9;
public static final int LESS_THAN_EQUAL = 10;
public static final int GREATER_THAN = 11;
public static final int GREATER_THAN_EQUAL = 12;
public static final String [] names = {"BAD_OPERATOR", "+","-","*","/","&&","||",
"==","!=","<","<=",">",">="};
public ASTOperatorExpression(ASTExpression left,
ASTExpression right,
int operator, int line) {
left_ = left;
right_ = right;
operator_ = operator;
line_ = line;
}
public ASTOperatorExpression(ASTExpression left,
ASTExpression right,
String operator, int line) {
left_ = left;
right_ = right;
line_ = line;
if (operator.compareTo("+") == 0)
operator_ = PLUS;
else if (operator.compareTo("-") == 0)
operator_ = MINUS;
else if (operator.compareTo("*") == 0)
operator_ = MULTIPLY;
else if (operator.compareTo("/") == 0)
operator_ = DIVIDE;
else if (operator.toUpperCase().compareTo("&&") == 0)
operator_ = AND;
else if (operator.toUpperCase().compareTo("||") == 0)
operator_ = OR;
else if (operator.compareTo("==") == 0)
operator_ = EQUAL;
else if (operator.compareTo("<") == 0)
operator_ = LESS_THAN;
else if (operator.compareTo("<=") == 0)
operator_ = LESS_THAN_EQUAL;
else if (operator.compareTo(">") == 0)
operator_ = GREATER_THAN;
else if (operator.compareTo(">=") == 0)
operator_ = GREATER_THAN_EQUAL;
else if (operator.compareTo("!=") == 0)
operator_ = NOT_EQUAL;
else
operator_ = BAD_OPERATOR;
}
public ASTExpression left() {
return left_;
}
public int line() {
return line_;
}
public void setlinenun(int line) {
line_ = line;
}
public ASTExpression right() {
return right_;
}
public int operator() {
return operator_;
}
public void setleft(ASTExpression left) {
left_ = left;
}
public void setright(ASTExpression right) {
right_ = right;
}
public void setoperator(int operator) {
operator_ = operator;
}
public Object Accept(ASTVisitor V) {
return V.VisitOperatorExpression(this);
}
ASTExpression left_;
ASTExpression right_;
int operator_;
private int line_;
}