.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Parse::Man 3pm" .TH Parse::Man 3pm "2023-10-24" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" "Parse::Man" \- parse nroff\-formatted manpages .SH "DESCRIPTION" .IX Header "DESCRIPTION" This abstract subclass of Parser::MGC recognises \fInroff\fR grammar from a file or string value. It invokes methods when various \fInroff\fR directives are encountered. It is intended that this class be used as a base class, with methods provided to handle the various directives and formatting options. Typically a subclass will store intermediate results in a data structure, building it as directed by these method invocations. .SH "TEXT CHUNK FORMATTING METHOD" .IX Header "TEXT CHUNK FORMATTING METHOD" The following method is used to handle formatted text. Each call is passed a plain string value from the input content. .SS "chunk" .IX Subsection "chunk" .Vb 1 \& $parser\->chunk( $text, %opts ) .Ve .PP The \f(CW%opts\fR hash contains the following options: .IP "font => \s-1STRING\s0" 4 .IX Item "font => STRING" The name of the current font (\f(CW\*(C`R\*(C'\fR, \f(CW\*(C`B\*(C'\fR, etc..) .IP "size => \s-1INT\s0" 4 .IX Item "size => INT" The current text size, relative to a paragraph base of 0. .PP Other font requests that are found in \f(CW\*(C`\efX\*(C'\fR or \f(CW\*(C`\ef(AB\*(C'\fR requests are handled by similarly-named methods. .SH "PARAGRAPH HANDLING METHODS" .IX Header "PARAGRAPH HANDLING METHODS" The following methods are used to form paragraphs out of formatted text chunks. Their return values are ignored. .SS "para_TH" .IX Subsection "para_TH" .Vb 1 \& $parser\->para_TH( $name, $section ) .Ve .PP Handles the \f(CW\*(C`.TH\*(C'\fR paragraph which gives the page title and section number. .SS "para_SH" .IX Subsection "para_SH" .Vb 1 \& $parser\->para_SH( $title ) .Ve .PP Handles the \f(CW\*(C`.SH\*(C'\fR paragraph, which gives a section header. .SS "para_SS" .IX Subsection "para_SS" .Vb 1 \& $parser\->para_SS( $title ) .Ve .PP Handles the \f(CW\*(C`.SS\*(C'\fR paragraph, which gives a sub-section header. .SS "para_TP" .IX Subsection "para_TP" .Vb 1 \& $parser\->para_TP( $opts ) .Ve .PP Handles a \f(CW\*(C`.TP\*(C'\fR paragraph, which gives a term definition. .SS "para_IP" .IX Subsection "para_IP" .Vb 1 \& $parser\->para_IP( $opts ) .Ve .PP Handles a \f(CW\*(C`.IP\*(C'\fR paragraph, which is indented like the definition part of a \&\f(CW\*(C`.TP\*(C'\fR paragraph. .SS "para_P" .IX Subsection "para_P" .Vb 1 \& $parser\->para_P( $opts ) .Ve .PP Handles the \f(CW\*(C`.P\*(C'\fR, \f(CW\*(C`.PP\*(C'\fR or \f(CW\*(C`.LP\*(C'\fR paragraphs, which are all synonyms for a plain paragraph content. .SS "para_EX" .IX Subsection "para_EX" .Vb 1 \& $parser\->para_EX( $opts ) .Ve .PP Handles the \f(CW\*(C`.EX\*(C'\fR paragraph, which is example text; intended to be rendered in a fixed-width font without filling. .SH "AUTHOR" .IX Header "AUTHOR" Paul Evans