-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEvaluator.java
48 lines (39 loc) · 1.11 KB
/
Evaluator.java
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
package app;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class Evaluator {
/**
* @param args
*/
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.print("\nEnter the expression, or hit return to quit => ");
String expr = sc.nextLine();
if (expr.length() == 0) {
break;
}
ArrayList<Variable> vars = new ArrayList<>();
ArrayList<Array> arrays = new ArrayList<>();
Expression.makeVariableLists(expr, vars, arrays);
System.out.print("Enter variable values file name, or hit return if no variables => ");
String fname = sc.nextLine();
if (fname.length() != 0) {
Scanner scfile = new Scanner(new File(fname));
Expression.loadVariableValues(scfile, vars, arrays);
}
for(Variable elements:vars)
{
System.out.println(elements);
}
for(Array elements:arrays)
{
System.out.println(elements);
}
System.out.println("Value of expression = " + Expression.evaluate(expr,vars,arrays));
}
sc.close();
}
}