当前位置:
首页 >
前端技术
> javascript
>内容正文
javascript
用javascript实现一门编程语言-字符输入流
生活随笔
收集整理的这篇文章主要介绍了
用javascript实现一门编程语言-字符输入流
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
目录
字符输入流
原文中是the character input stream,不知道怎么翻译好,就翻译成字符输入流
我们在这部分将会创建一个stream object,用来提供从字符串读取字符的方法。stream object包含四个方法:
- peek() -- 读取下一个值
- next() -- 读取下一个值,并且将这个值从输入流移除
- eof() -- 当输入流中没用值时,返回true
- croak(msg) -- 用来抛出错误
为什么将抛出错误的方法croak放到这里,是因为在这里能更简单的来获错误发生的位置,这对于提示错误信息很重要。
你可以根据自己的需要在这里添加任何函数。这四个函数对于我们这个教程已经够用了。
字符输入流是面向字符的,所以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…
转载于:https://juejin.im/post/5b64103c6fb9a04fe370d54d
总结
以上是生活随笔为你收集整理的用javascript实现一门编程语言-字符输入流的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Flutter实现动画卡片式Tab导航
- 下一篇: QLoo推出用于现有服务的GraphQL