(t *assignmentTarget, variableCount int)
| 317 | } |
| 318 | |
| 319 | func (p *parser) assignment(t *assignmentTarget, variableCount int) { |
| 320 | if p.checkCondition(t.isVariable(), "syntax error"); p.testNext(',') { |
| 321 | e := p.suffixedExpression() |
| 322 | if e.kind != kindIndexed { |
| 323 | p.function.CheckConflict(t, e) |
| 324 | } |
| 325 | p.checkLimit(variableCount+p.l.nestedGoCallCount, maxCallCount, "Go levels") |
| 326 | p.assignment(&assignmentTarget{previous: t, exprDesc: e}, variableCount+1) |
| 327 | } else { |
| 328 | p.checkNext('=') |
| 329 | if e, n := p.expressionList(); n != variableCount { |
| 330 | if p.function.AdjustAssignment(variableCount, n, e); n > variableCount { |
| 331 | p.function.freeRegisterCount -= n - variableCount // remove extra values |
| 332 | } |
| 333 | } else { |
| 334 | p.function.StoreVariable(t.exprDesc, p.function.SetReturn(e)) |
| 335 | return // avoid default |
| 336 | } |
| 337 | } |
| 338 | p.function.StoreVariable(t.exprDesc, makeExpression(kindNonRelocatable, p.function.freeRegisterCount-1)) |
| 339 | } |
| 340 | |
| 341 | func (p *parser) forBody(base, line, n int, isNumeric bool) { |
| 342 | p.function.AdjustLocalVariables(3) |
no test coverage detected