CFG中的IO$,IF$,$是什么意思

时间:2021-06-28 08:09:17

标签: parsing context-free-grammar finite-automata context-free-language automata-theory

解析表达式:IF i> i THEN i = i + i * i 使用以下 CFG 定义的小型编程语言,

S → ASSIGNMENT$| GOTO$| IF$| IO$
ASSIGNMENT$ → i = ALEX
GOTO$ → GOTO NUMBER
IF$ → IF CONDITION THEN S
    | IF CONDITION THEN S ELSE S
CONDITION → ALEX = ALEX| ALEX ≠ ALEX| ALEX > ALEX
          | CONDITION AND CONDITION
          | CONDITION OR CONDITION
          | NOT CONDITION
IO$ → READ i| PRINT i

提示:

  1. ALEX 代表代数表达式
  2. 以 $ 结尾的名字是类
  3. 终端是{ = GOTO IF THEN ELSE ≠ > AND OR NOT READ PRINT }
  4. iALEXNUMBER 的定义中引入的任何终结符。

1 个答案:

答案 0 :(得分:0)

在我看来,“$”是“STATEMENT”的缩写。例如,“IF$”表示“IF STATEMENT”。

但是不管它的“意思”是什么,为了练习的目的,你可以把它当作一个普通的字母来对待:“IF$”只是一个出现在语法中的非终结符的名字。< /p>