Scan Number SYNOPSYS [30] Number ::= Digits ('.' Digits?)? | '.' Digits) or in other words: [30] Number ::= Digits | Digits '.' | Digits '.' Digits | '.' Digits Note: the last rule is not supported yet, as it is in conflict with abbreviated step. 1 + .123 does not work, 1 + 0.123 does. Perhaps it is better
| 2359 | 0 - failure |
| 2360 | */ |
| 2361 | static int my_xpath_parse_Number(MY_XPATH *xpath) |
| 2362 | { |
| 2363 | const char *beg; |
| 2364 | if (!my_xpath_parse_term(xpath, MY_XPATH_LEX_DIGITS)) |
| 2365 | return 0; |
| 2366 | beg= xpath->prevtok.beg; |
| 2367 | if (!my_xpath_parse_term(xpath, MY_XPATH_LEX_DOT)) |
| 2368 | { |
| 2369 | xpath->item= new Item_int(xpath->prevtok.beg, |
| 2370 | xpath->prevtok.end - xpath->prevtok.beg); |
| 2371 | return 1; |
| 2372 | } |
| 2373 | my_xpath_parse_term(xpath, MY_XPATH_LEX_DIGITS); |
| 2374 | |
| 2375 | xpath->item= new Item_float(beg, xpath->prevtok.end - beg); |
| 2376 | return 1; |
| 2377 | } |
| 2378 | |
| 2379 | |
| 2380 | /* |
no test coverage detected