Previous Menu Next
MDL Syntax

		source_part ::=
			type_def
		|	alias_def
		
		
		type_def ::=
			type_key identifier
			{type_part}+
		
		
		type_key ::=
			"type"
		|	"syntax"


		type_part ::=
			attribute_part
		|	format_part
		|	value_part
		|	choice_part
		
		
		attribute_part ::=
			"attributes"
			{field_def "," ...}+
		
		
		field_def ::=
			identifier
			type_use
		
		
		type_use ::=
			identifier
		|	"integer"
		|	"real"
		|	"string"
		|	"boolean"
		|	"duration"
		|	"list" type_use
		
		
		format_part ::=
			{descriptor "," ...}+
		
		
		descriptor ::=
			descriptor_tag
			{parameter}*
		
		
		descriptor_tag ::=
			identifier
		|	string
		|	char_choice
		|	option
		
		
		char_choice ::=
			"(" {char_choice_part "|"}+ ")"
		
		
		char_choice_part ::=
			identifier
		|	string
		
		option ::=
			"[" format_part "]"
		
		
		parameter ::=
			identifier
			["=" parameter_value_list]
		
		
		parameter_value_list ::=
			parameter_value
		|	"(" {parameter_value "," ...}+ ")"
		
		
		parameter_value ::=
			integer
		|	identifier
		|	string
		
		
		value_part ::=
			"create_time" "=" function_body
			"event_type" "=" attribute_ref

		function_body ::=
			identifier
			{identifier "=" function_arg "," ...}*


		function_arg ::=
			attribute_ref
		|	string
		
		
		attribute_ref ::=
			{identifier "." ...}+
		
		
		choice_part ::=
			"choice"
			{choice "," ...}+
		
		
		choice ::=
			identifier identifier
		
		
		alias_def ::=
			"aliases"
			{alias_format "," ...}+
		
		
		alias_format ::=
			identifier
			alias_data
			{parameter}*
		
		
		alias_data ::=
			identifier
		|	string
		|	char_choice