-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcheck.cpp
44 lines (37 loc) · 967 Bytes
/
check.cpp
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
#include "check.h"
bool check::isNumber(string number) {
return (number[0] > 47 && number[0] < 58);
}
bool check::isNumber(char number) {
return number > 47 && number < 58;
}
bool check::isOpen(string &token) {
return token == "(";
}
bool check::isClose(string &token) {
return token == ")";
}
int check::getPrecedence(string &token) {
if (token == "+" || token == "-") {
return 1;
}
if (token == "*" || token == "/") {
return 2;
}
if (token == "^" || token == "m") {
return 3;
}
if (token == "(") {
return 0;
}
return 0;
}
bool check::getAssociativity(string &token) {
return token == "^" || token == "m";
}
void check::ifUnary(int index, string &line) {
if (line[index] == '-' && (index == 0 || ((line[index - 1] <= 47 ||
line[index - 1] >= 58) && line[index - 1] != ')') || line[index + 1] >= 58)) {
line[index] = 'm';
}
}