Next: , Up: Common Patterns   [Contents][Index]


A.4.1 Numbers

C99 decimal constant

([[:digit:]]{-}[0])[[:digit:]]*

C99 hexadecimal constant

0[xX][[:xdigit:]]+

C99 octal constant

0[01234567]*

C99 floating point constant
 {dseq}      ([[:digit:]]+)
 {dseq_opt}  ([[:digit:]]*)
 {frac}      (({dseq_opt}"."{dseq})|{dseq}".")
 {exp}       ([eE][+-]?{dseq})
 {exp_opt}   ({exp}?)
 {fsuff}     [flFL]
 {fsuff_opt} ({fsuff}?)
 {hpref}     (0[xX])
 {hdseq}     ([[:xdigit:]]+)
 {hdseq_opt} ([[:xdigit:]]*)
 {hfrac}     (({hdseq_opt}"."{hdseq})|({hdseq}"."))
 {bexp}      ([pP][+-]?{dseq})
 {dfc}       (({frac}{exp_opt}{fsuff_opt})|({dseq}{exp}{fsuff_opt}))
 {hfc}       (({hpref}{hfrac}{bexp}{fsuff_opt})|({hpref}{hdseq}{bexp}{fsuff_opt}))

 {c99_floating_point_constant}  ({dfc}|{hfc})

See C99 section 6.4.4.2 for the gory details.