main.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. package main
  2. import (
  3. "fmt"
  4. "git.swzry.com/zry/go-hhc-cli/hhc_ast"
  5. "git.swzry.com/zry/go-hhc-cli/hhc_common"
  6. "github.com/cheynewallace/tabby"
  7. )
  8. func PrintHelp(h []hhc_common.SDTHelpInfo) {
  9. t := tabby.New()
  10. for i, v := range h {
  11. t.AddLine(i, v.IsArg, v.Name, v.Description)
  12. }
  13. t.Print()
  14. }
  15. func main() {
  16. tree := maketree()
  17. if tree == nil {
  18. fmt.Println("Failed Make Test Tree")
  19. return
  20. }
  21. walker := hhc_ast.NewSDTWalker(tree)
  22. TypeAndHelp(walker, "")
  23. TypeAndHelp(walker, "i")
  24. TypeAndHelp(walker, "ip")
  25. WalkIn(walker, "ip")
  26. TypeAndHelp(walker, "m")
  27. WalkIn(walker, "mtu")
  28. WalkBack(walker)
  29. TypeAndHelp(walker, "a")
  30. WalkIn(walker, "addr")
  31. TypeAndHelp(walker, "192.")
  32. TypeAndHelp(walker, "192.168")
  33. WalkIn(walker, "192.168.114.114")
  34. TypeAndHelp(walker, "")
  35. TypeAndHelp(walker, "255.")
  36. TypeAndHelp(walker, "255.255")
  37. WalkIn(walker, "255.255.255.0")
  38. TypeAndHelp(walker, "")
  39. WalkBack(walker)
  40. TypeAndHelp(walker, "24")
  41. WalkIn(walker, "24")
  42. WalkIn(walker, "sub")
  43. TypeAndHelp(walker, "")
  44. TypeAndHelp(walker, "test")
  45. WalkIn(walker, "test1")
  46. WalkIn(walker, "test2")
  47. WalkIn(walker, "test3")
  48. WalkBack(walker)
  49. WalkBack(walker)
  50. WalkBack(walker)
  51. WalkBack(walker)
  52. WalkBack(walker)
  53. WalkBack(walker)
  54. TypeAndHelp(walker, "")
  55. TypeAndHelp(walker, "dh")
  56. WalkIn(walker, "dh")
  57. WalkBack(walker)
  58. TypeAndHelp(walker, "")
  59. WalkIn(walker, "u")
  60. WalkIn(walker, "int")
  61. WalkIn(walker, "vl")
  62. WalkIn(walker, "1000")
  63. WalkBack(walker)
  64. WalkBack(walker)
  65. WalkIn(walker, "lo")
  66. WalkIn(walker, "9")
  67. WalkBack(walker)
  68. WalkIn(walker, "6")
  69. WalkBack(walker)
  70. WalkBack(walker)
  71. WalkBack(walker)
  72. WalkBack(walker)
  73. WalkBack(walker)
  74. WalkBack(walker)
  75. WalkBack(walker)
  76. WalkBack(walker)
  77. WalkBack(walker)
  78. WalkBack(walker)
  79. WalkBack(walker)
  80. WalkBack(walker)
  81. WalkBack(walker)
  82. WalkBack(walker)
  83. WalkBack(walker)
  84. WalkIn(walker, "ipv")
  85. }
  86. func TypeAndHelp(walker *hhc_ast.SDTWalker, token string) {
  87. println("[H9C]" + CtxToCommand(walker.GetContext()) + token + "?")
  88. if walker.HasError() {
  89. println(" % " + walker.GetError().FES())
  90. return
  91. }
  92. PrintHelp(walker.GetHelps(token))
  93. }
  94. func WalkIn(walker *hhc_ast.SDTWalker, token string) {
  95. walker.NextStep(token)
  96. println("[H9C]" + CtxToCommand(walker.GetContext()) + " ?")
  97. if walker.HasError() {
  98. println(" % " + walker.GetError().FES())
  99. return
  100. }
  101. PrintHelp(walker.GetHelps(""))
  102. }
  103. func WalkBack(walker *hhc_ast.SDTWalker) {
  104. walker.Back()
  105. println("[H9C]" + CtxToCommand(walker.GetContext()) + " ?")
  106. if walker.HasError() {
  107. println(" % " + walker.GetError().FES())
  108. return
  109. }
  110. PrintHelp(walker.GetHelps(""))
  111. }