kaction.h 658 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /** @file action.h
  2. *
  3. * @brief Klish scheme's "action" entry
  4. */
  5. #ifndef _klish_kaction_h
  6. #define _klish_kaction_h
  7. #include <klish/kcommand.h>
  8. typedef struct kaction_s kaction_t;
  9. typedef struct kaction_info_s {
  10. char *sym;
  11. } kaction_info_t;
  12. typedef enum {
  13. KACTION_COND_FAIL,
  14. KACTION_COND_SUCCESS,
  15. KACTION_COND_ALWAYS
  16. } kaction_chain_e;
  17. C_DECL_BEGIN
  18. kaction_t *kaction_new(kaction_info_t info);
  19. kaction_t *kaction_new_static(kaction_info_t info);
  20. void kaction_free(kaction_t *action);
  21. const char *kaction_name(const kaction_t *action);
  22. bool_t kaction_add_command(kaction_t *action, kcommand_t *command);
  23. C_DECL_END
  24. #endif // _klish_kaction_h