家庭作业 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.
答案 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