basic for loop + examples -> era3

This commit is contained in:
Neemek 2026-07-13 10:01:13 +02:00
parent dd7af341a3
commit 0bc8b2ef55
Signed by: neemek
GPG key ID: 84FFE4D7D40AB25E
24 changed files with 222 additions and 201 deletions

View file

@ -383,6 +383,38 @@ func (p *Parser) expression(mustBeBlock bool) (Node, error) {
p.prev.End,
}, nil
case TokenFor:
p.advance()
start := p.prev.Start
counter, err := p.expression(false)
if err != nil {
return nil, err
}
if err := p.expect(TokenIn, "for-loops must be for each item in an iterator"); err != nil {
return nil, err
}
iterator, err := p.expression(false)
if err != nil {
return nil, err
}
logic, err := p.expression(true)
if err != nil {
return nil, err
}
return &ForNode{
counter,
iterator,
logic,
start,
p.prev.End,
}, nil
default:
s, err := p.binary()
if err != nil {