Lines Matching full:self

65     def __init__(self):
68 self.out_mode = self.OUTPUT_ALL
69 self.enable_lineno = None
70 self.nosymbol = {}
71 self.symbol = None
72 self.function_table = None
73 self.config = None
74 self.no_doc_sections = False
76 self.data = ""
78 def set_config(self, config):
83 self.config = config
85 def set_filter(self, export, internal, symbol, nosymbol, function_table,
95 self.enable_lineno = enable_lineno
96 self.no_doc_sections = no_doc_sections
97 self.function_table = function_table
100 self.out_mode = self.OUTPUT_INCLUDE
102 self.out_mode = self.OUTPUT_EXPORTED
104 self.out_mode = self.OUTPUT_INTERNAL
106 self.out_mode = self.OUTPUT_ALL
109 self.nosymbol = set(nosymbol)
112 def highlight_block(self, block):
117 for r, sub in self.highlights:
122 def out_warnings(self, args):
128 self.config.warning(log_msg)
130 def check_doc(self, name, args):
133 if self.no_doc_sections:
136 if name in self.nosymbol:
139 if self.out_mode == self.OUTPUT_ALL:
140 self.out_warnings(args)
143 if self.out_mode == self.OUTPUT_INCLUDE:
144 if name in self.function_table:
145 self.out_warnings(args)
150 def check_declaration(self, dtype, name, args):
156 if name in self.nosymbol:
159 if self.out_mode == self.OUTPUT_ALL:
160 self.out_warnings(args)
163 if self.out_mode in [self.OUTPUT_INCLUDE, self.OUTPUT_EXPORTED]:
164 if name in self.function_table:
167 if self.out_mode == self.OUTPUT_INTERNAL:
169 self.out_warnings(args)
172 if name not in self.function_table:
173 self.out_warnings(args)
178 def msg(self, fname, name, args):
183 self.data = ""
188 self.out_doc(fname, name, args)
189 return self.data
191 if not self.check_declaration(dtype, name, args):
192 return self.data
195 self.out_function(fname, name, args)
196 return self.data
199 self.out_enum(fname, name, args)
200 return self.data
203 self.out_typedef(fname, name, args)
204 return self.data
207 self.out_struct(fname, name, args)
208 return self.data
211 self.config.log.warning("doesn't now how to output '%s' block",
218 def out_doc(self, fname, name, args):
221 def out_function(self, fname, name, args):
224 def out_enum(self, fname, name, args):
227 def out_typedef(self, fname, name, args):
230 def out_struct(self, fname, name, args):
261 def __init__(self):
270 self.lineprefix = ""
272 def print_lineno(self, ln):
275 if self.enable_lineno and ln is not None:
277 self.data += f".. LINENO {ln}\n"
279 def output_highlight(self, args):
282 the self.highlights variable
317 if self.sphinx_literal.match(line) or self.sphinx_cblock.match(line):
320 output += self.highlight_block(block)
325 output += self.highlight_block(block)
329 self.data += self.lineprefix + line + "\n"
331 def out_section(self, args, out_docblock=False):
341 if section in self.nosymbol:
345 if not self.out_mode == self.OUTPUT_INCLUDE:
346 self.data += f".. _{section}:\n\n"
347 self.data += f'{self.lineprefix}**{section}**\n\n'
349 self.data += f'{self.lineprefix}**{section}**\n\n'
351 self.print_lineno(args.section_start_lines.get(section, 0))
352 self.output_highlight(text)
353 self.data += "\n"
354 self.data += "\n"
356 def out_doc(self, fname, name, args):
357 if not self.check_doc(name, args):
359 self.out_section(args, out_docblock=True)
361 def out_function(self, fname, name, args):
363 oldprefix = self.lineprefix
390 self.print_lineno(ln)
392 self.data += f".. c:macro:: {name}\n\n"
395 self.data += " **Typedef**: "
396 self.lineprefix = ""
397 self.output_highlight(args.get('purpose', ""))
398 self.data += "\n\n**Syntax**\n\n"
399 self.data += f" ``{signature}``\n\n"
401 self.data += f"``{signature}``\n\n"
403 self.data += f".. c:function:: {signature}\n\n"
406 self.print_lineno(ln)
407 self.lineprefix = " "
408 self.output_highlight(args.get('purpose', ""))
409 self.data += "\n"
413 self.lineprefix = " "
416 self.data += ".. container:: kernelindent\n\n"
417 self.data += f"{self.lineprefix}**Parameters**\n\n"
424 self.data += f"{self.lineprefix}``{dtype}``\n"
426 self.data += f"{self.lineprefix}``{parameter}``\n"
428 self.print_lineno(args.parameterdesc_start_lines.get(parameter_name, 0))
430 self.lineprefix = " "
434 self.output_highlight(args.parameterdescs[parameter_name])
435 self.data += "\n"
437 self.data += f"{self.lineprefix}*undescribed*\n\n"
438 self.lineprefix = " "
440 self.out_section(args)
441 self.lineprefix = oldprefix
443 def out_enum(self, fname, name, args):
445 oldprefix = self.lineprefix
448 self.data += f"\n\n.. c:enum:: {name}\n\n"
450 self.print_lineno(ln)
451 self.lineprefix = " "
452 self.output_highlight(args.get('purpose', ''))
453 self.data += "\n"
455 self.data += ".. container:: kernelindent\n\n"
456 outer = self.lineprefix + " "
457 self.lineprefix = outer + " "
458 self.data += f"{outer}**Constants**\n\n"
461 self.data += f"{outer}``{parameter}``\n"
464 self.output_highlight(args.parameterdescs[parameter])
466 self.data += f"{self.lineprefix}*undescribed*\n\n"
467 self.data += "\n"
469 self.lineprefix = oldprefix
470 self.out_section(args)
472 def out_typedef(self, fname, name, args):
474 oldprefix = self.lineprefix
477 self.data += f"\n\n.. c:type:: {name}\n\n"
479 self.print_lineno(ln)
480 self.lineprefix = " "
482 self.output_highlight(args.get('purpose', ''))
484 self.data += "\n"
486 self.lineprefix = oldprefix
487 self.out_section(args)
489 def out_struct(self, fname, name, args):
496 self.data += f"\n\n.. c:{dtype}:: {name}\n\n"
498 self.print_lineno(ln)
500 oldprefix = self.lineprefix
501 self.lineprefix += " "
503 self.output_highlight(purpose)
504 self.data += "\n"
506 self.data += ".. container:: kernelindent\n\n"
507 self.data += f"{self.lineprefix}**Definition**::\n\n"
509 self.lineprefix = self.lineprefix + " "
511 declaration = declaration.replace("\t", self.lineprefix)
513 self.data += f"{self.lineprefix}{dtype} {name}" + ' {' + "\n"
514 self.data += f"{declaration}{self.lineprefix}" + "};\n\n"
516 self.lineprefix = " "
517 self.data += f"{self.lineprefix}**Members**\n\n"
527 self.print_lineno(args.parameterdesc_start_lines.get(parameter_name, 0))
529 self.data += f"{self.lineprefix}``{parameter}``\n"
531 self.lineprefix = " "
532 self.output_highlight(args.parameterdescs[parameter_name])
533 self.lineprefix = " "
535 self.data += "\n"
537 self.data += "\n"
539 self.lineprefix = oldprefix
540 self.out_section(args)
570 def __init__(self, modulename):
579 self.modulename = modulename
584 for fmt in self.date_formats:
594 self.man_date = dt.strftime("%B %Y")
596 def output_highlight(self, block):
599 self.highlights variable using troff syntax
602 contents = self.highlight_block(block)
613 self.data += "\\&" + line + "\n"
615 self.data += line + "\n"
617 def out_doc(self, fname, name, args):
618 if not self.check_doc(name, args):
621 self.data += f'.TH "{self.modulename}" 9 "{self.modulename}" "{self.man_date}" "API Manual" LINUX' + "\n"
624 self.data += f'.SH "{section}"' + "\n"
625 self.output_highlight(text)
627 def out_function(self, fname, name, args):
630 self.data += f'.TH "{name}" 9 "{name}" "{self.man_date}" "Kernel Hacker\'s Manual" LINUX' + "\n"
632 self.data += ".SH NAME\n"
633 self.data += f"{name} \\- {args['purpose']}\n"
635 self.data += ".SH SYNOPSIS\n"
637 self.data += f'.B "{args["functiontype"]}" {name}' + "\n"
639 self.data += f'.B "{name}' + "\n"
652 self.data += f'".BI "{parenth}{function_pointer.group(1)}" " ") ({function_pointer.group(2)}){post}"' + "\n"
656 self.data += f'.BI "{parenth}{dtype}" "{post}"' + "\n"
661 self.data += ".SH ARGUMENTS\n"
666 self.data += f'.IP "{parameter}" 12' + "\n"
667 self.output_highlight(args.parameterdescs.get(parameter_name, ""))
670 self.data += f'.SH "{section.upper()}"' + "\n"
671 self.output_highlight(text)
673 def out_enum(self, fname, name, args):
674 self.data += f'.TH "{self.modulename}" 9 "enum {name}" "{self.man_date}" "API Manual" LINUX' + "\n"
676 self.data += ".SH NAME\n"
677 self.data += f"enum {name} \\- {args['purpose']}\n"
679 self.data += ".SH SYNOPSIS\n"
680 self.data += f"enum {name}" + " {\n"
684 self.data += f'.br\n.BI " {parameter}"' + "\n"
686 self.data += "\n};\n"
688 self.data += ", \n.br\n"
692 self.data += ".SH Constants\n"
696 self.data += f'.IP "{parameter}" 12' + "\n"
697 self.output_highlight(args.parameterdescs.get(parameter_name, ""))
700 self.data += f'.SH "{section}"' + "\n"
701 self.output_highlight(text)
703 def out_typedef(self, fname, name, args):
704 module = self.modulename
707 self.data += f'.TH "{module}" 9 "{name}" "{self.man_date}" "API Manual" LINUX' + "\n"
709 self.data += ".SH NAME\n"
710 self.data += f"typedef {name} \\- {purpose}\n"
713 self.data += f'.SH "{section}"' + "\n"
714 self.output_highlight(text)
716 def out_struct(self, fname, name, args):
717 module = self.modulename
721 self.data += f'.TH "{module}" 9 "{args.type} {name}" "{self.man_date}" "API Manual" LINUX' + "\n"
723 self.data += ".SH NAME\n"
724 self.data += f"{args.type} {name} \\- {purpose}\n"
730 self.data += ".SH SYNOPSIS\n"
731 self.data += f"{args.type} {name} " + "{" + "\n.br\n"
732 self.data += f'.BI "{declaration}\n' + "};\n.br\n\n"
734 self.data += ".SH Members\n"
744 self.data += f'.IP "{parameter}" 12' + "\n"
745 self.output_highlight(args.parameterdescs.get(parameter_name))
748 self.data += f'.SH "{section}"' + "\n"
749 self.output_highlight(text)