22 lines
471 B
C
22 lines
471 B
C
|
|
#include "../syntax.h"
|
||
|
|
|
||
|
|
bool peek_keyword_expr(struct bshell_parse_ctx *ctx)
|
||
|
|
{
|
||
|
|
return peek_unknown_keyword(ctx) != BSHELL_KW_NONE;
|
||
|
|
}
|
||
|
|
|
||
|
|
bool parse_keyword_expr(struct bshell_parse_ctx *ctx, struct bshell_ast_node **out)
|
||
|
|
{
|
||
|
|
switch (peek_unknown_keyword(ctx)) {
|
||
|
|
case BSHELL_KW_NONE:
|
||
|
|
return false;
|
||
|
|
case BSHELL_KW_IF:
|
||
|
|
return parse_if(ctx, out);
|
||
|
|
case BSHELL_KW_FUNC:
|
||
|
|
return parse_func(ctx, out);
|
||
|
|
default:
|
||
|
|
ctx->p_status = BSHELL_ERR_BAD_SYNTAX;
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
}
|