File: parserpop.c

package info (click to toggle)
yodl 4.05.02-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,724 kB
  • sloc: ansic: 7,803; perl: 683; cpp: 570; sh: 411; xml: 190; makefile: 163
file content (20 lines) | stat: -rw-r--r-- 503 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "parser.ih"

void parser_pop(register Parser *pp, SymbolType type,
                                        char const *fun, char const *msg)
{
    char *name;
    register HashItem *item;

    parser_push_fun(fun);

    name = parser_name_parlist(pp, false);
    item = hashmap_find(parser.d_symtab_ptr, name, type);

    if (hashitem_pop(item) == FAILED)
        if (message_show(MSG_ERR))
            message("%s: Can't pop %s `%s'", fun, msg, name);

    parser_pop_fun();
    free(name);
}