parseExpressionStatement method parses an expression statement and returns an ExpressionStatement AST node
()
| 560 | |
| 561 | // parseExpressionStatement method parses an expression statement and returns an ExpressionStatement AST node |
| 562 | func (p *Parser) parseExpressionStatement() (*ast.ExpressionStatement, error) { |
| 563 | // create a new ExpressionStatement object |
| 564 | stmt := &ast.ExpressionStatement{} |
| 565 | var err error |
| 566 | // parse the expression using the lowest precedence value as the initial precedence level |
| 567 | stmt.Expression, err = p.parseExpression(LOWEST) |
| 568 | if err != nil { |
| 569 | return nil, p.Error() |
| 570 | } |
| 571 | |
| 572 | // return the parsed ExpressionStatement and nil for the error value |
| 573 | return stmt, nil |
| 574 | } |
| 575 | |
| 576 | // expectAndNext method checks if the next token is of the expected type and advances the lexer to the next token if it is. It returns true if the next token is of the expected type, and false otherwise. |
| 577 | func (p *Parser) expectAndNext(t token.Type) bool { |
no test coverage detected