2015-09-26 34 views
1

作業分配 1.以Modula-2中最短的記錄類型爲例。 (「最短」意味着最少數量的詞位。)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. 

回答

2

這是不任何M2方言的合法M2語法。

最短的字段列表是一個字段聲明:

field : SomeType 

因此,最短的記錄類型的定義是:

TYPE Foo = RECORD 
    bar : Baz 
END; 

這是適用於所有的方言。

UPDATE:

正如我在評論學習EBNF提到的,我建議研究鐵路圖表和比較它們EBNF。以下是Modula-2語法圖的鏈接,專門針對Wirth的第4版「Programming in Modula-2」,又名PIM4。

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

的記錄類型的圖是:

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

+0

但是,你應該做的功課你自己;-) 有淡淡也許,如果你有困難EBNF,繪製一些鐵路圖來顯示語法。您可以在我的bitbucket repo(搜索暱稱)上找到一個用於繪製M2語法圖的腳本。 – trijezdci

+0

非常感謝你,我會採納你的建議 –