Java Reference
In-Depth Information
1
import java.util.Stack;
2
import java.util.StringTokenizer;
3
import java.io.IOException;
4
import java.io.BufferedReader;
5
import java.io.InputStreamReader;
6
7
// Evaluator class interface: evaluate infix expressions.
8
//
9
// CONSTRUCTION: with a String
10
//
11
// ******************PUBLIC OPERATIONS***********************
12
// long getValue( ) --> Return value of infix expression
13
// ******************ERRORS**********************************
14
// Some error checking is performed
15
16
public class Evaluator
17
{
18
private static class Precendence
19
{ /* Figure 11.20 */ }
20
private static class Token
21
{ /* Figure 11.15 */ }
22
private static class EvalTokenizer
23
{ /* Figure 11.15 */ }
24
25
public Evaluator( String s )
26
{
27
opStack = new Stack<Integer>( ); opStack.push( EOL );
28
postfixStack = new Stack<Long>( );
29
str = new StringTokenizer( s, "+*-/^() ", true );
30
}
31
public long getValue( )
32
{ /* Figure 11.17 */ }
33
34
private Stack<Integer> opStack; // Operator stack for conversion
35
private Stack<Long> postfixStack; // Stack for postfix machine
36
private StringTokenizer str; // StringTokenizer stream
37
38
private void processToken( Token lastToken )
39
{ /* Figure 11.21 */ }
40
private long getTop( )
41
{ /* Figure 11.18 */ }
42
private void binaryOp( int topOp )
43
{ /* Figure 11.19 */ }
44
}
figure 11.14
The
Evaluator
class skeleton
Search WWH ::
Custom Search