#include <ecoli_log.h>
#include <ecoli_test.h>
#include <ecoli_strvec.h>
+#include <ecoli_node.h>
+#include <ecoli_parsed.h>
+#include <ecoli_completed.h>
#include <ecoli_node_expr.h>
#include <ecoli_node_str.h>
#include <ecoli_node_or.h>
void *result;
int ret;
+ /* XXX the expr parser can be moved in the node init */
+
/* build the expression parser */
ret = -ENOMEM;
- expr = ec_node_new("expr", "expr");
+ expr = ec_node("expr", "expr");
if (expr == NULL)
goto fail;
ret = ec_node_expr_set_val_node(expr, ec_node_re(NULL, "[a-zA-Z0-9]+"));
goto fail;
ret = -ENOMEM;
- cmd = ec_node_new("seq", NULL);
+ cmd = ec_node("seq", NULL);
if (cmd == NULL)
goto fail;
goto fail;
}
ec_parsed_free(p);
+ p = NULL;
ec_node_dump(stdout, cmd);
ec_node_free(node->expr);
return 0;
fail:
+ ec_parsed_free(p);
ec_node_free(expr);
ec_node_free(lex);
ec_node_free(cmd);
struct ec_node *gen_node = NULL;
struct ec_node_cmd *node = NULL;
- gen_node = __ec_node_new(&ec_node_cmd_type, id);
+ gen_node = __ec_node(&ec_node_cmd_type, id);
if (gen_node == NULL)
goto fail;
ret |= EC_TEST_CHECK_PARSE(node, -1, "foo");
ec_node_free(node);
+ node = EC_NODE_CMD(NULL, "good morning bob|bobby|michael [count]",
+ ec_node_int("count", 0, 10, 10));
+ if (node == NULL) {
+ ec_log(EC_LOG_ERR, "cannot create node\n");
+ return -1;
+ }
+ ret |= EC_TEST_CHECK_PARSE(node, 4, "good", "morning", "bob", "1");
+ ec_node_free(node);
+
// XXX completion
return ret;