欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

用javascript实现一门编程语言-字符输入流

发布时间:2025/4/16 javascript 4 豆豆
生活随笔 收集整理的这篇文章主要介绍了 用javascript实现一门编程语言-字符输入流 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

目录

  • 用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实现一门编程语言-字符输入流的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。