()
| 163 | } |
| 164 | |
| 165 | func (p *Parser) parseIndexExpression() (ASTNode, error) { |
| 166 | if p.lookahead(0) == tColon || p.lookahead(1) == tColon { |
| 167 | return p.parseSliceExpression() |
| 168 | } |
| 169 | indexStr := p.lookaheadToken(0).value |
| 170 | parsedInt, err := strconv.Atoi(indexStr) |
| 171 | if err != nil { |
| 172 | return ASTNode{}, err |
| 173 | } |
| 174 | indexNode := ASTNode{nodeType: ASTIndex, value: parsedInt} |
| 175 | p.advance() |
| 176 | if err := p.match(tRbracket); err != nil { |
| 177 | return ASTNode{}, err |
| 178 | } |
| 179 | return indexNode, nil |
| 180 | } |
| 181 | |
| 182 | func (p *Parser) parseSliceExpression() (ASTNode, error) { |
| 183 | parts := []*int{nil, nil, nil} |
no test coverage detected