?? client.java
字號(hào):
package littlecompiler;
/*解釋器模式有點(diǎn)像演算法中的個(gè)別擊破解釋的方式,對(duì)每一個(gè)父節(jié)點(diǎn)
我們剖析出其中的子節(jié)點(diǎn)的組合,然后再交由子節(jié)點(diǎn)剖析,直接剖析到終端節(jié)點(diǎn)為止。
讓我們做一個(gè)小小的程式解釋器,可以將自定義文法程式文件解釋執(zhí)行。程式的關(guān)鍵字只有PROGRAM、PRINT、SPACE、BREAK、LINEBREAK、REPEAT、END。
PROGRAM是程式的開始,END是結(jié)尾。簡單的例子為:
PROGRAM
PRINT dog SPACE
PRINT is SPACE
PRINT an SPACE
PRINT animai
END
程序會(huì)印出"dog is an animal",再一個(gè)例子:
PROGRAM
REPEAT 2
LINEBREAK
PRINT dog
BREAK
END
END
程序會(huì)印出
------------------------------
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 ();
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -