| 1579 | // |
| 1580 | |
| 1581 | static gpre_nod* par_udf( gpre_req* request, USHORT type, gpre_fld* field) |
| 1582 | { |
| 1583 | if (!request) |
| 1584 | return NULL; |
| 1585 | |
| 1586 | // Check for user defined functions |
| 1587 | |
| 1588 | for (gpre_sym* symbol = gpreGlob.token_global.tok_symbol; symbol; symbol = symbol->sym_homonym) |
| 1589 | { |
| 1590 | udf* new_udf; |
| 1591 | if (symbol->sym_type == SYM_udf && (new_udf = (udf*) symbol->sym_object) && |
| 1592 | // request->req_database == new_udf->udf_database && |
| 1593 | new_udf->udf_type == type) |
| 1594 | { |
| 1595 | gpre_nod* node = MSC_node(nod_udf, 2); |
| 1596 | node->nod_count = 1; |
| 1597 | node->nod_arg[1] = (gpre_nod*) new_udf; |
| 1598 | PAR_get_token(); |
| 1599 | if (!MSC_match(KW_LEFT_PAREN)) |
| 1600 | EXP_left_paren(0); |
| 1601 | gpre_lls* stack = NULL; |
| 1602 | for (;;) |
| 1603 | { |
| 1604 | MSC_push(par_value(request, field), &stack); |
| 1605 | if (!MSC_match(KW_COMMA)) |
| 1606 | break; |
| 1607 | } |
| 1608 | EXP_match_paren(); |
| 1609 | node->nod_arg[0] = make_list(stack); |
| 1610 | return node; |
| 1611 | } |
| 1612 | } |
| 1613 | |
| 1614 | return NULL; |
| 1615 | } |
| 1616 | |
| 1617 | |
| 1618 | //____________________________________________________________ |
no test coverage detected