|
4 | 4 |
|
5 | 5 | public class Assignments { |
6 | 6 | private Utilities tool; |
| 7 | + private ArithmeticParser ap; |
7 | 8 |
|
8 | 9 | public Assignments() { |
9 | 10 | tool = new Utilities(); |
| 11 | + ap = new ArithmeticParser(); |
10 | 12 | } |
11 | 13 |
|
12 | 14 | public boolean isAssignment() { |
13 | | - if (/* isArithmeticOperation() || */isValueAssign() /*|| isDataCollection()*/) { |
| 15 | + if (ap.isArithmeticOperation() || isValueAssign() /* || isDataCollection() */) { |
14 | 16 | return true; |
15 | 17 | } else { |
16 | 18 | return false; |
17 | 19 | } |
18 | 20 | } |
19 | 21 |
|
20 | | - public boolean isArithmeticOperation() { |
21 | | - if (isExpression() || isTerm()) { |
22 | | - return true; |
23 | | - } else { |
24 | | - return false; |
25 | | - } |
26 | | - } |
27 | | - |
28 | | - private boolean isExpression() { |
29 | | - boolean flag = false; |
30 | | - if (isTerm()) { |
31 | | - tool.incrementIndex(); |
32 | | - if (tool.verifyToken(TokenType.SUMA) || tool.verifyToken(TokenType.RESTA)) { |
33 | | - tool.incrementIndex(); |
34 | | - if (isExpression()) { |
35 | | - flag = true; |
36 | | - } else if (tool.getIndex() < tool.getTokenList().size() - 1 |
37 | | - && tool.getTokenList().get(tool.getIndex() + 1).getRow() != tool.getCurrentToken().getRow()) { |
38 | | - flag = true; |
39 | | - } else { |
40 | | - tool.showError("Se esperaba una expresión"); |
41 | | - } |
42 | | - } else { |
43 | | - tool.showError("Se esperaba operador (+, -)"); |
44 | | - } |
45 | | - } else { |
46 | | - tool.showError("Se esperaba termino"); |
47 | | - } |
48 | | - return flag; |
49 | | - } |
50 | | - |
51 | | - private boolean isTerm() { |
52 | | - boolean flag = false; |
53 | | - if (isFactor()) { |
54 | | - tool.incrementIndex(); |
55 | | - if (tool.verifyToken(TokenType.MULTIPLICACION) || tool.verifyToken(TokenType.DIVISION)) { |
56 | | - tool.incrementIndex(); |
57 | | - if (isTerm()) { |
58 | | - flag = true; |
59 | | - } else if (tool.getIndex() < tool.getTokenList().size() - 1 |
60 | | - && tool.getTokenList().get(tool.getIndex() + 1).getRow() != tool.getCurrentToken().getRow()) { |
61 | | - flag = true; |
62 | | - } else { |
63 | | - tool.showError("Se esperaba un termino"); |
64 | | - } |
65 | | - } else { |
66 | | - tool.showError("Se esperaba operador (*, /)"); |
67 | | - } |
68 | | - } |
69 | | - return flag; |
70 | | - } |
71 | | - |
72 | | - private boolean isFactor() { |
73 | | - boolean flag = false; |
74 | | - if (tool.verifyToken(TokenType.ENTERO) || tool.verifyToken(TokenType.DECIMAL)) { |
75 | | - flag = true; |
76 | | - } else if (tool.verifyToken(TokenType.IDENTIFICADOR)) { |
77 | | - flag = true; |
78 | | - } else if (tool.verifyToken(TokenType.PARENTESIS_APERTURA)) { |
79 | | - tool.incrementIndex(); |
80 | | - if (isExpression()) { |
81 | | - if (tool.verifyToken(TokenType.PARENTESIS_CIERRE)) { |
82 | | - tool.incrementIndex(); |
83 | | - flag = true; |
84 | | - } else { |
85 | | - tool.showError("Se esperaba ')"); |
86 | | - } |
87 | | - } |
88 | | - } else { |
89 | | - tool.showError("Se esperaba un factor"); |
90 | | - } |
91 | | - return flag; |
92 | | - } |
93 | | - |
94 | 22 | public boolean isValueAssign() { |
95 | 23 | boolean flag = false; |
96 | 24 | if (tool.verifyToken(TokenType.IDENTIFICADOR)) { |
|
0 commit comments