NTOM/NTOT・文法


以下に NTOM の文法を記述します。
文法は BNF (Backus Nauer Form) like な構文により記述しますが、この部分を飛ばして NmSegment, NmRecord, NmField, NmMethod の説明を見ても簡単に理解できると思います。
なお、予約語は、区切り文字はで表示します。

NTOM
	NmSegment . NmSolidRecord . NmOutputMethod
	NmSegment . NmFlexRecord . NmCountMethod
	NmSegment . NmFlexRecord . NmFields . NmFormatMethod
	NmRemMethod

NmSegment
	segment [ segment-ID ]	

segment-ID
	数字。
	この数字は LanMap の S/N から生成される物であり、
	end user が特定することはできません。(参照することは可能)
	ただし、例外として 0 を指定することが可能であり、その場合は
	ローカルセグメントを示します。

NmSolidRecord
	protocol
	size
	latest
	day
	month
	everyday

NmFlexRecord
	host
	port
	connection
	event

NmFields
	NmField { # NmField }

NmField
	hostNmField
	portNmField
	connectionNmField
	eventNmField

hostNmField
	inp
	outp
	inb
	outb
	workgroup
	pcname
	last
	ether
	vendor
	ip

portNmField
	btcp
	service
	nport
	packet
	byte

connectionNmField
	inp
	outp
	inb
	outb
	srcip
	dstip
	btcp
	nport
	srcether
	dstether
	times
	contype
	lastopen
	lastclose

eventNmField
	etime
	id
	ether
	ip
	comment
	netav
	netreal
	hostav
	hostreal

NmOutputMethod
	output ( output-select )

NmCountMethod
	count ( output-select )

output-select
	数字。
	現在、指定可能なのは 0, 1, 2 の3種類。
	0 は CSV 形式、1 は HTML 形式、2 は JavaScript 形式を示します。

NmFormatMethod
	format ( nmrecord-select , sortkey-select , output-select )

nmrecord-select
	数字。
	0 を指定すると全ての NmRecord の実体が対象となります。
	正の数字を指定すると、ソートされた NmRecord の上位指定数が対象となります。
	負の数字を指定すると、ソートされた NmRecord の下位指定数が対象となります。

sortkey-select
	数字。
	ここで指定する数字は、どの NmField をソートキーするかの位置。
	NmFields object における何番目(1 から開始)の NmField かを数字で指定します。
	正の数字を指定するとソートは昇順となりますが、負の数字を指定すると降順となります。

	なお、NmField によってはソートキーになれない物もあります。
	(特に、NmRecord が event の場合は全ての NmField がソートキーの対象外。)
	このような NmField を指定したり、存在しない位置を指定した場合は
	エラーとならず、単にソートされないだけとなります。

NmRemMethod
	rem ( " remark-string " )

remark-string
	文字列。
	"(ダブルクォート)を含むことはできません。


以下の定義は NTOM の中には実体として存在していませんが、仮想的に存在しているものです。
したがって、NTOM の記述には必要ありませんが NTOM の展開結果には重要な概念となります。

NmVirtualField
	protocolNmField
	sizeNmField
	latestNmField
	dayNmField
	monthNmField
	everydayNmField

protoclNmField
	prname
	packet
	byte

sizeNmField
	packet

latestNmField
	traffic

dayNmField
	traffic

monthNmField
	traffic

everydayNmField
	traffic


next...