The PasDoc2 branch is "closed" now. This merely means that I consider
that the useful stuff from PasDoc2 branch is applied to trunk, and this
issue is "done" for PasDoc 0.12.0. The dodi/ and PasDoc2/ branches are
moved to branches/closed/ subdirectory in SVN (so be sure to do "svn
switch" if you were testing them and want to keep doing so).
See SVN commit logs for details about why some small changes were
applied / or not.
Some of the larger changes of PasDoc2 branch had to be rejected, and
left inside branches/closed/PasDoc2/ for everyone to eventually retry.
Some reasons:
0. The failures mentiond in previous mail are the number zero reason...
No matter the rest, we can't apply something that breaks existing stuff.
The smaller things that could be applied, easily and without breaking
anything, are applied.
1. Do not make TPasDoc an all-options container, do not make it an
ancestor of generators, do not pass TPasDoc instance to scanner/tokenizer.
Reasoning: this was breaking the fundamental nice separation between
scanning (parsing etc.) code and generating code. All the generators,
and the scanner, and the parsers "knew" about options of everything
else, which doesn't feel clean.
I started to revert this change, but this lead me to reverting
PasDoc_Base.pas, PasDoc_Gen.pas, which eventually means that other
generators must be carefully fixed back or reverted.
2. Do not make TTokenType public. This drags internal stuff, that should
be only for scanners/parsers communication, into public.
3. I wanted to poke around TPasScope changes, I could see some
potentially useful stuff there, but it's too mixed with the other
changes above. Not really possible to just extract it and apply in
separation, as far as I can see.
Michalis
|