MCPcopy Create free account
hub / github.com/AMReX-Codes/amrex / parser_ast_regvar

Function parser_ast_regvar

Src/Base/Parser/AMReX_Parser_Y.cpp:1809–1863  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1807}
1808
1809void
1810parser_ast_regvar (struct parser_node* node, char const* name, int i)
1811{
1812 switch (node->type)
1813 {
1814 case PARSER_NUMBER:
1815 break;
1816 case PARSER_SYMBOL:
1817 if (std::strcmp(name, ((struct parser_symbol*)node)->name) == 0) {
1818 ((struct parser_symbol*)node)->ip = i;
1819 }
1820 break;
1821 case PARSER_ADD:
1822 case PARSER_SUB:
1823 case PARSER_MUL:
1824 case PARSER_DIV:
1825 case PARSER_LIST:
1826 parser_ast_regvar(node->l, name, i);
1827 parser_ast_regvar(node->r, name, i);
1828 break;
1829 case PARSER_F1:
1830 parser_ast_regvar(((struct parser_f1*)node)->l, name, i);
1831 break;
1832 case PARSER_F2:
1833 parser_ast_regvar(((struct parser_f2*)node)->l, name, i);
1834 parser_ast_regvar(((struct parser_f2*)node)->r, name, i);
1835 break;
1836 case PARSER_F3:
1837 parser_ast_regvar(((struct parser_f3*)node)->n1, name, i);
1838 parser_ast_regvar(((struct parser_f3*)node)->n2, name, i);
1839 parser_ast_regvar(((struct parser_f3*)node)->n3, name, i);
1840 break;
1841 case PARSER_USRF1:
1842 parser_ast_regvar(((struct parser_usrf1*)node)->l, name, i);
1843 break;
1844 case PARSER_USRF2:
1845 parser_ast_regvar(((struct parser_usrf2*)node)->l, name, i);
1846 parser_ast_regvar(((struct parser_usrf2*)node)->r, name, i);
1847 break;
1848 case PARSER_USRFN:
1849 {
1850 parser_ast_regvar(((struct parser_usrfn*)node)->n1, name, i);
1851 short argc = ((struct parser_usrfn*)node)->argc;
1852 for (short iarg = 0; iarg < argc-1; ++iarg) {
1853 parser_ast_regvar(((struct parser_usrfn*)node)->others[iarg], name, i);
1854 }
1855 break;
1856 }
1857 case PARSER_ASSIGN:
1858 parser_ast_regvar(((struct parser_assign*)node)->v, name, i);
1859 break;
1860 default:
1861 amrex::Abort("parser_ast_regvar: unknown node type "+std::to_string(node->type));
1862 }
1863}
1864
1865void parser_ast_setconst (struct parser_node* node, char const* name, double c)
1866{

Callers 1

parser_regvarFunction · 0.85

Calls 1

AbortFunction · 0.85

Tested by

no test coverage detected