Modula-2

时间:2015-09-26 23:14:31

标签: syntax ebnf modula-2

家庭作业 1.举例说明Modula-2中最短的记录类型。 (“最短”意味着最少的词位数。)

EBNF RECORD

的定义
RecordType = RECORD FieldListSequence END.

FieldListSequence = FieldList {“;” FieldList}.

FieldList = [IdentList ";" Type | CASE [Ident] ";" 
Qualident OF Variant  {"|" Variant} ELSE FieldListSequence]END].

我提出的是......我是否接近

RecordType = RECORD, FieldList, END.

1 个答案:

答案 0 :(得分:2)

对于任何M2方言,这都不是合法的M2语法。

最短字段列表是单个字段声明:

field : SomeType

因此,最短记录类型定义是:

TYPE Foo = RECORD
  bar : Baz
END;

这适用于所有方言。

更新:

正如我在学习EBNF的评论中所提到的,我建议研究铁路图并将它们与EBNF进行比较。这里是Modula-2语法图的链接,专门用于Wirth的第4版“Modula-2编程”,即PIM4。

http://modula-2.info/m2pim/pmwiki.php/SyntaxDiagrams/PIM4NonTerminals

记录类型的图表位于:

http://modula-2.info/m2pim/pmwiki.php/SyntaxDiagrams/PIM4NonTerminals#recordType