Error

RemixIDE 上的錯誤:“ParserError: Expected pragma.import directive, or contract/library/interface definition”在最後一行

  • July 19, 2021

我在 RemixIDE 執行我的程式碼並面臨錯誤Remix: ParserError: Expected pragma。import 指令,或程式碼最後一行(第 157 行)中的合約/庫/介面定義。有人對我的情況為什麼會發生這種情況有任何建議嗎?我將不勝感激。

pragma solidity >=0.4.0 <8.4;



contract cadeia {

   
   
   event EmissaoPedidoFornecedor1 (address Fornecedor1, int8 DefBasicas1, int8 DefBasicas2, int8 DefBasicas3);
   event DespachoPedidoFornecedor1 (int8 NSU1, int8 Quantidade1, int8 Lote1, int8 NSU2, int8 Quantidade2, int8 Lote2, int8 NSU3, int8 Quantidade3, int8 Lote3);
   event EmitirNotaFornecedor1 (address Operador1, int8 NSU1, int Quantidade1, int8 Preco1, int8 NSU2, int Quantidade2, int8 Preco2, int8 NSU3, int Quantidade3, int8 Preco3);
   
   event EmissaoPedidoFornecedor2 (address Fornecedor2, int8 DefBasicasA, int8 DefBasicasB, int8 DefBasicasC);
   event DespachoPedidoFornecedor2 (int8 NSUA, int8 QuantidadeA, int8 LoteA, int8 NSUB, int8 QuantidadeB, int8 LoteB, int8 NSUC, int8 QuantidadeC, int8 LoteC);
   event EmitirNotaFornecedor2 (address OperadorA, int8 NSUA, int QuantidadeA, int8 PrecoA,int8 NSUB, int QuantidadeB, int8 PrecoB, int8 NSUC, int QuantidadeC, int8 PrecoC);
   
   event ReceberProdutoProdutor(string hash);
   event ReceberNotaProdutor (address Fornecedor1, address Fornecedor2, int8 DefBasicas1, int8 DefBasicas2, int8 DefBasicas3, int8 DefBasicasA, int8 DefBasicasB, int8 DefBasicasC);
   event FabricarProdutor (address Operador1, address Operador2, int8 PreProdutosku1, int8 PreProdutosku2, int8 PreProdutosku3, int8 PreProdutoskuA, int8 PreProdutoskuB, int8 PreProdutoskuC); 
   event ProducaoProduto1Produtor (string Produto1, address Distribuidor, int8 S, int8 Quantidade12B, int8 Unidade12B, int8 Preco12B);
   event ProducaoProduto2Produtor (string Produto2, int8 R, int8 Quantidade3AC, int8 Unidade3AC, int8 Preco3AC);
   event DespachoPedidoProdutor1 (string Produto1, address Distribuidor, int8 S, int Quantidade12B, int8 Unidade12B, int8 Preco12B);
   event DespachoPedidoProdutor2 (string Produto2, address Distribuidor, int8 R, int Quantidade3AC, int8 Unidade3AC, int8 Preco3AC);
   event EmitirNotaProdutor1 (string Produto1, address Distribuidor, int8 S, int Quantidade12B, int8 Unidade12B, int8 Preco12B );
   event EmitirNotaProdutor2 (string Produto2, address Distribuidor, int8 R, int Quantidade3AC, int8 Unidade3AC, int8 Preco3AC);
   
   
   event ReceberProdutoDistribuidor (string hash);
   event ReceberNotaDistribuidor (address Operador1, address Operador2, address Fornecedor1, address Fornecedor2, int8 DefBasicas1, int8 DefBasicas2, int8 DefBasicas3, int8 DefBasicasA, int8 DefBasicasB, int8 DefBasicasC);
   event DespachoPedidoDistribuidor (int8 DefBasicas1, int8 DefBasicas2, int8 DefBasicas3, int8 DefBasicasA, int8 DefBasicasB, int8 DefBasicasC); 
   event EmitirNotaDistribuidor (address Distribuidor, int8 DefBasicas1, int8 DefBasicas2, int8 DefBasicas3, int8 DefBasicasA, int8 DefBasicasB, int8 DefBasicasC);
   
   
   event ReceberProdutoCliente1 (string hash);
   event ReceberNotaCliente1 (int8 DefBasicas1, int8 DefBasicas2, int8 DefBasicas3);
   
   
   
   struct DefBasicas1 {int8 NSU1; int8 Quantidade1; int8 Preco1; int8 Peso1;}        }
   struct DefBasicas2 {int8 NSU2; int8 Quantidade2; int8 Preco2; int8 Peso2;}
   struct DefBasicas3 {int8 NSU3; int8 Quantidade3; int8 Preco3; int8 Peso3;}
   struct DefBasicasA {int8 NSUA; int8 QuantidadeA; int8 PrecoA; int8 PesoA;}
   struct DefBasicasB {int8 NSUB; int8 QuantidadeB; int8 PrecoB; int8 PesoB;}
   struct DefBasicasC {int8 NSUC; int8 QuantidadeC; int8 PrecoC; int8 PesoC;}
       
   function PedidoFornecedor1 (address Fornecedor1, int8 DefBasicas1, int8 DefBasicas2, int8 DefBasicas3) public {
       emit EmissaoPedidoFornecedor1 (Fornecedor1, DefBasicas1, DefBasicas2, DefBasicas3);}
           
   function PedidoFornecedor2 (address Fornecedor2,  int8 DefBasicasA, int8 DefBasicasB, int8 DefBasicasC) public {
       emit EmissaoPedidoFornecedor2 (Fornecedor2, DefBasicasA, DefBasicasB, DefBasicasC);}
           
   function DespachoFornecedor1 (int8 NSU1, int8 Quantidade1, int8 Lote1, int8 NSU2, int8 Quantidade2, int8 Lote2, int8 NSU3, int8 Quantidade3, int8 Lote3) public {
       emit DespachoPedidoFornecedor1 (NSU1, Quantidade1, Lote1, NSU2, Quantidade2, Lote2, NSU3, Quantidade3, Lote3);}
           
   function DespachoFornecedor2 (int8 NSUA, int8 QuantidadeA, int8 LoteA, int8 NSUB, int8 QuantidadeB, int8 LoteB, int8 NSUC, int8 QuantidadeC, int8 LoteC) public {
       emit DespachoPedidoFornecedor2 (NSUA, QuantidadeA, LoteA, NSUB, QuantidadeB, LoteB, NSUC, QuantidadeC, LoteC);}
           
   function NotaFornecedor1 (address Operador1,int8 NSU1, int Quantidade1, int8 Preco1, int8 NSU2, int Quantidade2, int8 Preco2, int8 NSU3, int Quantidade3, int8 Preco3) public {
       emit EmitirNotaFornecedor1 (Operador1, NSU1, Quantidade1, Preco1, NSU2, Quantidade2, Preco2, NSU3, Quantidade3, Preco3);}
           
   function NotaFornecedor2 (address Operador2, int8 NSUA, int QuantidadeA, int8 PrecoA,int8 NSUB, int QuantidadeB, int8 PrecoB, int8 NSUC, int QuantidadeC, int8 PrecoC) public {
       emit EmitirNotaFornecedor2 (Operador2, NSUA, QuantidadeA, PrecoA, NSUB, QuantidadeB, PrecoB, NSUC, QuantidadeC, PrecoC);}
           
           
           
   function ReceberProdutoProd (string memory hash, int8 NSU1, int8 NSU1_recebido, int8 NSU2, int8 NSU2_recebido, int8 NSU3, int8 NSU3_recebido, int8 NSUA, int8 NSUA_recebido,  int8 NSUB, int8 NSUB_recebido, int8 NSUC, int8 NSUC_recebido) public {
       emit ReceberProdutoProdutor (hash);
           assert (NSU1_recebido==NSU1);
           assert (NSU2_recebido==NSU2);
           assert (NSU3_recebido==NSU3);
           assert (NSUA_recebido==NSUA);
           assert (NSUB_recebido==NSUB);
           assert (NSUC_recebido==NSUC);}

           
           
   function ReceberNotaProd (address Fornecedor1, address Fornecedor2, int8 DefBasicas1, int8 DefBasicas2, int8 DefBasicas3, int8 DefBasicasA, int8 DefBasicasB, int8 DefBasicasC) public {
       emit ReceberNotaProdutor (Fornecedor1, Fornecedor2, DefBasicas1, DefBasicas2, DefBasicas3, DefBasicasA, DefBasicasB, DefBasicasC);}
       
   struct PreProdutosku1 {int8 NSU1; int8 Quantidade1; int8 Lote1; int8 Turno1;}
   struct PreProdutosku2 {int8 NSU2; int8 Quantidade2; int8 Lote2; int8 Turno2;}
   struct PreProdutosku3 {int8 NSU3; int8 Quantidade3; int8 Lote3; int8 Turno3;}
   struct PreProdutoskuA {int8 NSUA; int8 QuantidadeA; int8 LoteA; int8 TurnoA;}
   struct PreProdutoskuB {int8 NSUB; int8 QuantidadeB; int8 LoteB; int8 TurnoB;}
   struct PreProdutoskuC {int8 NSUC; int8 QuantidadeC; int8 LoteC; int8 TurnoC;}
       
           
   function FabricarProd (address Operador1, address Operador2, int8 PreProdutosku1, int8 PreProdutosku2, int8 PreProdutosku3, int8 PreProdutoskuA, int8 PreProdutoskuB, int8 PreProdutoskuC) public {
       emit FabricarProdutor (Operador1, Operador2, PreProdutosku1, PreProdutosku2, PreProdutosku3, PreProdutoskuA, PreProdutoskuB, PreProdutoskuC);}
       
   struct S { uint8 NSU1; uint8 NSU2; uint8 NSUB;}
       int x;
           mapping(uint8 => mapping(uint8 => S)) data1;
               
          
   function ProducaoProduto1Prod (string memory Produto1, address Distribuidor, int8 S, int8 Quantidade12B, int8 Unidade12B, int8 Preco12B) public {
       emit ProducaoProduto1Produtor (Produto1, Distribuidor, S, Quantidade12B, Unidade12B, Preco12B);}
           
           
   struct R { uint8 NSU3; uint8 NSUA; uint8 NSUC;}
       int y;
           mapping(uint8 => mapping(uint8 => R)) data2;
       
   function ProducaoProduto2Prod (string memory Produto2, int8 R, int8 Quantidade3AC, int8 Unidade3AC, int8 Preco3AC) public {
       emit ProducaoProduto2Produtor (Produto2, R, Quantidade3AC, Unidade3AC, Preco3AC);}
       
   function DespachoPedidoProd1 (string memory Produto1, address Distribuidor, int8 S, int8 Quantidade12B, int8 Unidade12B, int8 Preco12B) public {
       emit DespachoPedidoProdutor1 (Produto1, Distribuidor, S, Quantidade12B, Unidade12B, Preco12B);}
           
   function DespachoPedidoProd2 (string memory Produto2, address Distribuidor, int8 R, int8 Quantidade3AC, int8 Unidade3AC, int8 Preco3AC) public {
       emit DespachoPedidoProdutor1 (Produto2, Distribuidor, R, Quantidade3AC, Unidade3AC, Preco3AC);}    
           
   function EmitirNotaProd1 (string memory Produto1, address Distribuidor, int8 S, int Quantidade12B, int8 Unidade12B, int8 Preco12B) public {
       emit EmitirNotaProdutor1 (Produto1, Distribuidor, S, Quantidade12B, Unidade12B, Preco12B);}
           
   function EmitirNotaProd2 (string memory Produto2, address Distribuidor, int8 R, int Quantidade3AC, int8 Unidade3AC, int8 Preco3AC) public {
       emit EmitirNotaProdutor2 (Produto2, Distribuidor, R, Quantidade3AC, Unidade3AC, Preco3AC);}
           
       
   function ReceberProdutoDist (string memory hash, int8 NSU1, int8 NSU1_recebido, int8 NSU2, int8 NSU2_recebido, int8 NSU3, int8 NSU3_recebido, int8 NSUA, int8 NSUA_recebido, int8 NSUB, int8 NSUB_recebido,int8 NSUC, int8 NSUC_recebido ) public {
       emit ReceberProdutoDistribuidor (hash);
       assert (NSU1_recebido==NSU1);
       assert (NSU2_recebido==NSU2);
       assert (NSU3_recebido==NSU3);
       assert (NSUA_recebido==NSUA);
       assert (NSUB_recebido==NSUB);
       assert (NSUC_recebido==NSUC);}


       
   function ReceberNotaDist (address Operador1, address Operador2, address Fornecedor1, address Fornecedor2,  int8 DefBasicas1, int8 DefBasicas2, int8 DefBasicas3, int8 DefBasicasA, int8 DefBasicasB, int8 DefBasicasC) public {
       emit ReceberNotaDistribuidor (Operador1, Operador2, Fornecedor1, Fornecedor2, DefBasicas1, DefBasicas2, DefBasicas3, DefBasicasA, DefBasicasB, DefBasicasC);}
       
   
           
   function DespachoPedidoDist (int8 DefBasicas1, int8 DefBasicas2, int8 DefBasicas3, int8 DefBasicasA, int8 DefBasicasB, int8 DefBasicasC) public {
       emit DespachoPedidoDistribuidor (DefBasicas1, DefBasicas2, DefBasicas3, DefBasicasA, DefBasicasB, DefBasicasC);}
           
   function EmitirNotaDist (address Distribuidor, int8 DefBasicas1, int8 DefBasicas2, int8 DefBasicas3, int8 DefBasicasA, int8 DefBasicasB, int8 DefBasicasC) public {
       emit EmitirNotaDistribuidor (Distribuidor, DefBasicas1, DefBasicas2, DefBasicas3, DefBasicasA, DefBasicasB, DefBasicasC);}
           
           
   function ReceberProdutoClien1 (string memory hash, int8 NSU1, int8 NSU1_recebido,   int8 NSU2, int8 NSU2_recebido,  int8 NSU3, int8 NSU3_recebido, int8 NSUA, int8 NSUA_recebido, int8 NSUB, int8 NSUB_recebido, int8 NSUC, int8 NSUC_recebido) public {
       emit ReceberProdutoCliente1 (hash);
       assert (NSU1_recebido==NSU1);
       assert (NSU2_recebido==NSU2);
       assert (NSU3_recebido==NSU3);
       assert (NSUA_recebido==NSUA);
       assert (NSUB_recebido==NSUB);
       assert (NSUC_recebido==NSUC);}
       
   function ReceberNotaClien1 (int8 DefBasicas1, int8 DefBasicas2, int8 DefBasicas3) public {
       emit ReceberNotaCliente1 ( DefBasicas1, DefBasicas2, DefBasicas3);}
      
}
   

}從第 39 行 刪除多餘的部分struct DefBasicas1 {int8 NSU1; int8 Quantidade1; int8 Preco1; int8 Peso1;} }

引用自:https://ethereum.stackexchange.com/questions/103726