# General:
- (re)construct a file zone based on lib/Zone.pm6 object ;
	- use Match objects if ResourceRecord is not modified ;
- include some bind 9 directive ? ($INCLUDE, $TTL, $GENERATED, etc.) [$ttl, $origin ok]
- Two steps:
	- first step: syntax parsing and AST building ;
	- second step: semantic checks (domain name validity, TTL validity, etc.).
- How to make an "abstract" class (for ResourceRecord, to force childs to implements all methods)

# Grammar:
- error exception:
	- get line, reason, enventually continue the parsing of the other lines ;
	- named-checkzone force ttl to 0 if value > signed int32)
- test with windows carriage return ;
- special IPv4, like 0.0.0.0 ? => seems to be ok for named-checkzone

# Grammar action:
- for null values, get previous one (domain_name, ttl, class, …)
- check that soa name server is defined above
- unicode domain name <= transcode => ASCII

# To check:
- In IPv6 rule : $<ipv4>.elems returns 0, $<ipv4><d8> returns 4, is it normal that $<ipv4>.elems returns 0 ?
- in lib/Zone.pm6, « splice » has an strange comportement, depending it is used in OO way, or not.

# Idea to split RFC compliant from modern syntax (used in many softwares).
role RFC5205 {
	type:<HIP> { * }
}
grammar Modern is RFC1335 is RFC5205 { } # Modern just extends RFCs grammars
