blob: 1b0f2a3f5c5539b789123ed68f301e3ffe5c5f84 [file] [log] [blame]
===
Changes for RFC 1123 sec 2.1
violations.xml: comment out IP_V4_HAS_FOUR_COMPONENTS
PattenCompiler: remove entry using IP_V4_HAS_FOUR_COMPONENTS in for ipV4Address[]
=== JFlex
See src-dev to project.
Add JFlex.jar: /home/afs/sys/jflex-1.4.3/lib/JFlex.jar
Build:
See dev.buildlexer.MainGenerateLexers which does step 1-3
1/ BuildViolationCodes.main(args) (violations.xml => Java code)
2/ PatternCompiler.main (writes host.jflex)
3/ AbsLexer.main (writes other jflex files)
then refresh in Eclipse.
Edit to remove errors and warnings.
change yytext to
@Override final String yytext()
=== What builds what
TestCreator:
uris.xml -> test.xml
AbsLexerBuilder
// violation.xml ==> ViolationCodes
BuildViolationCodes.main(args) ;
// host.jflex
PatternCompilerBuilder.main(args) ;
// Other jflex files
AbsLexerBuilder.main(args) ;
====
/*
host => (@{regname})
regname => ((@{label}\\.)*@{label}\\.?)
label => (@{labelPrefix}(@{labelInside}@{labelPostfix})?)
labelInside => (@{labelSingleDashInside}?)
labelPrefix => (@{labelChar})
labelChar => (@{unreservedDNSLabel})
unreservedDNSLabel => (@{letterDigit}|_)
letterDigit => ([a-z0-9])
labelSingleDashInside => ((@{labelChar}+-)*@{labelChar}+)
labelPostfix => (@{labelChar})
*/
--------------
[[
RFC 1123, sec 2.1
The syntax of a legal Internet host name was specified in RFC-952
[DNS:4]. One aspect of host name syntax is hereby changed: the
restriction on the first character is relaxed to allow either a
letter or a digit. Host software MUST support this more liberal
syntax.
]]
I can't find an updated official grammar and I only came across by googling
to get the authoritive text to show it was illegal. I happened on a nice
web page of DNS standards which mentioned it.
RFC 3986, sec 3.2.2, talks about the ambiguity.
The 1123 text isn't entirely clear - does it mean the first char of the
whole DNS host name or every component?
So a host of "1752" is now legal (albeit silly and unlikely to work very well).
-----------------
IP_V4_OCTET_RANGE
IP_V4_HAS_FOUR_COMPONENTS
are no longer MUST