mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-04 13:13:25 +03:00
0031970: Data Exchange, STEP reader - parser syntax error messages are inaccessible
- Upgraded files using new version of WinFlexBison - Removed global variables within StepFile_Read.cxx - Upgraded error message during bison analyzing ( added a expected expression information ) - Used 'Interface_ParamType' as argument type for the StepFile_ReadData::Argument for a compatibility with the StepData/StepData_StepReaderData - Added handling parse errors and transferring it to the StepData_StepReaderData - Now parsing and referencing errors save in the check and non output by default - Step_file's and Step_Data's output info prints according by trace level of printer - Removed useless location.hxx - Removed TraceLevel for the StepFile_Reader ( now it useless, it is 0 by default and newer and nowhere change ) - Translate error message into English within StepData_StepReaderData - Replace "Error" word in the output messages
This commit is contained in:
@@ -381,16 +381,15 @@ void StepData_StepReaderData::SetRecord(const Standard_Integer num,
|
||||
errm.AssignCat(" / ");
|
||||
errm.AssignCat(thenametypes.FindKey(thetypes.Value(num)));
|
||||
errm.AssignCat(" ... ");
|
||||
#ifdef OCCT_DEBUG
|
||||
while (theidents(prev) <= 0) {
|
||||
prev--; if (prev <= 0) break;
|
||||
}
|
||||
Message_Messenger::StreamBuffer sout = Message::SendInfo();
|
||||
sout << " *** Error on Record " << num << " (on " << NbRecords()
|
||||
<< " -> " << num * 100 / NbRecords() << " % in File) ***";
|
||||
|
||||
Message_Messenger::StreamBuffer sout = Message::SendTrace();
|
||||
sout << " *** Incorrect record " << num << " (on " << NbRecords()
|
||||
<< " -> " << num * 100 / NbRecords() << " % in File) ***";
|
||||
if (prev > 0) sout << " Ident #" << theidents(prev);
|
||||
sout << "\n" << errm << std::endl;
|
||||
#endif
|
||||
thecheck->AddWarning(errm.ToCString(), "Complex Type incorrect : ");
|
||||
}
|
||||
break;
|
||||
@@ -1730,7 +1729,7 @@ Standard_Integer StepData_StepReaderData::FindEntityNumber(const Standard_Intege
|
||||
|
||||
void StepData_StepReaderData::SetEntityNumbers(const Standard_Boolean withmap)
|
||||
{
|
||||
Message_Messenger::StreamBuffer sout = Message::SendInfo();
|
||||
Message_Messenger::StreamBuffer sout = Message::SendTrace();
|
||||
// Passe initiale : Resolution directe par Map
|
||||
// si tout passe (pas de collision), OK. Sinon, autres passes a prevoir
|
||||
// On resoud du meme coup les sous-listes
|
||||
@@ -1775,7 +1774,8 @@ void StepData_StepReaderData::SetEntityNumbers(const Standard_Boolean withmap)
|
||||
if (letype == Interface_ParamSub) {
|
||||
Standard_Integer numsub = FP.EntityNumber();
|
||||
if (numsub > thelastn) {
|
||||
sout << "Bad Sub.N0, Record " << num << " Param " << na << ":$" << numsub << std::endl;
|
||||
Message::SendInfo()
|
||||
<< "Bad Sub.N0, Record " << num << " Param " << na << ":$" << numsub << std::endl;
|
||||
continue;
|
||||
}
|
||||
FP.SetEntityNumber(subn(numsub));
|
||||
@@ -1798,9 +1798,9 @@ void StepData_StepReaderData::SetEntityNumbers(const Standard_Boolean withmap)
|
||||
ident, na, id);
|
||||
thecheck->AddFail(failmess, "Unresolved Reference");
|
||||
// ... Et sortir message un peu plus complet
|
||||
sout << "*** ERR StepReaderData *** Pour Entite #" << ident
|
||||
<< "\n Type:" << RecordType(num)
|
||||
<< " Param.n0 " << na << ": #" << id << " Non trouve" << std::endl;
|
||||
sout << "*** ERR StepReaderData *** Entite #" << ident
|
||||
<< "\n Type:" << RecordType(num)
|
||||
<< " Param.n0 " << na << ": #" << id << " Not found" << std::endl;
|
||||
} // FIN Mapping
|
||||
} // FIN Traitement Reference
|
||||
} // FIN Boucle Parametres
|
||||
@@ -1867,7 +1867,7 @@ void StepData_StepReaderData::SetEntityNumbers(const Standard_Boolean withmap)
|
||||
char ligne[80];
|
||||
sprintf(ligne, "Ident defined SEVERAL TIMES : #%d", ident);
|
||||
thecheck->AddFail(ligne, "Ident defined SEVERAL TIMES : #%d");
|
||||
sout << "StepReaderData:SetEntityNumbers, " << ligne << std::endl;
|
||||
sout << "StepReaderData : SetEntityNumbers, " << ligne << std::endl;
|
||||
}
|
||||
if (indm(indmap) > 0) indm(indmap) = -indm(indmap); // Pas pour Map
|
||||
// Cas Normal pour la Map
|
||||
@@ -2056,11 +2056,13 @@ void StepData_StepReaderData::SetEntityNumbers(const Standard_Boolean withmap)
|
||||
"Unresolved Reference, Ent.n0 %d (Id.#%d) Param.n0 %d (Id.#%d)",
|
||||
nument, ident, na, id);
|
||||
thecheck->AddFail(failmess, "Unresolved Reference");
|
||||
|
||||
// ... Et sortir message un peu plus complet
|
||||
sout << "*** ERR StepReaderData *** Pour Entite " << nument
|
||||
<< ", a " << (nr * 100) / nbseq << "% de DATA : #" << ident
|
||||
<< "\n Type:" << RecordType(num)
|
||||
<< " Param.n0 " << na << ": #" << id << " Non trouve" << std::endl;
|
||||
sout << "*** ERR StepReaderData *** Entite " << nument
|
||||
<< ", a " << (nr * 100) / nbseq << "% de DATA : #" << ident
|
||||
<< "\n Type:" << RecordType(num)
|
||||
<< " Param.n0 " << na << ": #" << id << " Not found" << std::endl;
|
||||
|
||||
FP.SetEntityNumber(0); // -> Reference non resolue
|
||||
}
|
||||
}
|
||||
|
@@ -159,7 +159,7 @@ void StepData_StepReaderTool::PrepareHeader
|
||||
void StepData_StepReaderTool::BeginRead
|
||||
(const Handle(Interface_InterfaceModel)& amodel)
|
||||
{
|
||||
Message_Messenger::StreamBuffer sout = Message::SendInfo();
|
||||
Message_Messenger::StreamBuffer sout = Message::SendTrace();
|
||||
DeclareAndCast(StepData_StepModel,model,amodel);
|
||||
DeclareAndCast(StepData_StepReaderData,stepdat,Data());
|
||||
|
||||
@@ -185,16 +185,20 @@ void StepData_StepReaderTool::BeginRead
|
||||
Standard_Integer nbmess = ach->NbWarnings();
|
||||
sout<<nbmess<<" Warnings on Reading Header Entity N0."<<i<<":";
|
||||
if (!ent.IsNull()) sout << ent->DynamicType()->Name() << std::endl;
|
||||
for (Standard_Integer nf = 1; nf <= nbmess; nf ++)
|
||||
sout << ach->CWarning(nf) << "\n";
|
||||
for (Standard_Integer nf = 1; nf <= nbmess; nf++)
|
||||
{
|
||||
sout << ach->CWarning(nf) << "\n";
|
||||
}
|
||||
}
|
||||
if (ach->HasFailed()) {
|
||||
Handle(Interface_Check) mch = model->GlobalCheck();
|
||||
Standard_Integer nbmess = ach->NbFails();
|
||||
sout << " Errors on Reading Header Entity N0."<<i<<":";
|
||||
sout << " Fails on Reading Header Entity N0." << i << ":";
|
||||
if (!ent.IsNull()) sout << ent->DynamicType()->Name() << std::endl;
|
||||
for (Standard_Integer nf = 1; nf <= nbmess; nf ++)
|
||||
sout << ach->CFail(nf) << "\n";
|
||||
for (Standard_Integer nf = 1; nf <= nbmess; nf++)
|
||||
{
|
||||
sout << ach->CFail(nf) << "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user