📄 eval.java
字号:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
*
* Course - CS601 OO Programming
* Instructor - Terence Parr
* Assignment - 4
*
* Eval class reads from standard in, writes to standard out, and errors out to
* standard error. The class passes the stream (stdin) to {@link EvalParser}
*
* The class is able to evaluate expressions of the following nature
*
* 5+2
* or
* 5*4+3
* or
* 5*5*7*3+12
*
* The class respects multiplicative precedence
*
* so 5+3*3 evaluates to 45 not 24
*/
public class Eval {
/**
* @param args
*/
public static void main(String[] args) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(System.in));
EvalParser p = new EvalParser(new TokenBuffer(new Lexer(reader, 4), 4));
System.out.println(p.expression());
} catch (IllegalArgumentException ex) {
System.err.println("Expression error: " + ex.getMessage());
} finally {
if (reader != null) {
try { reader.close(); }
catch (IOException ex) {
System.err.println("Error closing standard in stream: " + ex.getMessage());
ex.printStackTrace(System.err);
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -