config test_conf {
	enum week_t { MON, TUE, WED, THU, FRI, SAT, SUN }
	enum fruit_t { Apple, Orange, Peach, Lemon }

	required int_val	: int;
   	required bool_val	: bool;
	required week_val	: week_t;
	optional string_val	: string;
	optional real_val	: real;
	required string_list	: list<string>;
	required string0_list	: list[0]<string>;
	required int1_list	: list[1]<int>;
	required bool9_list	: list[9]<bool>;
	required real_llist	: list<list<real>>;
 		 stri_list	: list<string,int>;
		 rib_tuple	: real,int,bool;
		 string_tuple	: ((string));	
		 week_fruits	: week_t,list<fruit_t>;
	optional int_defval	: int(5);
	optional int_defval2	: int;
	optional uint_defval	: uint(123);
	optional uint_defval2	: uint;
	optional uint_defval3	: uint(0xffffffff);
	optional bool_defval	: bool(true);
	optional bool_defval2	: bool;
	optional string_defval	: string("hello");
	optional string_defval2 : string;
	optional real_defval	: real(1.0123);
	optional real_defval2	: real;
	optional fruit_def	: fruit_t(Orange);
#	optional fruit_baddef	: fruit_t(FRI);
	optional fruit_def2	: fruit_t;

	optional rib_tuple_def	: real(-3.14),int(5),bool;
	optional stri_list_def	: list[3]<string("hoge"),int(1234)>;

	optional date_value	: time;
	optional date_value2	: time(2003/12/31);
	optional date_value3    : time(2008/1/3 17:20:00);
	optional date_value4    : time;
	optional ipv4_value	: ipv4addr;
	optional ipv4_value2	: ipv4addr(192.168.0.1);
	optional ipv4_value3	: ipv4addr(1.2.3.4);
	optional ipv6_value	: ipv6addr;
	optional ipv6_value2	: ipv6addr(dead:beaf::1);
	optional ipv6_value3	: ipv6addr(dead:1234:ffff:ffff:2311:1111:0000:0232);
	optional ipv6_value4	: ipv6addr(::);
	optional ipv6_value5	: ipv6addr(::1);
	optional ipv6_value6	: ipv6addr(1:2:3::);
	optional ipv6_value7	: ipv6addr;

	optional netaddr_val	: ipv4addr,int(24);
	optional net6addr_val	: ipv6addr,int;

	optional datadrstr_vals	: list<time,ipv4addr,string>;
}
