Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
e67f8499
Kaydet (Commit)
e67f8499
authored
Mar 25, 2011
tarafından
Rafael Dominguez
Kaydeden (comit)
Thorsten Behrens
Nis 11, 2011
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Remove DECLARE_LIST( SvTokenList, SvToken * )
üst
d57e94e8
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
67 additions
and
61 deletions
+67
-61
lex.hxx
idl/inc/lex.hxx
+58
-44
lex.cxx
idl/source/cmptools/lex.cxx
+9
-17
No files found.
idl/inc/lex.hxx
Dosyayı görüntüle @
e67f8499
...
@@ -29,10 +29,11 @@
...
@@ -29,10 +29,11 @@
#ifndef _LEX_HXX
#ifndef _LEX_HXX
#define _LEX_HXX
#define _LEX_HXX
#include <boost/ptr_container/ptr_vector.hpp>
#include <hash.hxx>
#include <hash.hxx>
#include <tools/gen.hxx>
#include <tools/gen.hxx>
#include <tools/stream.hxx>
#include <tools/stream.hxx>
#include <tools/list.hxx>
enum
SVTOKEN_ENUM
{
SVTOKEN_EMPTY
,
SVTOKEN_COMMENT
,
enum
SVTOKEN_ENUM
{
SVTOKEN_EMPTY
,
SVTOKEN_COMMENT
,
SVTOKEN_INTEGER
,
SVTOKEN_STRING
,
SVTOKEN_INTEGER
,
SVTOKEN_STRING
,
...
@@ -127,8 +128,6 @@ inline SvToken::SvToken( SVTOKEN_ENUM nTypeP, const ByteString & rStr )
...
@@ -127,8 +128,6 @@ inline SvToken::SvToken( SVTOKEN_ENUM nTypeP, const ByteString & rStr )
inline
SvToken
::
SvToken
(
SVTOKEN_ENUM
nTypeP
)
inline
SvToken
::
SvToken
(
SVTOKEN_ENUM
nTypeP
)
:
nType
(
nTypeP
)
{}
:
nType
(
nTypeP
)
{}
DECLARE_LIST
(
SvTokenList
,
SvToken
*
)
class
SvTokenStream
class
SvTokenStream
{
{
sal_uLong
nLine
,
nColumn
;
sal_uLong
nLine
,
nColumn
;
...
@@ -144,8 +143,8 @@ class SvTokenStream
...
@@ -144,8 +143,8 @@ class SvTokenStream
SvFileStream
*
pInStream
;
SvFileStream
*
pInStream
;
SvStream
&
rInStream
;
SvStream
&
rInStream
;
String
aFileName
;
String
aFileName
;
SvTokenList
aTokList
;
boost
::
ptr_vector
<
SvToken
>
aTokList
;
SvToken
*
pCurToken
;
boost
::
ptr_vector
<
SvToken
>::
iterator
pCurToken
;
void
InitCtor
();
void
InitCtor
();
...
@@ -192,30 +191,37 @@ public:
...
@@ -192,30 +191,37 @@ public:
{
nTabSize
=
nTabSizeP
;
}
{
nTabSize
=
nTabSizeP
;
}
sal_uInt16
GetTabSize
()
const
{
return
nTabSize
;
}
sal_uInt16
GetTabSize
()
const
{
return
nTabSize
;
}
SvToken
*
GetToken_PrevAll
()
SvToken
*
GetToken_PrevAll
()
{
{
SvToken
*
pRetToken
=
pCurToken
;
boost
::
ptr_vector
<
SvToken
>::
iterator
pRetToken
=
pCurToken
;
if
(
NULL
==
(
pCurToken
=
aTokList
.
Prev
())
)
// current pointer never null
// current iterator always valid
pCurToken
=
pRetToken
;
if
(
pCurToken
!=
aTokList
.
begin
())
--
pCurToken
;
return
&
(
*
pRetToken
);
}
SvToken
*
GetToken_NextAll
()
{
boost
::
ptr_vector
<
SvToken
>::
iterator
pRetToken
=
pCurToken
++
;
if
(
pCurToken
==
aTokList
.
end
())
pCurToken
=
pRetToken
;
SetMax
();
return
&
(
*
pRetToken
);
}
SvToken
*
GetToken_Next
()
{
// comments get removed initially
return
GetToken_NextAll
();
}
SvToken
*
GetToken
()
const
{
return
&
(
*
pCurToken
);
}
return
pRetToken
;
}
SvToken
*
GetToken_NextAll
()
{
SvToken
*
pRetToken
=
pCurToken
;
if
(
NULL
==
(
pCurToken
=
aTokList
.
Next
())
)
// current pointer never null
pCurToken
=
pRetToken
;
SetMax
();
return
pRetToken
;
}
SvToken
*
GetToken_Next
()
{
// comments get removed initially
return
GetToken_NextAll
();
}
SvToken
*
GetToken
()
const
{
return
pCurToken
;
}
sal_Bool
Read
(
char
cChar
)
sal_Bool
Read
(
char
cChar
)
{
{
if
(
pCurToken
->
IsChar
()
if
(
pCurToken
->
IsChar
()
...
@@ -227,6 +233,7 @@ public:
...
@@ -227,6 +233,7 @@ public:
else
else
return
sal_False
;
return
sal_False
;
}
}
void
ReadDelemiter
()
void
ReadDelemiter
()
{
{
if
(
pCurToken
->
IsChar
()
if
(
pCurToken
->
IsChar
()
...
@@ -237,22 +244,29 @@ public:
...
@@ -237,22 +244,29 @@ public:
}
}
}
}
sal_uInt32
Tell
()
const
sal_uInt32
Tell
()
const
{
return
pCurToken
-
aTokList
.
begin
();
}
{
return
aTokList
.
GetCurPos
();
}
void
Seek
(
sal_uInt32
nPos
)
void
Seek
(
sal_uInt32
nPos
)
{
{
pCurToken
=
aTokList
.
Seek
(
nPos
);
pCurToken
=
aTokList
.
begin
()
+
nPos
;
SetMax
();
SetMax
();
}
}
void
SeekRel
(
sal_Int32
nRelPos
)
{
void
SeekRel
(
sal_uInt32
nRelPos
)
pCurToken
=
aTokList
.
Seek
(
Tell
()
+
nRelPos
);
{
SetMax
();
sal_uInt32
relIdx
=
Tell
()
+
nRelPos
;
}
void
SeekEnd
()
if
(
relIdx
<
aTokList
.
size
())
{
{
pCurToken
=
aTokList
.
Seek
(
nMaxPos
);
pCurToken
=
aTokList
.
begin
()
+
(
Tell
()
+
nRelPos
);
}
SetMax
();
}
}
void
SeekEnd
()
{
pCurToken
=
aTokList
.
begin
()
+
nMaxPos
;
}
};
};
...
...
idl/source/cmptools/lex.cxx
Dosyayı görüntüle @
e67f8499
...
@@ -105,7 +105,6 @@ void SvTokenStream::InitCtor()
...
@@ -105,7 +105,6 @@ void SvTokenStream::InitCtor()
nLine
=
nColumn
=
0
;
nLine
=
nColumn
=
0
;
nBufPos
=
0
;
nBufPos
=
0
;
nTabSize
=
4
;
nTabSize
=
4
;
pCurToken
=
NULL
;
nMaxPos
=
0
;
nMaxPos
=
0
;
c
=
GetNextChar
();
c
=
GetNextChar
();
FillTokenList
();
FillTokenList
();
...
@@ -115,7 +114,6 @@ SvTokenStream::SvTokenStream( const String & rFileName )
...
@@ -115,7 +114,6 @@ SvTokenStream::SvTokenStream( const String & rFileName )
:
pInStream
(
new
SvFileStream
(
rFileName
,
STREAM_STD_READ
|
STREAM_NOCREATE
)
)
:
pInStream
(
new
SvFileStream
(
rFileName
,
STREAM_STD_READ
|
STREAM_NOCREATE
)
)
,
rInStream
(
*
pInStream
)
,
rInStream
(
*
pInStream
)
,
aFileName
(
rFileName
)
,
aFileName
(
rFileName
)
,
aTokList
(
0x8000
,
0x8000
)
{
{
InitCtor
();
InitCtor
();
}
}
...
@@ -124,7 +122,6 @@ SvTokenStream::SvTokenStream( SvStream & rStream, const String & rFileName )
...
@@ -124,7 +122,6 @@ SvTokenStream::SvTokenStream( SvStream & rStream, const String & rFileName )
:
pInStream
(
NULL
)
:
pInStream
(
NULL
)
,
rInStream
(
rStream
)
,
rInStream
(
rStream
)
,
aFileName
(
rFileName
)
,
aFileName
(
rFileName
)
,
aTokList
(
0x8000
,
0x8000
)
{
{
InitCtor
();
InitCtor
();
}
}
...
@@ -132,28 +129,23 @@ SvTokenStream::SvTokenStream( SvStream & rStream, const String & rFileName )
...
@@ -132,28 +129,23 @@ SvTokenStream::SvTokenStream( SvStream & rStream, const String & rFileName )
SvTokenStream
::~
SvTokenStream
()
SvTokenStream
::~
SvTokenStream
()
{
{
delete
pInStream
;
delete
pInStream
;
SvToken
*
pTok
=
aTokList
.
Last
();
while
(
pTok
)
{
delete
pTok
;
pTok
=
aTokList
.
Prev
();
}
}
}
void
SvTokenStream
::
FillTokenList
()
void
SvTokenStream
::
FillTokenList
()
{
{
SvToken
*
pToken
=
new
SvToken
();
SvToken
*
pToken
=
new
SvToken
();
aTokList
.
Insert
(
pToken
,
LIST_APPEND
);
aTokList
.
push_back
(
pToken
);
do
do
{
{
if
(
!
MakeToken
(
*
pToken
)
)
if
(
!
MakeToken
(
*
pToken
)
)
{
{
SvToken
*
p
=
aTokList
.
Prev
();
if
(
!
aTokList
.
empty
())
*
pToken
=
SvToken
();
if
(
p
)
{
{
pToken
->
SetLine
(
p
->
GetLine
()
);
*
pToken
=
SvToken
();
pToken
->
SetColumn
(
p
->
GetColumn
()
);
boost
::
ptr_vector
<
SvToken
>::
const_iterator
it
=
aTokList
.
begin
();
pToken
->
SetLine
(
it
->
GetLine
());
pToken
->
SetColumn
(
it
->
GetColumn
());
}
}
break
;
break
;
}
}
...
@@ -164,11 +156,11 @@ void SvTokenStream::FillTokenList()
...
@@ -164,11 +156,11 @@ void SvTokenStream::FillTokenList()
else
else
{
{
pToken
=
new
SvToken
();
pToken
=
new
SvToken
();
aTokList
.
Insert
(
pToken
,
LIST_APPEND
);
aTokList
.
push_back
(
pToken
);
}
}
}
}
while
(
!
pToken
->
IsEof
()
);
while
(
!
pToken
->
IsEof
()
);
pCurToken
=
aTokList
.
First
();
pCurToken
=
aTokList
.
begin
();
}
}
void
SvTokenStream
::
SetCharSet
(
CharSet
nSet
)
void
SvTokenStream
::
SetCharSet
(
CharSet
nSet
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment