da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.fp 5 CW
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de Af
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ds ;G \\*(;G\\f\\$1\\$3\\f\\$2
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.if !\\$4 .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de aF
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ie \\$3 .ft \\$1
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.el \{\
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ds ;G \&
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.nr ;G \\n(.f
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin\\*(;G
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ft \\n(;G \}
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de L
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de LR
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de RL
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de EX \" start example
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ta 1i 2i 3i 4i 5i 6i
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.RS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PD 0
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ft 5
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.nf
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de EE \" end example
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.fi
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ft
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PD
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.RE
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.TH STREVAL 3
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH NAME
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinstreval \- long integer arithmetic expression evaluator
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH SYNOPSIS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L "long streval(char* s, char** e, long (*conv)(char* cs, char** ce))"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH DESCRIPTION
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I streval
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinevaluates the long integer arithmetic expression in the nul-terminated string
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I s
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinand returns the result.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinIf
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I e
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis not 0 then
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I *e
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis set to point to the first unknown character in the expression.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinIf
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I conv
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis not 0 then it is called when an unknown token is encountered in
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.IR s .
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I cs
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinpoints to the beginning of the unknown token.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThe return value is the long integer value of the unknown token and
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I ce
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinmust be set to point to the first character after the unknown token.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinIf an expression syntax error is encountered the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I conv
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis called with
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I cs
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinset to 0 and
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I *ce
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinpointing to the error message text.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinIn addition to the normal C expressions and integer constant styles,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinnumbers in any base
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I b
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin<= 2 <=36
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinmay be represented as
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.IR b # nnnn ,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinwhere the extra digits in
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I nnnn
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinare taken from
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.BR [A-Z] .
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH "SEE ALSO"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinstrtol(3)