File: parserdiscard.c

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

void parser_discard(register Parser *pp, SymbolType type,
                    char const *fun, char const *msg)
{
    register char *arg;

    parser_push_fun(fun);

    arg = parser_parlist(pp, COLLECT_SET);

    if (hashmap_erase(&symtab, arg, type) == SUCCESS)
    {
        if (message_show(MSG_NOTICE))
            message("%s: `%s' discarded", parser_fun(), arg);
    }
    else if (message_show(MSG_WARNING))
        message("%s: no %s`%s'", parser_fun(), msg, arg);

    parser_pop_fun();
    free(arg);
}