Java Reference
In-Depth Information
case
case
StreamTokenizer
.
TT_NUMBER
:
// Found a number, push value to stack
push
(
tf
.
nval
);
break
break
;
case
case
StreamTokenizer
.
TT_WORD
:
// Found a variable, save its name. Not used here.
variable
=
tf
.
sval
;
break
break
;
case
case
'+'
:
// + operator is commutative.
push
(
pop
() +
pop
());
break
break
;
case
case
'-'
:
// - operator: order matters.
tmp
=
pop
();
push
(
pop
() -
tmp
);
break
break
;
case
case
'*'
:
// Multiply is commutative
push
(
pop
() *
pop
());
break
break
;
case
case
'/'
:
// Handle division carefully: order matters!
tmp
=
pop
();
push
(
pop
() /
tmp
);
break
break
;
case
case
'='
:
out
.
println
(
peek
());
break
break
;
default
default
:
out
.
println
(
"What's this? iType = "
+
iType
);
}
}
}
void
void
push
(
double
double
val
) {
s
.
push
(
new
new
Double
(
val
));
}
double
double
pop
() {
return
return
((
Double
)
s
.
pop
()).
doubleValue
();
}
double
double
peek
() {
return
return
((
Double
)
s
.
peek
()).
doubleValue
();
}
void
void
clearStack
() {
s
.
removeAllElements
();
}
}