| 3814 | // |
| 3815 | |
| 3816 | static gpre_ctx* resolve_asterisk( const tok* q_token, gpre_rse* selection) |
| 3817 | { |
| 3818 | for (int i = 0; i < selection->rse_count; i++) |
| 3819 | { |
| 3820 | gpre_ctx* context = selection->rse_context[i]; |
| 3821 | gpre_rse* rs_stream = context->ctx_stream; |
| 3822 | if (rs_stream) |
| 3823 | { |
| 3824 | if ((context = resolve_asterisk(q_token, rs_stream))) |
| 3825 | return context; |
| 3826 | continue; |
| 3827 | } |
| 3828 | gpre_sym* symbol = HSH_lookup(q_token->tok_string); |
| 3829 | for (; symbol; symbol = symbol->sym_homonym) |
| 3830 | { |
| 3831 | if (symbol->sym_type == SYM_relation && |
| 3832 | (gpre_rel*) symbol->sym_object == context->ctx_relation) |
| 3833 | { |
| 3834 | return context; |
| 3835 | } |
| 3836 | if (symbol->sym_type == SYM_procedure && |
| 3837 | (gpre_prc*) symbol->sym_object == context->ctx_procedure) |
| 3838 | { |
| 3839 | return context; |
| 3840 | } |
| 3841 | if (symbol->sym_type == SYM_context && (gpre_ctx*) symbol->sym_object == context) |
| 3842 | { |
| 3843 | return context; |
| 3844 | } |
| 3845 | } |
| 3846 | } |
| 3847 | |
| 3848 | return NULL; |
| 3849 | } |
| 3850 | |
| 3851 | |
| 3852 | //____________________________________________________________ |
no test coverage detected