finsh_node.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #ifndef __FINSH_NODE_H__
  2. #define __FINSH_NODE_H__
  3. #include <finsh.h>
  4. #define FINSH_NODE_UNKNOWN 0
  5. #define FINSH_NODE_ID 1
  6. #define FINSH_NODE_VALUE_CHAR 2
  7. #define FINSH_NODE_VALUE_INT 3
  8. #define FINSH_NODE_VALUE_LONG 4
  9. #define FINSH_NODE_VALUE_STRING 5
  10. #define FINSH_NODE_VALUE_NULL 6
  11. #define FINSH_NODE_SYS_ADD 7
  12. #define FINSH_NODE_SYS_SUB 8
  13. #define FINSH_NODE_SYS_MUL 9
  14. #define FINSH_NODE_SYS_DIV 10
  15. #define FINSH_NODE_SYS_MOD 11
  16. #define FINSH_NODE_SYS_AND 12
  17. #define FINSH_NODE_SYS_OR 13
  18. #define FINSH_NODE_SYS_XOR 14
  19. #define FINSH_NODE_SYS_BITWISE 15
  20. #define FINSH_NODE_SYS_SHL 16
  21. #define FINSH_NODE_SYS_SHR 17
  22. #define FINSH_NODE_SYS_FUNC 18
  23. #define FINSH_NODE_SYS_ASSIGN 19
  24. #define FINSH_NODE_SYS_CAST 20
  25. #define FINSH_NODE_SYS_PREINC 21
  26. #define FINSH_NODE_SYS_PREDEC 22
  27. #define FINSH_NODE_SYS_INC 23
  28. #define FINSH_NODE_SYS_DEC 24
  29. #define FINSH_NODE_SYS_GETVALUE 25
  30. #define FINSH_NODE_SYS_GETADDR 26
  31. #define FINSH_NODE_SYS_NULL 27
  32. #define FINSH_DATA_TYPE_VOID 0x00
  33. #define FINSH_DATA_TYPE_BYTE 0x01
  34. #define FINSH_DATA_TYPE_WORD 0x02
  35. #define FINSH_DATA_TYPE_DWORD 0x03
  36. #define FINSH_DATA_TYPE_PTR 0x10
  37. #define FINSH_NODE_VALUE 0
  38. #define FINSH_NODE_ADDRESS 1
  39. #define FINSH_NODE_FUNCTION 2
  40. int finsh_node_init(void);
  41. struct finsh_node* finsh_node_allocate(u_char type);
  42. struct finsh_node* finsh_node_new_id(char* id);
  43. struct finsh_node* finsh_node_new_char(char c);
  44. struct finsh_node* finsh_node_new_int(int i);
  45. struct finsh_node* finsh_node_new_long(long l);
  46. struct finsh_node* finsh_node_new_string(char* s);
  47. struct finsh_node* finsh_node_new_ptr(void* ptr);
  48. #define finsh_node_sibling(node) ((node)->sibling)
  49. #define finsh_node_child(node) ((node)->child)
  50. #endif