如何在我的智能合约中调试解析器错误

How to debug Parser Error in solidity in my smart contract

所以我正在尝试使用 remix IDE 为去中心化电影评级创建智能合约。以下是我想要实现的目标:

  1. 创建一个映射字段来存储电影评论
  2. 使用数组存储电影列表
  3. 创建一个函数,returns 电影到目前为止收到的总评分
  4. 开发一个在区块链上部署合约后将被调用的构造函数
// SPDX-License-Identifier: MIT

pragma solidity ^ 0.8.10; 

contract Rating { 

    mapping (bytes32 => uint8) public ratingsReceived;

    bytes32 [] public movieList; 
    
    constructor Rating(bytes32[]movieNames) public { 
        movieList = movieNames;
    }
    function totalVotesFor(bytes32 movie) view public returns (uint8) {
        return ratingsReceived[movie]; 
    } 

    function voteForMovie(bytes32 movie) public { 
        ratingsReceived[movie];
    }
}

请查找以下代码,如果它有助于与构造函数的电影评级合同和使用映射来存储评级,我们也可以根据需要添加更多电影。

// SPDX-License-Identifier: MIT

pragma solidity 0.8.7; 

contract Rating{

    string[] moviesList;

    mapping(string => uint8) movieRatings;

    constructor() {
        moviesList = ["movie1","movie2","movie3"]; // this is default list of movies you can add in constructor 
    }

    // add movies
    function addMovie(string memory movie) public returns(string memory){
        moviesList.push(movie);
        return movie;
    }

    // get list of movies
    function getList() public view returns(string[] memory){ 
        return moviesList;
    }

    // rate movie with rating
    function rateMovie(string memory movie,uint8 rating) public {
        require(rating >=0 && rating <= 10,"rating is out of range");
        movieRatings[movie] = rating;
    }
    
    // get movie rating by passing movie name
    function getMovieRating(string memory movie) public view returns(uint8){
        return movieRatings[movie];
    }

}