3.1.5 词汇和语法的正式定义


词汇通常用正则表达式表示。

例如,我们的示例语言可以定义如下:

INTEGER :0|[1-9][0-9]*
PLUS : +
MINUS: -

如您所看到的,这里用正则表达式给出了整数的定义。

语法通常使用一种称为BNF的格式来定义。我们的示例语言可以定义如下:

expression :=  term  operation  term
operation :=  PLUS | MINUS
term := INTEGER | expression

之前我们说过,如果语言的语法是与上下文无关的语法,就可以由常规解析器进行解析。与上下文无关的语法的直观定义就是可以完全用 BNF 格式表达的语法。有关正式定义,请参阅关于与上下文无关的语法的维基百科文章。

results matching ""

    No results matching ""