X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=src%2Fparser%2Fanalyzer.c;h=867af5211dbbbc5f36174236584c06fbb00e571a;hp=7193fea90bf4281eea185cc862c8014b6108430b;hb=195f73cdb0c1087bf3f3a82267204fca9eb3104c;hpb=a2dd816b36b96cbbb1df882912f43e60ee7879ff diff --git a/src/parser/analyzer.c b/src/parser/analyzer.c index 7193fea..867af52 100644 --- a/src/parser/analyzer.c +++ b/src/parser/analyzer.c @@ -396,5 +396,35 @@ sdb_parser_analyze(sdb_ast_node_t *node, sdb_strbuf_t *errbuf) return -1; } /* sdb_parser_analyze */ +int +sdb_parser_analyze_conditional(sdb_ast_node_t *node, sdb_strbuf_t *errbuf) +{ + if (! node) { + sdb_strbuf_sprintf(errbuf, "Empty conditional node"); + return -1; + } + if (! SDB_AST_IS_LOGICAL(node)) { + sdb_strbuf_sprintf(errbuf, "Not a conditional node (got %s)", + SDB_AST_TYPE_TO_STRING(node)); + return -1; + } + return analyze_node(-1, node, errbuf); +} /* sdb_parser_analyze_conditional */ + +int +sdb_parser_analyze_arith(sdb_ast_node_t *node, sdb_strbuf_t *errbuf) +{ + if (! node) { + sdb_strbuf_sprintf(errbuf, "Empty arithmetic node"); + return -1; + } + if (! SDB_AST_IS_ARITHMETIC(node)) { + sdb_strbuf_sprintf(errbuf, "Not an arithmetic node (got %s)", + SDB_AST_TYPE_TO_STRING(node)); + return -1; + } + return analyze_node(-1, node, errbuf); +} /* sdb_parser_analyze_arith */ + /* vim: set tw=78 sw=4 ts=4 noexpandtab : */