ce85ec7fea0e7a419a6ea05bfd61cca130a61dbb
[catagits/Gitalist.git] / local-lib5 / man / man3 / PPI::Statement::Compound.3pm
1 .\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.10)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings.  \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
21 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 .    ds -- \(*W-
28 .    ds PI pi
29 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
31 .    ds L" ""
32 .    ds R" ""
33 .    ds C` ""
34 .    ds C' ""
35 'br\}
36 .el\{\
37 .    ds -- \|\(em\|
38 .    ds PI \(*p
39 .    ds L" ``
40 .    ds R" ''
41 'br\}
42 .\"
43 .\" Escape single quotes in literal strings from groff's Unicode transform.
44 .ie \n(.g .ds Aq \(aq
45 .el       .ds Aq '
46 .\"
47 .\" If the F register is turned on, we'll generate index entries on stderr for
48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49 .\" entries marked with X<> in POD.  Of course, you'll have to process the
50 .\" output yourself in some meaningful fashion.
51 .ie \nF \{\
52 .    de IX
53 .    tm Index:\\$1\t\\n%\t"\\$2"
54 ..
55 .    nr % 0
56 .    rr F
57 .\}
58 .el \{\
59 .    de IX
60 ..
61 .\}
62 .\"
63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
65 .    \" fudge factors for nroff and troff
66 .if n \{\
67 .    ds #H 0
68 .    ds #V .8m
69 .    ds #F .3m
70 .    ds #[ \f1
71 .    ds #] \fP
72 .\}
73 .if t \{\
74 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75 .    ds #V .6m
76 .    ds #F 0
77 .    ds #[ \&
78 .    ds #] \&
79 .\}
80 .    \" simple accents for nroff and troff
81 .if n \{\
82 .    ds ' \&
83 .    ds ` \&
84 .    ds ^ \&
85 .    ds , \&
86 .    ds ~ ~
87 .    ds /
88 .\}
89 .if t \{\
90 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
96 .\}
97 .    \" troff and (daisy-wheel) nroff accents
98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105 .ds ae a\h'-(\w'a'u*4/10)'e
106 .ds Ae A\h'-(\w'A'u*4/10)'E
107 .    \" corrections for vroff
108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110 .    \" for low resolution devices (crt and lpr)
111 .if \n(.H>23 .if \n(.V>19 \
112 \{\
113 .    ds : e
114 .    ds 8 ss
115 .    ds o a
116 .    ds d- d\h'-1'\(ga
117 .    ds D- D\h'-1'\(hy
118 .    ds th \o'bp'
119 .    ds Th \o'LP'
120 .    ds ae ae
121 .    ds Ae AE
122 .\}
123 .rm #[ #] #H #V #F C
124 .\" ========================================================================
125 .\"
126 .IX Title "PPI::Statement::Compound 3"
127 .TH PPI::Statement::Compound 3 "2009-08-08" "perl v5.8.7" "User Contributed Perl Documentation"
128 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
129 .\" way too many mistakes in technical documents.
130 .if n .ad l
131 .nh
132 .SH "NAME"
133 PPI::Statement::Compound \- Describes all compound statements
134 .SH "SYNOPSIS"
135 .IX Header "SYNOPSIS"
136 .Vb 6
137 \&  # A compound if statement
138 \&  if ( foo ) {
139 \&      bar();
140 \&  } else {
141 \&      baz();
142 \&  }
143 \&
144 \&  # A compound loop statement
145 \&  foreach ( @list ) {
146 \&      bar($_);
147 \&  }
148 .Ve
149 .SH "INHERITANCE"
150 .IX Header "INHERITANCE"
151 .Vb 4
152 \&  PPI::Statement::Compound
153 \&  isa PPI::Statement
154 \&      isa PPI::Node
155 \&          isa PPI::Element
156 .Ve
157 .SH "DESCRIPTION"
158 .IX Header "DESCRIPTION"
159 \&\f(CW\*(C`PPI::Statement::Compound\*(C'\fR objects are used to describe all current forms
160 of compound statements, as described in perlsyn.
161 .PP
162 This covers blocks using \f(CW\*(C`if\*(C'\fR, \f(CW\*(C`unless\*(C'\fR, \f(CW\*(C`for\*(C'\fR, \f(CW\*(C`foreach\*(C'\fR, \f(CW\*(C`while\*(C'\fR,
163 and \f(CW\*(C`continue\*(C'\fR. Please note this does \fBnot\fR cover \*(L"simple\*(R" statements
164 with trailing conditions. Please note also that \*(L"do\*(R" is also not part of
165 a compound statement.
166 .PP
167 .Vb 2
168 \&  # This is NOT a compound statement
169 \&  my $foo = 1 if $condition;
170 \&
171 \&  # This is also not a compound statement
172 \&  do { ... } until $condition;
173 .Ve
174 .SH "METHODS"
175 .IX Header "METHODS"
176 \&\f(CW\*(C`PPI::Statement::Compound\*(C'\fR has a number of methods in addition to the
177 standard PPI::Statement, PPI::Node and PPI::Element methods.
178 .SS "type"
179 .IX Subsection "type"
180 The \f(CW\*(C`type\*(C'\fR method returns the syntactic type of the compound statement.
181 .PP
182 There are four basic compound statement types.
183 .PP
184 The \f(CW\*(Aqif\*(Aq\fR type includes all variations of the if and unless statements,
185 including any \f(CW\*(Aqelsif\*(Aq\fR or \f(CW\*(Aqelse\*(Aq\fR parts of the compound statement.
186 .PP
187 The \f(CW\*(Aqwhile\*(Aq\fR type describes the standard while statement, but again does
188 \&\fBnot\fR describes simple statements with a trailing while.
189 .PP
190 The \f(CW\*(Aqfor\*(Aq\fR type covers the C\-style for loops, regardless of whether they
191 were declared using \f(CW\*(Aqfor\*(Aq\fR or \f(CW\*(Aqforeach\*(Aq\fR.
192 .PP
193 The \f(CW\*(Aqforeach\*(Aq\fR type covers loops that iterate over collections,
194 regardless of whether they were declared using \f(CW\*(Aqfor\*(Aq\fR or \f(CW\*(Aqforeach\*(Aq\fR.
195 .PP
196 All of the compounds are a variation on one of these four.
197 .PP
198 Returns the simple string \f(CW\*(Aqif\*(Aq\fR, \f(CW\*(Aqfor\*(Aq\fR, \f(CW\*(Aqforeach\*(Aq\fR or \f(CW\*(Aqwhile\*(Aq\fR,
199 or \f(CW\*(C`undef\*(C'\fR if the type cannot be determined.
200 .SH "TO DO"
201 .IX Header "TO DO"
202 \&\- Write unit tests for this package
203 .SH "SUPPORT"
204 .IX Header "SUPPORT"
205 See the support section in the main module.
206 .SH "AUTHOR"
207 .IX Header "AUTHOR"
208 Adam Kennedy <adamk@cpan.org>
209 .SH "COPYRIGHT"
210 .IX Header "COPYRIGHT"
211 Copyright 2001 \- 2009 Adam Kennedy.
212 .PP
213 This program is free software; you can redistribute
214 it and/or modify it under the same terms as Perl itself.
215 .PP
216 The full text of the license can be found in the
217 \&\s-1LICENSE\s0 file included with this module.