diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2012-06-24 22:28:35 +0000 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2012-06-24 22:28:35 +0000 |
commit | 3950ffe2a485479f6561c27364d3d7df5a21d124 (patch) | |
tree | 468c6e14449d1b1e279222ec32f676b0311917d2 /src/lib/libast/man/streval.3 | |
download | ksh-upstream.tar.gz |
Imported Upstream version 93u+upstream
Diffstat (limited to 'src/lib/libast/man/streval.3')
-rw-r--r-- | src/lib/libast/man/streval.3 | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/src/lib/libast/man/streval.3 b/src/lib/libast/man/streval.3 new file mode 100644 index 0000000..2b491c8 --- /dev/null +++ b/src/lib/libast/man/streval.3 @@ -0,0 +1,83 @@ +.fp 5 CW +.de Af +.ds ;G \\*(;G\\f\\$1\\$3\\f\\$2 +.if !\\$4 .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9" +.. +.de aF +.ie \\$3 .ft \\$1 +.el \{\ +.ds ;G \& +.nr ;G \\n(.f +.Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9" +\\*(;G +.ft \\n(;G \} +.. +.de L +.aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" +.. +.de LR +.aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" +.. +.de RL +.aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" +.. +.de EX \" start example +.ta 1i 2i 3i 4i 5i 6i +.PP +.RS +.PD 0 +.ft 5 +.nf +.. +.de EE \" end example +.fi +.ft +.PD +.RE +.PP +.. +.TH STREVAL 3 +.SH NAME +streval \- long integer arithmetic expression evaluator +.SH SYNOPSIS +.L "long streval(char* s, char** e, long (*conv)(char* cs, char** ce))" +.SH DESCRIPTION +.I streval +evaluates the long integer arithmetic expression in the nul-terminated string +.I s +and returns the result. +If +.I e +is not 0 then +.I *e +is set to point to the first unknown character in the expression. +.PP +If +.I conv +is not 0 then it is called when an unknown token is encountered in +.IR s . +.I cs +points to the beginning of the unknown token. +The return value is the long integer value of the unknown token and +.I ce +must be set to point to the first character after the unknown token. +If an expression syntax error is encountered the +.I conv +is called with +.I cs +set to 0 and +.I *ce +pointing to the error message text. +.PP +In addition to the normal C expressions and integer constant styles, +numbers in any base +.I b +<= 2 <=36 +may be represented as +.IR b # nnnn , +where the extra digits in +.I nnnn +are taken from +.BR [A-Z] . +.SH "SEE ALSO" +strtol(3) |