package ast import "github.com/d5/tengo/compiler/source" // ForStmt represents a for statement. type ForStmt struct { ForPos source.Pos Init Stmt Cond Expr Post Stmt Body *BlockStmt } func (s *ForStmt) stmtNode() {} // Pos returns the position of first character belonging to the node. func (s *ForStmt) Pos() source.Pos { return s.ForPos } // End returns the position of first character immediately after the node. func (s *ForStmt) End() source.Pos { return s.Body.End() } func (s *ForStmt) String() string { var init, cond, post string if s.Init != nil { init = s.Init.String() } if s.Cond != nil { cond = s.Cond.String() + " " } if s.Post != nil { post = s.Post.String() } if init != "" || post != "" { return "for " + init + " ; " + cond + " ; " + post + s.Body.String() } return "for " + cond + s.Body.String() }