version 1.21, 2019/12/12 15:01:54 |
version 1.22, 2020/01/27 08:23:42 |
|
|
free($2); |
free($2); |
} |
} |
|
|
statement : condition |
statement : /* empty */ |
{ |
{ |
|
$$ = xmalloc (sizeof *$$); |
|
TAILQ_INIT($$); |
|
} |
|
| condition |
|
{ |
struct cmd_parse_state *ps = &parse_state; |
struct cmd_parse_state *ps = &parse_state; |
|
|
if (ps->scope == NULL || ps->scope->flag) |
if (ps->scope == NULL || ps->scope->flag) |
|
|
cmd_parse_free_commands($1); |
cmd_parse_free_commands($1); |
} |
} |
} |
} |
| assignment |
|
{ |
|
$$ = xmalloc (sizeof *$$); |
|
TAILQ_INIT($$); |
|
} |
|
| commands |
| commands |
{ |
{ |
struct cmd_parse_state *ps = &parse_state; |
struct cmd_parse_state *ps = &parse_state; |
|
|
free($1); |
free($1); |
} |
} |
|
|
assignment : /* empty */ |
optional_assignment : /* empty */ |
| EQUALS |
| assignment |
|
|
|
assignment : EQUALS |
{ |
{ |
struct cmd_parse_state *ps = &parse_state; |
struct cmd_parse_state *ps = &parse_state; |
int flags = ps->input->flags; |
int flags = ps->input->flags; |
|
|
$$ = $1; |
$$ = $1; |
} |
} |
|
|
command : assignment TOKEN |
command : assignment |
{ |
{ |
struct cmd_parse_state *ps = &parse_state; |
struct cmd_parse_state *ps = &parse_state; |
|
|
$$ = xcalloc(1, sizeof *$$); |
$$ = xcalloc(1, sizeof *$$); |
|
$$->name = NULL; |
|
$$->line = ps->input->line; |
|
} |
|
| optional_assignment TOKEN |
|
{ |
|
struct cmd_parse_state *ps = &parse_state; |
|
|
|
$$ = xcalloc(1, sizeof *$$); |
$$->name = $2; |
$$->name = $2; |
$$->line = ps->input->line; |
$$->line = ps->input->line; |
|
|
} |
} |
| assignment TOKEN arguments |
| optional_assignment TOKEN arguments |
{ |
{ |
struct cmd_parse_state *ps = &parse_state; |
struct cmd_parse_state *ps = &parse_state; |
|
|
|
|
* command list. |
* command list. |
*/ |
*/ |
TAILQ_FOREACH_SAFE(cmd, cmds, entry, next) { |
TAILQ_FOREACH_SAFE(cmd, cmds, entry, next) { |
|
if (cmd->name == NULL) |
|
continue; |
alias = cmd_get_alias(cmd->name); |
alias = cmd_get_alias(cmd->name); |
if (alias == NULL) |
if (alias == NULL) |
continue; |
continue; |
|
|
*/ |
*/ |
result = cmd_list_new(); |
result = cmd_list_new(); |
TAILQ_FOREACH(cmd, cmds, entry) { |
TAILQ_FOREACH(cmd, cmds, entry) { |
|
if (cmd->name == NULL) |
|
continue; |
log_debug("%s: %u %s", __func__, cmd->line, cmd->name); |
log_debug("%s: %u %s", __func__, cmd->line, cmd->name); |
cmd_log_argv(cmd->argc, cmd->argv, __func__); |
cmd_log_argv(cmd->argc, cmd->argv, __func__); |
|
|