Last Updated 2/1/97
NoCeM = Comment Headers Body End Comment
0.1 Comment = { {String} {Newline} }
1 Header = HeaderDelimiter Version {HeaderLine}
1.1 HeaderDelimiter = "@@BEGIN NCM HEADERS" LineTerminator
1.2 Version = "Version: " Number LineTerminator
1.3 HeaderLine = (Issuer| Type | Action | Newsgroup | Count | NoticeId | OtherHeader) LineTerminator
1.3.1 Issuer = "Issuer: " String
1.3.2 Type = "Type: " ( "Spam" | "Spew" | "MMF" | "Content-Based" | "Binary" | "Test" | OtherType)
1.3.2.1 OtherType = String
1.3.3 Action = "Action: " ( "Hide" | "Show" | "None" | OtherAction )
1.3.3.1 OtherAction = String
1.3.4 Newsgroup = "Newsgroup: " NewsgroupName
1.3.4.1 NewsgroupName = NameString { "." NameString }
	;The Same as RFC1036 Newsgroup
1.3.5 Count = "Count: " Number
1.3.6 NoticeId = "NoticeID: " String
1.3.7 OtherHeader = HeadName ": " HeadValue
1.3.7.1 HeadName = String
1.3.7.2 HeadValue = String
2 Body = BodyDelimiter { BodyBlock }
2.1 BodyDelimiter = "@@BEGIN NCM BODY" LineTerminator
2.2 BodyBlock = Message-ID Groupline { Groupline }
2.2.1 Message-ID = "<" String "@" String ">"
2.2.2 Groupline = Tabs Groups LineTerminator
2.2.2.1 Tabs = <TAB> { <TAB> } 
2.2.2.2 Groups = NewsgroupName { " " NewsgroupName }
3 End = "@@END NCM BODY" LineTerminator
EmbeddedComment	= "#" [String] LineTerminator
String = <CHAR>{<CHAR>}
NameString = <ALFA> { <ALFA> | <NUMERIC> | "+" | "-" }
LineTerminator = <CR>
Comments on syntax  " " Represents literals
{ } Represents 0 or more repetitions
( ) Elements enclosed in parentheses are treated as single elements
| Elements separated by a bar are alliteratives
Whitespace outside of literals is ignored and simply there for clarity.