finsh_node.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /*
  2. * File : finsh_node.h
  3. * This file is part of RT-Thread RTOS
  4. * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team
  5. *
  6. * The license and distribution terms for this file may be
  7. * found in the file LICENSE in this distribution or at
  8. * http://www.rt-thread.org/license/LICENSE
  9. *
  10. * Change Logs:
  11. * Date Author Notes
  12. * 2010-03-22 Bernard first version
  13. */
  14. #ifndef __FINSH_NODE_H__
  15. #define __FINSH_NODE_H__
  16. #include <finsh.h>
  17. #define FINSH_NODE_UNKNOWN 0
  18. #define FINSH_NODE_ID 1
  19. #define FINSH_NODE_VALUE_CHAR 2
  20. #define FINSH_NODE_VALUE_INT 3
  21. #define FINSH_NODE_VALUE_LONG 4
  22. #define FINSH_NODE_VALUE_STRING 5
  23. #define FINSH_NODE_VALUE_NULL 6
  24. #define FINSH_NODE_SYS_ADD 7
  25. #define FINSH_NODE_SYS_SUB 8
  26. #define FINSH_NODE_SYS_MUL 9
  27. #define FINSH_NODE_SYS_DIV 10
  28. #define FINSH_NODE_SYS_MOD 11
  29. #define FINSH_NODE_SYS_AND 12
  30. #define FINSH_NODE_SYS_OR 13
  31. #define FINSH_NODE_SYS_XOR 14
  32. #define FINSH_NODE_SYS_BITWISE 15
  33. #define FINSH_NODE_SYS_SHL 16
  34. #define FINSH_NODE_SYS_SHR 17
  35. #define FINSH_NODE_SYS_FUNC 18
  36. #define FINSH_NODE_SYS_ASSIGN 19
  37. #define FINSH_NODE_SYS_CAST 20
  38. #define FINSH_NODE_SYS_PREINC 21
  39. #define FINSH_NODE_SYS_PREDEC 22
  40. #define FINSH_NODE_SYS_INC 23
  41. #define FINSH_NODE_SYS_DEC 24
  42. #define FINSH_NODE_SYS_GETVALUE 25
  43. #define FINSH_NODE_SYS_GETADDR 26
  44. #define FINSH_NODE_SYS_NULL 27
  45. #define FINSH_DATA_TYPE_VOID 0x00
  46. #define FINSH_DATA_TYPE_BYTE 0x01
  47. #define FINSH_DATA_TYPE_WORD 0x02
  48. #define FINSH_DATA_TYPE_DWORD 0x03
  49. #define FINSH_DATA_TYPE_PTR 0x10
  50. #define FINSH_NODE_VALUE 0
  51. #define FINSH_NODE_ADDRESS 1
  52. #define FINSH_NODE_FUNCTION 2
  53. int finsh_node_init(void);
  54. struct finsh_node* finsh_node_allocate(u_char type);
  55. struct finsh_node* finsh_node_new_id(char* id);
  56. struct finsh_node* finsh_node_new_char(char c);
  57. struct finsh_node* finsh_node_new_int(int i);
  58. struct finsh_node* finsh_node_new_long(long l);
  59. struct finsh_node* finsh_node_new_string(char* s);
  60. struct finsh_node* finsh_node_new_ptr(void* ptr);
  61. #define finsh_node_sibling(node) ((node)->sibling)
  62. #define finsh_node_child(node) ((node)->child)
  63. #endif