相关疑难解决方法(0)

创建Brainfuck解析器,解决循环运算符的最佳方法是什么?

我正在创建一个Brainfuck解析器(用BASIC方言)最终创建一个解释器,但我意识到它并不像我最初想的那样直截了当.我的问题是我需要一种方法来准确地解析Brainfuck程序中的匹配循环运算符.这是一个示例程序:

,>,>++++++++[<------<------>>-]
<<[>[>+>+<<-]>>[<<+>>-]<<<-]
>>>++++++[<++++++++>-],<.>.
Run Code Online (Sandbox Code Playgroud)

'['=循环开始

']'=循环结束

我需要记录每个匹配循环运算符的起点和终点,以便我可以根据需要跳转到源.有些循环是单独的,有些是嵌套的.

什么是解析这个的最佳方法?我想也许可以通过源文件创建一个2D数组(或类似的)来记录每个匹配运算符的开始和结束位置,但这看起来像是通过源的"来回".这是最好的方法吗?

更多信息:Brainfuck主页

编辑:非常感谢任何语言的示例代码.

parsing loops brainfuck

5
推荐指数
1
解决办法
3046
查看次数

标签 统计

brainfuck ×1

loops ×1

parsing ×1