Merge branch 'master' of /Users/ernestoestrada/IdeaProjects/PPL-Fall-2018 with conflicts.
This commit is contained in:
Executable
+87
@@ -0,0 +1,87 @@
|
||||
// ask this node to execute itself
|
||||
// (for nodes that don't return a value)
|
||||
public void execute() {
|
||||
|
||||
if ( kind.equals("stmts") ) {
|
||||
// insert code here for Exercise 15
|
||||
}
|
||||
|
||||
else if ( kind.equals("prtstr") ) {
|
||||
System.out.print( info );
|
||||
}
|
||||
|
||||
else if ( kind.equals("prtexp") ) {
|
||||
// insert code here for Exercise 15
|
||||
}
|
||||
|
||||
else if ( kind.equals("nl") ) {
|
||||
System.out.print( "\n" );
|
||||
}
|
||||
|
||||
else if ( kind.equals("sto") ) {
|
||||
// insert code here for Exercise 15
|
||||
}
|
||||
|
||||
else {
|
||||
error("Unknown kind of node [" + kind + "]");
|
||||
}
|
||||
|
||||
}// execute
|
||||
|
||||
// compute and return value produced by this node
|
||||
public double evaluate() {
|
||||
|
||||
if ( kind.equals("num") ) {
|
||||
return Double.parseDouble( info );
|
||||
}
|
||||
|
||||
else if ( kind.equals("var") ) {
|
||||
// insert code here for Exercise 15
|
||||
}
|
||||
|
||||
else if ( kind.equals("+") || kind.equals("-") ) {
|
||||
// insert code here for Exercise 15
|
||||
}
|
||||
|
||||
else if ( kind.equals("*") || kind.equals("/") ) {
|
||||
// insert code here for Exercise 15
|
||||
}
|
||||
|
||||
else if ( kind.equals("input") ) {
|
||||
return keys.nextDouble();
|
||||
}
|
||||
|
||||
else if ( kind.equals("sqrt") || kind.equals("cos") ||
|
||||
kind.equals("sin") || kind.equals("atan")
|
||||
) {
|
||||
double value = first.evaluate();
|
||||
|
||||
if ( kind.equals("sqrt") )
|
||||
return Math.sqrt(value);
|
||||
else if ( kind.equals("cos") )
|
||||
return Math.cos( Math.toRadians( value ) );
|
||||
else if ( kind.equals("sin") )
|
||||
return Math.sin( Math.toRadians( value ) );
|
||||
else if ( kind.equals("atan") )
|
||||
return Math.toDegrees( Math.atan( value ) );
|
||||
else {
|
||||
error("unknown function name [" + kind + "]");
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else if ( kind.equals("pow") ) {
|
||||
// insert code here for Exercise 15
|
||||
}
|
||||
|
||||
else if ( kind.equals("opp") ) {
|
||||
// insert code here for Exercise 15
|
||||
}
|
||||
|
||||
else {
|
||||
error("Unknown node kind [" + kind + "]");
|
||||
return 0;
|
||||
}
|
||||
|
||||
}// evaluate
|
||||
Reference in New Issue
Block a user