Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / man / man3 / Psh::Parser.3
CommitLineData
86530b38
AT
1.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "Psh::Parser 3"
132.TH Psh::Parser 3 "2003-01-02" "perl v5.8.0" "User Contributed Perl Documentation"
133.SH "NAME"
134.Vb 1
135\& Psh::Parser - Perl Shell Parser
136.Ve
137.SH "SYNOPSIS"
138.IX Header "SYNOPSIS"
139.Vb 1
140\& use Psh::Parser;
141.Ve
142.SH "DESCRIPTION"
143.IX Header "DESCRIPTION"
144.IP "\(bu" 4
145.Vb 3
146\& array decompose(regexp DELIMITER, string LINE, int PIECES,
147\& bool KEEP, hashref QUOTINGPAIRS,
148\& scalarref UNMATCHED_QUOTE)
149.Ve
150.Sp
151decompose is a cross between \fIsplit()\fR and
152Text::ParseWords::parse_line: it breaks \s-1LINE\s0 into at most \s-1PIECES\s0
153pieces separated by \s-1DELIMITER\s0, except that the hash given by the
154reference \s-1QUOTINGPAIRS\s0 specifies pairs of quotes (each key is an
155open quote which matches the corresponding value) which prevent
156splitting on internal instances of \s-1DELIMITER\s0, and negate the effect
157of other quotes. The quoting characters are retained if \s-1KEEP\s0 is
158true, discarded otherwise. Matches to the regexp \s-1METACHARACTERS\s0
159(outside quotes) are their own words, regardless of being delimited.
160Backslashes escape the meanings of characters that might match
161delimiters, quotes, or metacharacters. Initial unquoted empty
162pieces are suppressed.
163.Sp
164The regexp \s-1DELIMITER\s0 may contain a single back-reference parenthesis
165construct, in which case the matches to the parenthesized
166subexpression are also placed among the pieces, as with the
167built-in split. \s-1METACHARACTERS\s0 may not contain any parenthesized
168subexpression.
169.Sp
170decompose returns the array of pieces. If \s-1UNMATCHED_QUOTE\s0 is
171specified, 1 will be placed in the scalar referred to if \s-1LINE\s0
172contained an unmatched quote, 0 otherwise.
173.Sp
174If \s-1PIECES\s0 is undefined, as many pieces as
175necessary are used. \s-1KEEP\s0 defaults to 1. If \s-1QUOTINGPAIRS\s0 is
176undefined, {\*(L"'\*(R" => \*(L"'\*(R", \*(L"\e\*(R"\*(L" => \*(R"\e""} is used, i.e. single and
177double quotes are recognized. Supply a reference to an empty hash to
178have no quoting characters. \s-1METACHARACTERS\s0 defaults to a regexp that
179never matches.
180.Sp
181\&\s-1EXAMPLE:\s0 if \f(CW$line\fR is exactly
182.Sp
183echo fred(joe, \*(L"Happy Days\*(R", ' steve\*(L"jan ', \*(R"\e\*(L"Oh, no!\e\*(R"")
184.Sp
185then decompose(' ', \f(CW$line\fR) should break it at the
186following places marked by vertical bars:
187.Sp
188echo|fred(joe,|\*(L"Happy Days\*(R",|' steve\*(L"jan',|\*(R"\e\*(L"Oh, no!\e\*(R"")
189.IP "\(bu" 4
190.Vb 1
191\& int incomplete_expr(string LINE)
192.Ve
193.Sp
194Returns 2 if \s-1LINE\s0 has unmatched quotations. Returns \-1 if \s-1LINE\s0 has
195mismatched parens. Otherwise, returns 1 if \s-1LINE\s0 has an unmatched
196open brace, parenthesis, or square bracket and 0 in all other
197cases. Summing up, negative is a mismatch, 0 is all \s-1OK\s0, and positive
198is unfinished business. (Reasonably good, can be fooled with some
199effort. I therefore have deliberately not taken comments into
200account, which means you can use them to \*(L"unfool\*(R" this function, but
201also that unmatched stuff in comments \s-1WILL\s0 fool this function.)
202.IP "\(bu" 4
203.Vb 1
204\& string unquote( string word)
205.Ve
206.Sp
207Removes quotes from a word and backslash escapes
208.IP "\(bu" 4
209.Vb 1
210\& bool needs_double_quotes (string WORD)
211.Ve
212.Sp
213Returns true if \s-1WORD\s0 needs double quotes around it to be interpreted
214in a \*(L"shell\-like\*(R" manner when passed to eval. This covers barewords,
215expressions that just have \e\-escapes and \f(CW$variables\fR in them, and
216filenames.
217.SH "AUTHOR"
218.IX Header "AUTHOR"
219Various