第四种语言 EBNF 规则,用于无限循环或 if 语句



是否有描述 Forth 无限循环或 if 语句的 EBNF 规则?

EBNF 用于描述语法。一个循环是无限的或其他的,通常不会落在它所描述的范围内。因此,您将在 EBNF 中查看无限循环,如下所示:

indefinite_loop ::= 'BEGIN' statements cond 'UNTIL'

通常,cond将在堆栈上推送 0 或 1 以确定是否继续循环(0表示继续循环,1表示退出)。因此,如果您只是直接插入0,循环将永远执行:

: infinite_loop BEGIN do_whatever 0 UNTIL ;

您还可以使用:

infinite_loop ::= 'BEGIN' statements 'AGAIN'

AGAIN词用于做一个无条件的分支回到BEGIN。 例如:

: main-loop BEGIN listen-for-event process-event AGAIN ;

相关内容

  • 没有找到相关文章

最新更新