sdt_node_end.go 865 B

1234567891011121314151617181920212223242526272829303132333435
  1. package hhc_ast
  2. import "git.swzry.com/zry/go-hhc-cli/hhc_common"
  3. type SDTNode_End struct {
  4. Parent SyntaxDefTreeNode
  5. Exec ExecuteFunc
  6. }
  7. func (n *SDTNode_End) IsEnd() bool {
  8. return true
  9. }
  10. func (n *SDTNode_End) WalkNext(ctx *SDTWalkContext, token string) (SyntaxDefTreeNode, hhc_common.SDTWalkError) {
  11. return nil, hhc_common.SDTWalkError_TooManyParameters{}
  12. }
  13. func (n *SDTNode_End) GetHelps(prefix string) []hhc_common.SDTHelpInfo {
  14. return []hhc_common.SDTHelpInfo{}
  15. }
  16. func (n *SDTNode_End) Fallback(ctx *SDTWalkContext) (SyntaxDefTreeNode, hhc_common.SDTWalkError) {
  17. if n.Parent != nil {
  18. if len(ctx.ASTNodes) > 0 {
  19. ctx.ASTNodes = ctx.ASTNodes[:len(ctx.ASTNodes)-1]
  20. }
  21. return n.Parent, nil
  22. } else {
  23. return nil, hhc_common.SDTWalkError_LossingParent{RelyName: "#End"}
  24. }
  25. }
  26. func (n *SDTNode_End) GetExecuteFunc() ExecuteFunc {
  27. return n.Exec
  28. }