📄 charscanner.java
字号:
package cmm.cmmcc;
import cmm.collections.CharBuffer;
import cmm.collections.ICharBuffer;
/**
* 字符扫描器类,继承共享字符状态类,实现字符流接口
* @author Huang Xuanxing
*
*/
public class CharScanner extends SharedCharState implements ICharBuffer {
public CharBuffer input; // 输入字符流
public CharScanner(String inStr) {
inStr += "ん"; // 结束符
initial(inStr);
}
private void initial(String inStr) {
input = new CharBuffer(inStr);
column = 1;
line = 1;
tokenColumn = 1;
tokenLine = 1;
}
public char LA(int i) {
return input.LA(i);
}
public char nextChar() {
char ch = input.nextChar();
while (ch == ' ' || ch == '\r' || ch == '\n' || ch == '\t'){
if (ch == '\n') {//遇到回车,行数加1,列数归1
newline();
ch = input.nextChar();
}
else if(ch ==' '){//过滤空格
column++;
ch = input.nextChar();
}
else if(ch == '\r'){//过滤回车前的'\r'字符
ch = input.nextChar();
}
else if(ch =='\t'){//过滤制表符号'\t',一个制表符号为8个字符
column += 8;
ch = input.nextChar();
}
}
return ch;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -