WOK code upgraded following removal of classes Stack and Queue from TCollection, and adapted to use of flex 2.5.x
-- PRIVATE
--
- private class StackOfBoolean instantiates Stack from TCollection(Boolean from Standard);
+ private class ListOfBoolean instantiates List from TCollection(Boolean from Standard);
---Purpose: for evaluation of expressions
private class Interpretor;
MapOfTemplate from EDL,
MapOfFile from EDL,
MapOfLibrary from EDL,
- StackOfBoolean from EDL,
+ ListOfBoolean from EDL,
HSequenceOfVariable from EDL,
Error from EDL,
ParameterMode from EDL,
myTemplateTable : MapOfTemplate from EDL;
myFileTable : MapOfFile from EDL;
myLibraryTable : MapOfLibrary from EDL;
- myExecutionStatus : StackOfBoolean from EDL;
+ myExecutionStatus : ListOfBoolean from EDL;
myParameterType : ParameterMode from EDL;
- myExpressionMember : StackOfBoolean from EDL;
+ myExpressionMember : ListOfBoolean from EDL;
myPrintList : AsciiString from TCollection;
myCurrentTemplate : AsciiString from TCollection;
myVariableList : HSequenceOfVariable from EDL;
#include <edl_rule.h>
-#include <EDL.tab.h>
-
-
#ifdef WNT
# include <windows.h>
#endif
# include <unistd.h>
#endif
-extern "C" {int EDLparse();}
-extern "C" {int EDLlex();}
-extern "C" {void EDL_SetFile();}
+extern "C" {
+ int EDLparse();
+ int EDLlex();
+ void EDL_SetFile();
+}
+
+#include <EDL.tab.h>
#ifndef WNT
extern FILE *EDLin;
if (fic) {
edlstring edlstr;
edlstr.str = (char *)aFile;
- edlstr.length = strlen(aFile);
+ edlstr.length = (int)strlen(aFile);
EDL_SetCurrentFile(edlstr);
EDLin = fic;
EDLlineno = 1;
void EDL_Interpretor::AddExecutionStatus(const Standard_Boolean aValue)
{
- myExecutionStatus.Push(aValue);
+ myExecutionStatus.Prepend(aValue);
}
Standard_Boolean EDL_Interpretor::RemoveExecutionStatus()
Standard_Boolean aResult;
if (!myExecutionStatus.IsEmpty()) {
- aResult = myExecutionStatus.Top();
- myExecutionStatus.Pop();
+ aResult = myExecutionStatus.First();
+ myExecutionStatus.RemoveFirst();
}
else {
aResult = Standard_True;
Standard_Boolean aResult;
if (!myExecutionStatus.IsEmpty()) {
- aResult = myExecutionStatus.Top();
+ aResult = myExecutionStatus.First();
}
else {
aResult = Standard_True;
void EDL_Interpretor::AddExpressionMember(const Standard_Boolean aValue)
{
- myExpressionMember.Push(aValue);
+ myExpressionMember.Prepend(aValue);
}
Standard_Boolean EDL_Interpretor::GetExpressionMember()
{
- Standard_Boolean aResult = myExpressionMember.Top();
+ Standard_Boolean aResult = myExpressionMember.First();
- myExpressionMember.Pop();
+ myExpressionMember.RemoveFirst();
return aResult;
}
uses SC from GraphTools,
SCList from GraphTools,
ListIteratorOfSCList from GraphTools,
- StackOfInteger from TColStd
+ ListOfInteger from TColStd
raises NoSuchObject from Standard,
NoMoreObject from Standard,
-- algorithm
performed : Boolean from Standard;
myNowIndex : Integer from Standard;
- myStack : StackOfInteger from TColStd;
+ myStack : ListOfInteger from TColStd;
-- result
mySort : SCList from GraphTools;
myNowIndex++;
myVertices(k).SetVisited(myNowIndex);
MIN = myNowIndex;
- myStack.Push(k);
+ myStack.Prepend(k);
Standard_Integer currentVisited;
currentVisited = myVertices(k).GetVisited();
Standard_Integer adjacentIndex;
Handle(GraphTools_SC) SC = new GraphTools_SC();
Standard_Boolean more;
do {
- SC->AddVertex(myStack.Top());
- myVertices(myStack.Top()).SetVisited(IntegerLast());
- myVertices(myStack.Top()).SetSC(SC);
- more = myStack.Top() != k;
- myStack.Pop() ;
+ SC->AddVertex(myStack.First());
+ myVertices(myStack.First()).SetVisited(IntegerLast());
+ myVertices(myStack.First()).SetSC(SC);
+ more = myStack.First() != k;
+ myStack.RemoveFirst() ;
}
while (more);
mySort.Prepend(SC);
-- returned before an other which point to it.
-uses StackOfInteger from TColStd,
+uses ListOfInteger from TColStd,
ListOfSequenceOfInteger from GraphTools,
ListIteratorOfListOfSequenceOfInteger from GraphTools
myVertices : SCMap from GraphTools;
-- algorithm
myNowIndex : Integer from Standard;
- myStack : StackOfInteger from TColStd;
+ myStack : ListOfInteger from TColStd;
-- result
mySort : ListOfSequenceOfInteger from GraphTools;
myIterator : ListIteratorOfListOfSequenceOfInteger from GraphTools;
myNowIndex++;
myVertices(k) = myNowIndex;
MIN = myNowIndex;
- myStack.Push(k);
+ myStack.Prepend(k);
Standard_Integer currentVisited;
currentVisited = myVertices.FindFromIndex (k);
Standard_Integer adjacentIndex;
TColStd_SequenceOfInteger& newSC = mySort.First();
Standard_Boolean more;
do {
- newSC.Append(myStack.Top());
- myVertices(myStack.Top()) = IntegerLast();
- more = myStack.Top() != k;
- myStack.Pop() ;
+ newSC.Append(myStack.First());
+ myVertices(myStack.First()) = IntegerLast();
+ more = myStack.First() != k;
+ myStack.RemoveFirst() ;
}
while (more);
}
instantiates HSequence from TCollection ( Library from WOKBuilder,
SequenceOfLibrary from WOKBuilder );
- private class QueueOfMSAction
- instantiates Queue from TCollection ( MSAction from WOKBuilder );
+ private class ListOfMSAction
+ instantiates List from TCollection ( MSAction from WOKBuilder );
private class MapOfMSAction
instantiates Map from WOKTools ( MSAction from WOKBuilder,
MSActionType from WOKBuilder,
HAsciiString from TCollection,
HSequenceOfHAsciiString from TColStd,
- QueueOfMSAction from WOKBuilder
+ ListOfMSAction from WOKBuilder
is
Create(ams : MSchema from WOKBuilder; anaction : MSActionID from WOKBuilder)
mytarget : HAsciiString from TCollection;
- myglobal : QueueOfMSAction from WOKBuilder;
- myinsttypes : QueueOfMSAction from WOKBuilder;
- mygentypes : QueueOfMSAction from WOKBuilder;
- mygetypes : QueueOfMSAction from WOKBuilder;
- mytypes : QueueOfMSAction from WOKBuilder;
+ myglobal : ListOfMSAction from WOKBuilder;
+ myinsttypes : ListOfMSAction from WOKBuilder;
+ mygentypes : ListOfMSAction from WOKBuilder;
+ mygetypes : ListOfMSAction from WOKBuilder;
+ mytypes : ListOfMSAction from WOKBuilder;
mycurrent : MSAction from WOKBuilder;
const Handle(WOKBuilder_MSAction)& WOKBuilder_MSTranslatorIterator::Value()
{
if(!myglobal.IsEmpty()) {
- mycurrent = myglobal.Front();
+ mycurrent = myglobal.First();
return mycurrent;
}
if(!mygetypes.IsEmpty()) {
- mycurrent = mygetypes.Front();
+ mycurrent = mygetypes.First();
return mycurrent;
}
if(!mygentypes.IsEmpty()) {
- mycurrent = mygentypes.Front();
+ mycurrent = mygentypes.First();
return mycurrent;
}
if(!myinsttypes.IsEmpty()) {
- mycurrent = myinsttypes.Front();
+ mycurrent = myinsttypes.First();
return mycurrent;
}
- mycurrent = mytypes.Front();
+ mycurrent = mytypes.First();
return mycurrent;
}
case WOKBuilder_SchUses:
case WOKBuilder_Uses:
case WOKBuilder_GlobEnt:
- myglobal.Push(anact);
+ myglobal.Append(anact);
break;
case WOKBuilder_Instantiate:
case WOKBuilder_InstToStd:
- myinsttypes.Push(anact);
+ myinsttypes.Append(anact);
break;
case WOKBuilder_InterfaceTypes:
case WOKBuilder_SchemaTypes:
case WOKBuilder_PackageMethods:
- mygetypes.Push(anact);
+ mygetypes.Append(anact);
break;
case WOKBuilder_GenType:
- mygentypes.Push(anact);
+ mygentypes.Append(anact);
break;
case WOKBuilder_CompleteType:
case WOKBuilder_SchemaType:
case WOKBuilder_Inherits:
case WOKBuilder_TypeUses:
- mytypes.Push(anact);
+ mytypes.Append(anact);
break;
default:
Standard_ProgramError::Raise("WOKBuilder_MSTranslatorIterator::AddInStack : Unknown action type");
case WOKBuilder_SchUses:
case WOKBuilder_Uses:
case WOKBuilder_GlobEnt:
- myglobal.Pop();
+ myglobal.RemoveFirst();
break;
case WOKBuilder_InterfaceTypes:
case WOKBuilder_SchemaTypes:
case WOKBuilder_PackageMethods:
- mygetypes.Pop();
+ mygetypes.RemoveFirst();
break;
case WOKBuilder_Instantiate:
case WOKBuilder_InstToStd:
- myinsttypes.Pop();
+ myinsttypes.RemoveFirst();
break;
case WOKBuilder_GenType:
- mygentypes.Pop();
+ mygentypes.RemoveFirst();
break;
case WOKBuilder_SchemaType:
case WOKBuilder_CompleteType:
case WOKBuilder_Inherits:
case WOKBuilder_TypeUses:
- mytypes.Pop();
+ mytypes.RemoveFirst();
break;
default:
Standard_ProgramError::Raise("WOKBuilder_MSTranslatorIterator::Next : Unknown action type");
#include <WOKTools_Messages.hxx>
#include <WOKTools_MapIteratorOfMapOfHAsciiString.hxx>
+
+extern "C" int DELIVERYparse();
+
#include <WOKDeliv_ParseDelivery.hxx>
#include <TCollection_HAsciiString.hxx>
private class CompareOfString;
- private class StackOfHandle
- instantiates Stack from TCollection ( Handle from WOKNT );
+ private class ListOfHandle
+ instantiates List from TCollection ( Handle from WOKNT );
private class SequenceOfShell
instantiates Sequence from TCollection ( Shell from WOKNT);
AsciiString from TCollection,
FindData from WOKNT,
Handle from WOKNT,
- StackOfHandle from WOKNT,
+ ListOfHandle from WOKNT,
Path from WOKNT
is
mymask : AsciiString from TCollection;
mypath : Path from WOKNT;
mydata : FindData from WOKNT;
- myStack : StackOfHandle from WOKNT;
+ myStack : ListOfHandle from WOKNT;
mymore : Boolean from Standard;
myrecflag : Boolean from Standard;
mask.AssignCat("/");
mask.AssignCat(mymask.ToCString());
- myStack.Push(FindFirstFile(mask.ToCString(), &mydata));
- if(myStack.Top() == INVALID_HANDLE_VALUE )
+ myStack.Prepend(FindFirstFile(mask.ToCString(), &mydata));
+ if(myStack.First() == INVALID_HANDLE_VALUE )
mymore = Standard_False;
else
mymore = Standard_True;
{
while(IsDots((Standard_CString)mydata.cFileName) && !myStack.IsEmpty())
{
- if(!FindNextFile(myStack.Top(), &mydata))
+ if(!FindNextFile(myStack.First(), &mydata))
{
if(GetLastError() == ERROR_NO_MORE_FILES)
{
mask.AssignCat(mymask);
WOKNT_Handle nextone = FindFirstFile(mask.ToCString(), &mydata);
- myStack.Push(nextone);
+ myStack.Prepend(nextone);
SkipDots();
if(!myStack.IsEmpty())
{
- if(myStack.Top() == INVALID_HANDLE_VALUE )
+ if(myStack.First() == INVALID_HANDLE_VALUE )
{
Pop();
mymore = Standard_False;
{
if(!myStack.IsEmpty())
{
- FindClose(myStack.Top());
- myStack.Pop();
+ FindClose(myStack.First());
+ myStack.RemoveFirst();
if(!myStack.IsEmpty())
{
- if(!FindNextFile(myStack.Top(), &mydata))
+ if(!FindNextFile(myStack.First(), &mydata))
{
if(GetLastError() == ERROR_NO_MORE_FILES)
{
void WOKNT_PathIterator::Next()
{
- if(myStack.Top()!=INVALID_HANDLE_VALUE && mymore)
+ if(myStack.First()!=INVALID_HANDLE_VALUE && mymore)
{
if(!IsDots(mydata.cFileName) && mydata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY && myrecflag)
- Push(mydata, myStack.Top());
+ Push(mydata, myStack.First());
if (!mymore) Pop();
else
{
- if(!FindNextFile(myStack.Top(), &mydata))
+ if(!FindNextFile(myStack.First(), &mydata))
{
if(GetLastError() == ERROR_NO_MORE_FILES)
{
Standard_Integer WOKNT_PathIterator::LevelValue() const
{
- return myStack.Depth();
+ return myStack.Extent();
}
Standard_Boolean WOKNT_PathIterator::More() const
void WOKNT_PathIterator::Destroy() const
{
- if(myStack.Top() != INVALID_HANDLE_VALUE) FindClose(myStack.Top());
+ if(myStack.First() != INVALID_HANDLE_VALUE) FindClose(myStack.First());
}
#endif
if ( hFileSrc == INVALID_HANDLE_VALUE || hFileDst == INVALID_HANDLE_VALUE )
return retVal;
- while(TRUE)
+ for(;;)
{
if( !ReadFile( hFileSrc, buffer, BUFFER_SIZE, &dwBytesRead, NULL)) return retVal;
if( dwBytesRead == 0 ) break;
static BOOL _rm_func ( LPTSTR fileName, BOOL fDir, void* data ) {
BOOL fRetry = FALSE;
- BOOL status;
+ BOOL status = FALSE;
PDELETE_DATA pData = ( PDELETE_DATA )data;
++nFiles;
private class SequenceOfProcess
instantiates Sequence from TCollection ( Process from WOKUnix);
- private class StackOfDir
- instantiates Stack from TCollection ( Dir from WOKUnix );
+ private class ListOfDir
+ instantiates List from TCollection ( Dir from WOKUnix );
SystemLastError returns Integer from Standard;
Boolean from Standard,
HAsciiString from TCollection,
AsciiString from TCollection,
- StackOfDir from WOKUnix,
+ ListOfDir from WOKUnix,
Dir from WOKUnix,
DirEnt from WOKUnix,
Path from WOKUnix
mymask : AsciiString from TCollection;
mypath : Path from WOKUnix;
mydata : DirEnt from WOKUnix;
- mystack : StackOfDir from WOKUnix;
+ mystack : ListOfDir from WOKUnix;
mymore : Boolean from Standard;
myrecflag : Boolean from Standard;
return;
}
- mystack.Push(adir);
- mydata = readdir(mystack.Top());
+ mystack.Prepend(adir);
+ mydata = readdir(mystack.First());
mymore = Standard_True;
SkipDots();
if(!mydata) return;
while(IsDots((Standard_CString)mydata->d_name) && !mystack.IsEmpty())
{
- mydata = readdir(mystack.Top());
+ mydata = readdir(mystack.First());
if(!mydata)
{
if(!mystack.IsEmpty())
mypath = apath;
WOKUnix_Dir nextone = opendir(mypath->Name()->ToCString());
- mystack.Push(nextone);
- mydata = readdir(mystack.Top());
+ mystack.Prepend(nextone);
+ mydata = readdir(mystack.First());
SkipDots();
if(!mystack.IsEmpty())
{
- if(!mystack.Top())
+ if(!mystack.First())
mymore = Standard_False;
else
mymore = Standard_True;
{
if(!mystack.IsEmpty())
{
- closedir(mystack.Top());
- mystack.Pop();
+ closedir(mystack.First());
+ mystack.RemoveFirst();
if(!mystack.IsEmpty())
{
- mydata = readdir(mystack.Top());
+ mydata = readdir(mystack.First());
if(!mydata)
{
if(mystack.IsEmpty())
{
Handle(WOKUnix_Path) apath = new WOKUnix_Path(mypath->Name(), new TCollection_HAsciiString(mydata->d_name));
if(!IsDots(mydata->d_name) && myrecflag && apath->IsDirectory())
- Push(apath, mystack.Top());
+ Push(apath, mystack.First());
else
{
- mydata = readdir(mystack.Top());
+ mydata = readdir(mystack.First());
if(!mydata)
{
if(!mystack.IsEmpty())
Standard_Integer WOKUnix_PathIterator::LevelValue() const
{
- return mystack.Depth();
+ return mystack.Extent();
}
Standard_Boolean WOKUnix_PathIterator::More() const
{
while(!mystack.IsEmpty())
{
- if(mystack.Top()) closedir(mystack.Top());
- mystack.Pop();
+ if(mystack.First()) closedir(mystack.First());
+ mystack.RemoveFirst();
}
}