阅读EBNF语法

时间:2017-11-05 04:13:34

标签: grammar ebnf

我只需要帮助阅读这个EBNF语法,我是新手,并不是特别理解第一个,我理解第二个,但只是不明白它与第一个如何联系。

Term :: = Primary {(T_STAR | T_SLASH)Term}

主要:: = T_ICONST | T_SCONST | T_ID | T_LPAREN Expr T_RPAREN

1 个答案:

答案 0 :(得分:-1)

在EBNF中,由卷曲括号括起的表达式可以省略或重复更多时间 所以我们可以根据这个EBNF构造一些代码(假设T_STAR代表字符“*”而T_SLASH代表“/”)

// Term ::= Primary { (T_STAR|T_SLASH) Term }
// Primary ::= T_ICONST | T_SCONST | T_ID | T_LPAREN Expr T_RPAREN
Term ::= Primary * Term
Term ::= Primary * Primary / Term
Term ::= Primary * Primary / Primary 
Term ::=  ThisIsT_ID * ThisIsT_ID / ThisIsT_ID