func (p *Parser) stmt() ast.Stmt {
	defer p.handleParseErrorPanic()
	if _, ok := p.check(token.PRINT); ok {
		return p.printStmt()
	}
	if _, ok := p.check(token.TYPE); ok {
		return p.typeDefStmt()
	}
	if _, ok := p.check(token.RETURN); ok {
		return p.returnStmt()
	}
	return p.exprStmt()
}
// stmt is the head of the statement rule.
stmt is the head of the statement rule.
// stmt is the head of the statement rule .
func (p *Parser) stmt() ast.Stmt {
	defer p.handleParseErrorPanic()
	if _, ok := p.check(token.PRINT); ok {
		return p.printStmt()
	}
	if _, ok := p.check(token.TYPE); ok {
		return p.typeDefStmt()
	}
	if _, ok := p.check(token.RETURN); ok {
		return p.returnStmt()
	}
	return p.exprStmt()
}
func ( p * Parser ) stmt ( ) ast . Stmt { defer p . handleParseErrorPanic ( ) if _ , ok := p . check ( token . PRINT ) ; ok { return p . printStmt ( ) } if _ , ok := p . check ( token . TYPE ) ; ok { return p . typeDefStmt ( ) } if _ , ok := p . check ( token . RETURN ) ; ok { return p . returnStmt ( ) } return p . exprStmt ( ) }
stmt is the head of the statement rule.
stmt is the head of the statement rule .