MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / par_derived_from

Function par_derived_from

src/gpre/par.cpp:1685–1719  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1683//
1684
1685static act* par_derived_from()
1686{
1687 if (gpreGlob.sw_language != lang_c && !isLangCpp(gpreGlob.sw_language)) {
1688 return (NULL);
1689 }
1690
1691 act* action = MSC_action(0, ACT_basedon);
1692 bas* based_on = (bas*) MSC_alloc(BAS_LEN);
1693 action->act_object = (ref*) based_on;
1694
1695 gpre_rel* relation = EXP_relation();
1696 if (!MSC_match(KW_DOT))
1697 CPR_s_error("dot in qualified field reference");
1698
1699 SQL_resolve_identifier("<Field Name>", NULL, NAME_SIZE);
1700
1701 gpre_fld* field = MET_field(relation, gpreGlob.token_global.tok_string);
1702 if (!field)
1703 {
1704 TEXT s[ERROR_LENGTH];
1705 fb_utils::snprintf(s, sizeof(s), "undefined field %s", gpreGlob.token_global.tok_string);
1706 PAR_error(s);
1707 }
1708 PAR_get_token();
1709 based_on->bas_field = field;
1710
1711 based_on->bas_variables = (gpre_lls*) MSC_alloc(LLS_LEN);
1712 based_on->bas_variables->lls_next = NULL;
1713 based_on->bas_variables->lls_object = (gpre_nod*) PAR_native_value(false, false);
1714
1715 strcpy(based_on->bas_terminator, gpreGlob.token_global.tok_string);
1716 PAR_get_token();
1717
1718 return action;
1719}
1720
1721
1722//____________________________________________________________

Callers 1

PAR_actionFunction · 0.85

Calls 12

isLangCppFunction · 0.85
MSC_actionFunction · 0.85
MSC_allocFunction · 0.85
EXP_relationFunction · 0.85
MSC_matchFunction · 0.85
CPR_s_errorFunction · 0.85
SQL_resolve_identifierFunction · 0.85
MET_fieldFunction · 0.85
PAR_get_tokenFunction · 0.85
PAR_native_valueFunction · 0.85
PAR_errorFunction · 0.70
snprintfFunction · 0.50

Tested by

no test coverage detected