开源改变世界!!

rs274:错误地(?)接受#424

推推 grbl 2年前 (2023-01-29) 93次浏览
关闭
jepler 打开了这个问题 2018 年 3 月 20 日 · 4条评论
关闭

rs274:错误地(?)接受#abc>=7#424

jepler 打开了这个问题 2018 年 3 月 20 日 · 4条评论

注释

rs274:错误地(?)接受#424
成员
杰普勒 评论了 2018 年 3 月 20 日  

命名变量被记录为具有形式,但在某些情况下,实际不会检查#<abc>前导。<具体来说,接受但可能不接受以下内容:

$ ./bin/rs274 -g
executing
    1 N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
    2 N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
    3 N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
    4 N..... SET_XY_ROTATION(0.0000)
    5 N..... SET_FEED_REFERENCE(CANON_XYZ)
READ => #abc>=7
READ => 

@cradekIRC 上声明:

14:36:23  <cradek> if((line[*counter] == '<') || isalpha(line[*(counter)]))
14:36:57  <cradek> I think this is just a bug
14:37:16  <cradek> a mistake from before he decided on requiring <...>

似乎不可能引用这样一个变量(Z#abc>,Z[#abc>]Z#<abc>其他可能引用创建的变量的可能性不起作用。)这意味着修复它的影响很低:它只会影响一个变量的赋值永远无法被提及。它还使实现与文档保持一致。

rs274:错误地(?)接受#424 jepler 添加了 影响2.7 标签 2018 年 3 月 20 日
rs274:错误地(?)接受#424
合作者

然后过了一会儿我想通了更多:

14:39 <cradek> the character after # can be any isalpha and it still works as if that character is <
14:39 <cradek> #Qabc>=1
14:39 <cradek> #<abc>=1
14:39 <cradek> these are equivalent
14:40 <cradek> so #O<sub>=3 defined the named param "<sub" to be 3 (yes < are allowed in param names)

因此,可以在您的示例中引用变量,#<bc>也可以通过其他方式引用变量。我同意修复它不太可能破坏任何程序。我还怀疑<不应将其作为变量名称的一部分。

rs274:错误地(?)接受#424

好发现!文档

Named parameters must be enclosed with < > marks.

所以我同意这是解释器中的错误。我认为我们应该在 2.7 中修复它,即使它可能会破坏现有的 g 代码程序,因为任何此类 g 代码程序都是错误的(即违反我们的 g 代码语言的语法)。

rs274:错误地(?)接受#424
成员作者

由#425修复。

rs274:错误地(?)接受#424

这是在三月份修复的。