?? client.java~9~
字號:
package littlecompiler;
/*解釋器模式有點像演算法中的個別擊破解釋的方式,對每一個父節點
我們剖析出其中的子節點的組合,然后再交由子節點剖析,直接剖析到終端節點為止。
讓我們做一個小小的程式解釋器,可以將自定義文法程式文件解釋執行。程式的關鍵字只有PROGRAM、PRINT、SPACE、BREAK、LINEBREAK、REPEAT、END。
PROGRAM是程式的開始,END是結尾。簡單的例子為:
PROGRAM
PRINT dog SPACE
PRINT is SPACE
PRINT an SPACE
PRINT animai
END
程序會印出"dog is an animal",再一個例子:
PROGRAM
REPEAT 2
LINEBREAK
PRINT dog
BREAK
END
END
程序會印出
------------------------------
dog
------------------------------
dog
*/
import java.util.*;
import java.io.*;
public class Client {
public static void main (String[] args) {
try {
BufferedReader reader = new BufferedReader (new FileReader (args[ 0 ]));
String text;
while ( (text = reader.readLine ()) != null) {
System.out.println ("text = \"" + text + "\"");
Node node = new ProgramNode ();
node.parse (new Context (text));
System.out.println ("node = " + node);
node.execute();
}
}
catch (ArrayIndexOutOfBoundsException e) {
System.err.println ("Usage: java Main yourprogram.txt");
}
catch (Exception e) {
e.printStackTrace ();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -