parseLoopHeader parses the loop header.
(head *expression.Expression)
| 9 | |
| 10 | // parseLoopHeader parses the loop header. |
| 11 | func (f *Function) parseLoopHeader(head *expression.Expression) (name string, from *expression.Expression, to *expression.Expression) { |
| 12 | switch head.Token.Kind { |
| 13 | case token.Define: |
| 14 | name = head.Children[0].String(f.File.Bytes) |
| 15 | right := head.Children[1] |
| 16 | from = right.Children[0] |
| 17 | to = right.Children[1] |
| 18 | case token.Range: |
| 19 | name = fmt.Sprintf("loop.counter.%d", f.Count.Loop) |
| 20 | from = head.Children[0] |
| 21 | to = head.Children[1] |
| 22 | } |
| 23 | |
| 24 | return |
| 25 | } |