Re: [PATCH 00/12] [PATCH 00/11] Thrash up the parser/output interface

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




在 7/3/25 6:35 AM, Jonathan Corbet 写道:
[I'll slow down soon, honest - real work is piling up...]

The kerneldoc parsing phase gathers all of the information about the
declarations of interest, then passes it through to the output phase as a
dict that is an unstructured blob of information; this organization has its
origins in the Perl version of the program.  It results in an interface
that is difficult to reason about, dozen-parameter function calls, and
other ills.

Introduce a new class (KdocItem) to carry this information between the
parser and the output modules, and, step by step, modify the system to use
this class in a more structured way.  This could be taken further by
creating a subclass of KdocItem for each declaration type (function,
struct, ...), but that is probably more structure than we need.

As a final step, add some structure for the accumulation of the output
text.

The result is (I hope) clearer code, the removal of a bunch of boilerplate,
and no changes to the generated output.

Jonathan Corbet (12):
   docs: kdoc; Add a rudimentary class to represent output items
   docs: kdoc: simplify the output-item passing
   docs: kdoc: drop "sectionlist"
   docs: kdoc: Centralize handling of the item section list
   docs: kdoc: remove the "struct_actual" machinery
   docs: kdoc: use self.entry.parameterlist directly in check_sections()
   docs: kdoc: Coalesce parameter-list handling
   docs: kdoc: Regularize the use of the declaration name
   docs: kdoc: straighten up dump_declaration()
   docs: kdoc: directly access the always-there KdocItem fields
   docs: kdoc: clean up check_sections()
   docs: kdoc: Improve the output text accumulation

Reviewed-by: Yanteng Si <siyanteng@xxxxxxxxxxxxxxxxx>


Thanks,

Yanteng






[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux