123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package main
- import (
- "fmt"
- "git.swzry.com/zry/go-hhc-cli/hhc_ast"
- "git.swzry.com/zry/go-hhc-cli/hhc_common"
- "os"
- )
- func main() {
- tree := maketree()
- if tree == nil {
- fmt.Println("Failed Make Test Tree")
- return
- }
- walker := hhc_ast.NewSDTWalker(tree)
- lp := hhc_ast.NewSDTLineParser(walker)
- DoParse(lp, "ip?")
- DoParse(lp, "ip a?")
- DoParse(lp, "ipv?")
- DoParse(lp, "ipv ?")
- DoParse(lp, "ipv mt?")
- DoParse(lp, "ipv mt ?")
- }
- func DoParse(parser *hhc_ast.SDTLineParser, s string) {
- fmt.Println("Command:", s)
- ra := []rune(s)
- parser.Reset()
- parser.Parse(ra)
- if parser.HelpTriggerd() {
- if parser.HasError() {
- e, p := parser.GetError()
- fmt.Printf("Error at %d: %s\r\n", p, e.EES())
- } else {
- if parser.WillPrintHelp() {
- fmt.Println("Help:")
- hhc_common.FPrintHelp(os.Stdout, parser.GetHelpMessage())
- }
- }
- }
- }
|