Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Parslet:SystemStackError:堆栈级别太深_Ruby_Parslet - Fatal编程技术网

Ruby Parslet:SystemStackError:堆栈级别太深

Ruby Parslet:SystemStackError:堆栈级别太深,ruby,parslet,Ruby,Parslet,我正在开发一种新的编程语言,但我很难找到一些无限循环的底部。有没有一种方法可以在调用每个规则时打印出来,这样我就可以看到递归的规则?我试着在脑海中浏览代码,但我就是看不到。任何帮助都将不胜感激。我想出来了:编辑Parslet::Atom::Context#lookup以输出obj参数将按调用的方式显示每个规则。我想出来了:编辑Parslet::Atom::Context#lookup以输出obj参数将按调用的方式显示每个规则调用。以充实: 修补的方法实际上是Parslet::Atoms::Con

我正在开发一种新的编程语言,但我很难找到一些无限循环的底部。有没有一种方法可以在调用每个规则时打印出来,这样我就可以看到递归的规则?我试着在脑海中浏览代码,但我就是看不到。任何帮助都将不胜感激。

我想出来了:编辑
Parslet::Atom::Context#lookup
以输出
obj
参数将按调用的方式显示每个规则。

我想出来了:编辑
Parslet::Atom::Context#lookup
以输出
obj
参数将按调用的方式显示每个规则调用。

以充实:

修补的方法实际上是
Parslet::Atoms::Context#lookup
。(). 在您自己的代码中,您可以修补该方法以打印
obj
,如下所示:

class Parslet::Atoms::Context
  def lookup(obj, pos)
    p obj
    @cache[pos][obj.object_id]
  end
end
在解析器上调用
parse
之前,随时运行该代码,它就会生效。样本输出:

>parser=ConsistentNewlineTextParser.new
=>行
>>parser.parse(“abc”)
线
(行内容:行内容换行){0,}行内容:行内容
(行内容:行内容换行){0,}
行内容:行内容换行
行内容
单词
\\w{0,}
\\w
\\w
\\w
\\w
新线
动态{…}
第一新线
'? '
'
'?
'
'
'
行内容
=>{:line_content=>“abc”@0}
要充实:

修补的方法实际上是
Parslet::Atoms::Context#lookup
。(). 在您自己的代码中,您可以修补该方法以打印
obj
,如下所示:

class Parslet::Atoms::Context
  def lookup(obj, pos)
    p obj
    @cache[pos][obj.object_id]
  end
end
在解析器上调用
parse
之前,随时运行该代码,它就会生效。样本输出:

>parser=ConsistentNewlineTextParser.new
=>行
>>parser.parse(“abc”)
线
(行内容:行内容换行){0,}行内容:行内容
(行内容:行内容换行){0,}
行内容:行内容换行
行内容
单词
\\w{0,}
\\w
\\w
\\w
\\w
新线
动态{…}
第一新线
'? '
'
'?
'
'
'
行内容
=>{:line_content=>“abc”@0}
自动检测无休止的循环,并退出正在重复而不消耗任何内容的报告表达式

请参阅以获取示例。

自动检测无休止的循环,并退出正在重复而不消耗任何内容的报告表达式

有关示例,请参见