main.go 849 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. "os"
  7. )
  8. func main() {
  9. tree := maketree()
  10. if tree == nil {
  11. fmt.Println("Failed Make Test Tree")
  12. return
  13. }
  14. walker := hhc_ast.NewSDTWalker(tree)
  15. lp := hhc_ast.NewSDTLineParser(walker)
  16. DoParse(lp, "ip?")
  17. DoParse(lp, "ip a?")
  18. DoParse(lp, "ipv?")
  19. DoParse(lp, "ipv ?")
  20. DoParse(lp, "ipv mt?")
  21. DoParse(lp, "ipv mt ?")
  22. }
  23. func DoParse(parser *hhc_ast.SDTLineParser, s string) {
  24. fmt.Println("Command:", s)
  25. ra := []rune(s)
  26. parser.Reset()
  27. parser.Parse(ra)
  28. if parser.HelpTriggerd() {
  29. if parser.HasError() {
  30. e, p := parser.GetError()
  31. fmt.Printf("Error at %d: %s\r\n", p, e.EES())
  32. } else {
  33. if parser.WillPrintHelp() {
  34. fmt.Println("Help:")
  35. hhc_common.FPrintHelp(os.Stdout, parser.GetHelpMessage())
  36. }
  37. }
  38. }
  39. }