Home | History | Annotate | Download | only in gc

Lines Matching defs:stmt

564 func (p *noder) stmts(stmts []syntax.Stmt) []*Node {
566 for _, stmt := range stmts {
567 s := p.stmt(stmt)
578 func (p *noder) stmt(stmt syntax.Stmt) *Node {
579 p.lineno(stmt)
580 switch stmt := stmt.(type) {
584 return p.labeledStmt(stmt)
586 return p.body(stmt.Body)
588 return p.wrapname(stmt, p.expr(stmt.X))
590 return p.nod(stmt, OSEND, p.expr(stmt.Chan), p.expr(stmt.Value))
592 return liststmt(p.decls(stmt.DeclList))
594 if stmt.Op != 0 && stmt.Op != syntax.Def {
595 n := p.nod(stmt, OASOP, p.expr(stmt.Lhs), p.expr(stmt.Rhs))
596 n.Implicit = stmt.Rhs == syntax.ImplicitOne
597 n.Etype = EType(p.binOp(stmt.Op))
601 lhs := p.exprList(stmt.Lhs)
602 rhs := p.exprList(stmt.Rhs)
604 n := p.nod(stmt, OAS, nil, nil) // assume common case
606 if stmt.Op == syntax.Def {
624 switch stmt.Tok {
636 n := p.nod(stmt, op, nil, nil)
637 if stmt.Label != nil {
638 n.Left = p.newname(stmt.Label)
649 switch stmt.Tok {
657 return p.nod(stmt, op, p.expr(stmt.Call), nil)
660 if stmt.Results != nil {
661 results = p.exprList(stmt.Results)
663 n := p.nod(stmt, ORETURN, nil, nil)
680 return p.ifStmt(stmt)
682 return p.forStmt(stmt)
684 return p.switchStmt(stmt)
686 return p.selectStmt(stmt)
688 panic("unhandled Stmt")
691 func (p *noder) body(body []syntax.Stmt) *Node {
700 func (p *noder) bodyList(body []syntax.Stmt) []*Node {
707 func (p *noder) ifStmt(stmt *syntax.IfStmt) *Node {
709 n := p.nod(stmt, OIF, nil, nil)
710 if stmt.Init != nil {
711 n.Ninit.Set1(p.stmt(stmt.Init))
713 if stmt.Cond != nil {
714 n.Left = p.expr(stmt.Cond)
716 n.Nbody.Set(p.bodyList(stmt.Then))
717 if stmt.Else != nil {
718 e := p.stmt(stmt.Else)
729 func (p *noder) forStmt(stmt *syntax.ForStmt) *Node {
732 stmt.Init.(*syntax.RangeClause); ok {
733 if stmt.Cond != nil || stmt.Post != nil {
747 n = p.nod(stmt, OFOR, nil, nil)
748 if stmt.Init != nil {
749 n.Ninit.Set1(p.stmt(stmt.Init))
751 if stmt.Cond != nil {
752 n.Left = p.expr(stmt.Cond)
754 if stmt.Post != nil {
755 n.Right = p.stmt(stmt.Post)
758 n.Nbody.Set(p.bodyList(stmt.Body))
763 func (p *noder) switchStmt(stmt *syntax.SwitchStmt) *Node {
765 n := p.nod(stmt, OSWITCH, nil, nil)
766 if stmt.Init != nil {
767 n.Ninit.Set1(p.stmt(stmt.Init))
769 if stmt.Tag != nil {
770 n.Left = p.expr(stmt.Tag)
778 n.List.Set(p.caseClauses(stmt.Body, tswitch))
808 func (p *noder) selectStmt(stmt *syntax.SelectStmt) *Node {
809 n := p.nod(stmt, OSELECT, nil, nil)
810 n.List.Set(p.commClauses(stmt.Body))
821 n.List.Set1(p.stmt(clause.Comm))
836 if label.Stmt != nil { // TODO(mdempsky): Should always be present.
837 ls = p.stmt(label.Stmt)