原文中是
the character input stream
,不知道怎么翻译好,就翻译成字符输入流
javascript
咱们在这部分将会建立一个stream object
,用来提供从字符串读取字符的方法。stream object
包含四个方法:java
true
为何将抛出错误的方法croak
放到这里,是由于在这里能更简单的来获错误发生的位置,这对于提示错误信息很重要。编程
你能够根据本身的须要在这里添加任何函数。这四个函数对于咱们这个教程已经够用了。bash
字符输入流是面向字符的,因此next()
和 peek()
函数的返回值是一个字符(char类型,由于javascript中没有char类型,因此返回的是长度惟一的string)。编程语言
如下是stream object
的代码:函数
function InputStream(input) {
var pos = 0, line = 1, col = 0;
return {
next : next,
peek : peek,
eof : eof,
croak : croak,
};
function next() {
var ch = input.charAt(pos++);
if (ch == "\n") line++, col = 0; else col++;
return ch;
}
function peek() {
return input.charAt(pos);
}
function eof() {
return peek() == "";
}
function croak(msg) {
throw new Error(msg + " (" + line + ":" + col + ")");
}
}
复制代码
原文连接: lisperator.net/pltut/parse…post