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
ea1e3b77
Kaydet (Commit)
ea1e3b77
authored
Eki 01, 2013
tarafından
Takeshi Abe
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
sal_Bool to bool
Change-Id: I16ddbcf100e21d6c05fccbe24faca2932a605902
üst
111a2b94
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
67 additions
and
67 deletions
+67
-67
basicmanagerrepository.cxx
basic/source/basmgr/basicmanagerrepository.cxx
+2
-2
basmgr.cxx
basic/source/basmgr/basmgr.cxx
+10
-10
sbunoobj.cxx
basic/source/classes/sbunoobj.cxx
+5
-5
sbxmod.cxx
basic/source/classes/sbxmod.cxx
+13
-13
exprnode.cxx
basic/source/comp/exprnode.cxx
+13
-13
exprtree.cxx
basic/source/comp/exprtree.cxx
+16
-16
loops.cxx
basic/source/comp/loops.cxx
+4
-4
parser.cxx
basic/source/comp/parser.cxx
+4
-4
No files found.
basic/source/basmgr/basicmanagerrepository.cxx
Dosyayı görüntüle @
ea1e3b77
...
...
@@ -442,7 +442,7 @@ namespace basic
SotStorageRef
xDummyStor
=
new
SotStorage
(
OUString
()
);
_out_rpBasicManager
=
new
BasicManager
(
*
xDummyStor
,
OUString
()
/* TODO/LATER: xStorage */
,
pAppBasic
,
&
aAppBasicDir
,
sal_T
rue
);
&
aAppBasicDir
,
t
rue
);
if
(
!
_out_rpBasicManager
->
GetErrors
().
empty
()
)
{
// handle errors
...
...
@@ -467,7 +467,7 @@ namespace basic
// create new BASIC-manager
StarBASIC
*
pBasic
=
new
StarBASIC
(
pAppBasic
);
pBasic
->
SetFlag
(
SBX_EXTSEARCH
);
_out_rpBasicManager
=
new
BasicManager
(
pBasic
,
NULL
,
sal_T
rue
);
_out_rpBasicManager
=
new
BasicManager
(
pBasic
,
NULL
,
t
rue
);
}
// knit the containers with the BasicManager
...
...
basic/source/basmgr/basmgr.cxx
Dosyayı görüntüle @
ea1e3b77
...
...
@@ -874,7 +874,7 @@ void BasicManager::LoadBasicManager( SotStorage& rStorage, const OUString& rBase
{
INetURLObject
aObj
(
aRealStorageName
,
INET_PROT_FILE
);
aObj
.
removeSegment
();
bool
bWasAbsolute
=
sal_F
alse
;
bool
bWasAbsolute
=
f
alse
;
aObj
=
aObj
.
smartRel2Abs
(
pInfo
->
GetRelStorageName
(),
bWasAbsolute
);
//*** TODO: Replace if still necessary
...
...
@@ -960,7 +960,7 @@ void BasicManager::LoadOldBasicManager( SotStorage& rStorage )
INetURLObject
aLibRelStorage
(
aStorName
);
aLibRelStorage
.
removeSegment
();
bool
bWasAbsolute
=
sal_F
alse
;
bool
bWasAbsolute
=
f
alse
;
aLibRelStorage
=
aLibRelStorage
.
smartRel2Abs
(
aLibRelStorageName
,
bWasAbsolute
);
DBG_ASSERT
(
!
bWasAbsolute
,
"RelStorageName was absolute!"
);
...
...
@@ -971,11 +971,11 @@ void BasicManager::LoadOldBasicManager( SotStorage& rStorage )
}
else
{
xStorageRef
=
new
SotStorage
(
sal_F
alse
,
aLibAbsStorage
.
GetMainURL
(
INetURLObject
::
NO_DECODE
),
eStorageReadMode
,
sal_T
rue
);
xStorageRef
=
new
SotStorage
(
f
alse
,
aLibAbsStorage
.
GetMainURL
(
INetURLObject
::
NO_DECODE
),
eStorageReadMode
,
t
rue
);
if
(
xStorageRef
->
GetError
()
!=
ERRCODE_NONE
)
xStorageRef
=
new
SotStorage
(
sal_F
alse
,
aLibRelStorage
.
GetMainURL
(
INetURLObject
::
NO_DECODE
),
eStorageReadMode
,
sal_T
rue
);
xStorageRef
=
new
SotStorage
(
f
alse
,
aLibRelStorage
.
GetMainURL
(
INetURLObject
::
NO_DECODE
),
eStorageReadMode
,
t
rue
);
}
if
(
xStorageRef
.
Is
()
)
{
...
...
@@ -1077,7 +1077,7 @@ sal_Bool BasicManager::ImpLoadLibrary( BasicLibInfo* pLibInfo, SotStorage* pCurS
if
(
!
xStorage
.
Is
()
)
{
xStorage
=
new
SotStorage
(
sal_F
alse
,
aStorageName
,
eStorageReadMode
);
xStorage
=
new
SotStorage
(
f
alse
,
aStorageName
,
eStorageReadMode
);
}
SotStorageRef
xBasicStorage
=
xStorage
->
OpenSotStorage
(
OUString
(
szBasicStorage
),
eStorageReadMode
,
sal_False
);
...
...
@@ -1328,11 +1328,11 @@ sal_Bool BasicManager::RemoveLib( sal_uInt16 nLib, sal_Bool bDelBasicFromStorage
SotStorageRef
xStorage
;
if
(
!
pLibInfo
->
IsExtern
()
)
{
xStorage
=
new
SotStorage
(
sal_F
alse
,
GetStorageName
()
);
xStorage
=
new
SotStorage
(
f
alse
,
GetStorageName
()
);
}
else
{
xStorage
=
new
SotStorage
(
sal_F
alse
,
pLibInfo
->
GetStorageName
()
);
xStorage
=
new
SotStorage
(
f
alse
,
pLibInfo
->
GetStorageName
()
);
}
if
(
xStorage
->
IsStorage
(
OUString
(
szBasicStorage
)
)
)
...
...
@@ -1551,7 +1551,7 @@ StarBASIC* BasicManager::CreateLib( const OUString& rLibName, const OUString& Pa
{
if
(
!
LinkTargetURL
.
isEmpty
())
{
SotStorageRef
xStorage
=
new
SotStorage
(
sal_F
alse
,
LinkTargetURL
,
STREAM_READ
|
STREAM_SHARE_DENYWRITE
);
SotStorageRef
xStorage
=
new
SotStorage
(
f
alse
,
LinkTargetURL
,
STREAM_READ
|
STREAM_SHARE_DENYWRITE
);
if
(
!
xStorage
->
GetError
()
)
{
pLib
=
AddLib
(
*
xStorage
,
rLibName
,
sal_True
);
...
...
basic/source/classes/sbunoobj.cxx
Dosyayı görüntüle @
ea1e3b77
...
...
@@ -1483,15 +1483,15 @@ Any sbxToUnoValue( const SbxValue* pVar, const Type& rType, Property* pUnoProper
case
TypeClass_BYTE
:
{
sal_Int16
nVal
=
pVar
->
GetInteger
();
sal_Bool
bOverflow
=
sal_F
alse
;
bool
bOverflow
=
f
alse
;
if
(
nVal
<
-
128
)
{
bOverflow
=
sal_T
rue
;
bOverflow
=
t
rue
;
nVal
=
-
128
;
}
else
if
(
nVal
>
127
)
{
bOverflow
=
sal_T
rue
;
bOverflow
=
t
rue
;
nVal
=
127
;
}
if
(
bOverflow
)
...
...
@@ -1936,7 +1936,7 @@ OUString Impl_DumpProperties( SbUnoObject* pUnoObj )
// Is it in Uno a sequence?
SbxDataType
eType
=
pVar
->
GetFullType
();
sal_Bool
bMaybeVoid
=
sal_F
alse
;
bool
bMaybeVoid
=
f
alse
;
if
(
i
<
nUnoPropCount
)
{
const
Property
&
rProp
=
pUnoProps
[
i
];
...
...
@@ -1946,7 +1946,7 @@ OUString Impl_DumpProperties( SbUnoObject* pUnoObj )
if
(
rProp
.
Attributes
&
PropertyAttribute
::
MAYBEVOID
)
{
eType
=
unoToSbxType
(
rProp
.
Type
.
getTypeClass
()
);
bMaybeVoid
=
sal_T
rue
;
bMaybeVoid
=
t
rue
;
}
if
(
eType
==
SbxOBJECT
)
{
...
...
basic/source/classes/sbxmod.cxx
Dosyayı görüntüle @
ea1e3b77
...
...
@@ -1125,7 +1125,7 @@ sal_uInt16 SbModule::Run( SbMethod* pMeth )
// Launcher problem
// i80726 The Find below will genarate an error in Testtool so we reset it unless there was one before already
sal_B
ool
bWasError
=
SbxBase
::
GetError
()
!=
0
;
b
ool
bWasError
=
SbxBase
::
GetError
()
!=
0
;
SbxVariable
*
pMSOMacroRuntimeLibVar
=
Find
(
"Launcher"
,
SbxCLASS_OBJECT
);
if
(
!
bWasError
&&
(
SbxBase
::
GetError
()
==
SbxERR_PROC_UNDEFINED
)
)
SbxBase
::
ResetError
();
...
...
@@ -2277,9 +2277,9 @@ class FormObjEventListenerImpl : public FormObjEventListener_BASE
uno
::
Reference
<
lang
::
XComponent
>
mxComponent
;
uno
::
Reference
<
frame
::
XModel
>
mxModel
;
bool
mbDisposed
;
sal_B
ool
mbOpened
;
sal_B
ool
mbActivated
;
sal_B
ool
mbShowing
;
b
ool
mbOpened
;
b
ool
mbActivated
;
b
ool
mbShowing
;
FormObjEventListenerImpl
(
const
FormObjEventListenerImpl
&
);
// not defined
FormObjEventListenerImpl
&
operator
=
(
const
FormObjEventListenerImpl
&
);
// not defined
...
...
@@ -2287,7 +2287,7 @@ class FormObjEventListenerImpl : public FormObjEventListener_BASE
public
:
FormObjEventListenerImpl
(
SbUserFormModule
*
pUserForm
,
const
uno
::
Reference
<
lang
::
XComponent
>&
xComponent
,
const
uno
::
Reference
<
frame
::
XModel
>&
xModel
)
:
mpUserForm
(
pUserForm
),
mxComponent
(
xComponent
),
mxModel
(
xModel
),
mbDisposed
(
false
),
mbOpened
(
sal_False
),
mbActivated
(
sal_False
),
mbShowing
(
sal_F
alse
)
mbDisposed
(
false
),
mbOpened
(
false
),
mbActivated
(
false
),
mbShowing
(
f
alse
)
{
if
(
mxComponent
.
is
()
)
{
...
...
@@ -2319,7 +2319,7 @@ public:
removeListener
();
}
sal_B
ool
isShowing
()
const
{
return
mbShowing
;
}
b
ool
isShowing
()
const
{
return
mbShowing
;
}
void
removeListener
()
{
...
...
@@ -2354,11 +2354,11 @@ public:
{
if
(
mpUserForm
)
{
mbOpened
=
sal_T
rue
;
mbShowing
=
sal_T
rue
;
mbOpened
=
t
rue
;
mbShowing
=
t
rue
;
if
(
mbActivated
)
{
mbOpened
=
mbActivated
=
sal_F
alse
;
mbOpened
=
mbActivated
=
f
alse
;
mpUserForm
->
triggerActivateEvent
();
}
}
...
...
@@ -2399,8 +2399,8 @@ public:
virtual
void
SAL_CALL
windowClosed
(
const
lang
::
EventObject
&
/*e*/
)
throw
(
uno
::
RuntimeException
)
{
mbOpened
=
sal_F
alse
;
mbShowing
=
sal_F
alse
;
mbOpened
=
f
alse
;
mbShowing
=
f
alse
;
}
virtual
void
SAL_CALL
windowMinimized
(
const
lang
::
EventObject
&
/*e*/
)
throw
(
uno
::
RuntimeException
)
...
...
@@ -2415,10 +2415,10 @@ public:
{
if
(
mpUserForm
)
{
mbActivated
=
sal_T
rue
;
mbActivated
=
t
rue
;
if
(
mbOpened
)
{
mbOpened
=
mbActivated
=
sal_F
alse
;
mbOpened
=
mbActivated
=
f
alse
;
mpUserForm
->
triggerActivateEvent
();
}
}
...
...
basic/source/comp/exprnode.cxx
Dosyayı görüntüle @
ea1e3b77
...
...
@@ -311,11 +311,11 @@ void SbiExprNode::FoldConstants()
||
eTok
==
IDIV
||
eTok
==
MOD
)
{
// Integer operations
sal_Bool
err
=
sal_F
alse
;
if
(
nl
>
SbxMAXLNG
)
err
=
sal_T
rue
,
nl
=
SbxMAXLNG
;
else
if
(
nl
<
SbxMINLNG
)
err
=
sal_T
rue
,
nl
=
SbxMINLNG
;
if
(
nr
>
SbxMAXLNG
)
err
=
sal_T
rue
,
nr
=
SbxMAXLNG
;
else
if
(
nr
<
SbxMINLNG
)
err
=
sal_T
rue
,
nr
=
SbxMINLNG
;
bool
err
=
f
alse
;
if
(
nl
>
SbxMAXLNG
)
err
=
t
rue
,
nl
=
SbxMAXLNG
;
else
if
(
nl
<
SbxMINLNG
)
err
=
t
rue
,
nl
=
SbxMINLNG
;
if
(
nr
>
SbxMAXLNG
)
err
=
t
rue
,
nr
=
SbxMAXLNG
;
else
if
(
nr
<
SbxMINLNG
)
err
=
t
rue
,
nr
=
SbxMINLNG
;
ll
=
(
long
)
nl
;
lr
=
(
long
)
nr
;
llMod
=
(
long
)
(
nl
<
0
?
nl
-
0.5
:
nl
+
0.5
);
lrMod
=
(
long
)
(
nr
<
0
?
nr
-
0.5
:
nr
+
0.5
);
...
...
@@ -325,20 +325,20 @@ void SbiExprNode::FoldConstants()
bError
=
true
;
}
}
sal_Bool
bBothInt
=
sal_Bool
(
pLeft
->
eType
<
SbxSINGLE
bool
bBothInt
=
(
pLeft
->
eType
<
SbxSINGLE
&&
pRight
->
eType
<
SbxSINGLE
);
delete
pLeft
;
pLeft
=
NULL
;
delete
pRight
;
pRight
=
NULL
;
nVal
=
0
;
eType
=
SbxDOUBLE
;
eNodeType
=
SbxNUMVAL
;
sal_Bool
bCheckType
=
sal_F
alse
;
bool
bCheckType
=
f
alse
;
switch
(
eTok
)
{
case
EXPON
:
nVal
=
pow
(
nl
,
nr
);
break
;
case
MUL
:
bCheckType
=
sal_T
rue
;
bCheckType
=
t
rue
;
nVal
=
nl
*
nr
;
break
;
case
DIV
:
if
(
!
nr
)
...
...
@@ -348,10 +348,10 @@ void SbiExprNode::FoldConstants()
}
else
nVal
=
nl
/
nr
;
break
;
case
PLUS
:
bCheckType
=
sal_T
rue
;
bCheckType
=
t
rue
;
nVal
=
nl
+
nr
;
break
;
case
MINUS
:
bCheckType
=
sal_T
rue
;
bCheckType
=
t
rue
;
nVal
=
nl
-
nr
;
break
;
case
EQ
:
nVal
=
(
nl
==
nr
)
?
SbxTRUE
:
SbxFALSE
;
...
...
@@ -427,9 +427,9 @@ void SbiExprNode::FoldConstants()
nVal
=
-
nVal
;
break
;
case
NOT
:
{
// Integer operation!
sal_Bool
err
=
sal_F
alse
;
if
(
nVal
>
SbxMAXLNG
)
err
=
sal_T
rue
,
nVal
=
SbxMAXLNG
;
else
if
(
nVal
<
SbxMINLNG
)
err
=
sal_T
rue
,
nVal
=
SbxMINLNG
;
bool
err
=
f
alse
;
if
(
nVal
>
SbxMAXLNG
)
err
=
t
rue
,
nVal
=
SbxMAXLNG
;
else
if
(
nVal
<
SbxMINLNG
)
err
=
t
rue
,
nVal
=
SbxMINLNG
;
if
(
err
)
{
pGen
->
GetParser
()
->
Error
(
SbERR_MATH_OVERFLOW
);
...
...
basic/source/comp/exprtree.cxx
Dosyayı görüntüle @
ea1e3b77
...
...
@@ -85,21 +85,21 @@ SbiExpression::~SbiExpression()
// Are there parameters without brackets following? This may be a number,
// a string, a symbol or also a comma (if the 1st parameter is missing)
static
sal_B
ool
DoParametersFollow
(
SbiParser
*
p
,
SbiExprType
eCurExpr
,
SbiToken
eTok
)
static
b
ool
DoParametersFollow
(
SbiParser
*
p
,
SbiExprType
eCurExpr
,
SbiToken
eTok
)
{
if
(
eTok
==
LPAREN
)
{
return
sal_T
rue
;
return
t
rue
;
}
// but only if similar to CALL!
if
(
!
p
->
WhiteSpace
()
||
eCurExpr
!=
SbSYMBOL
)
{
return
sal_F
alse
;
return
f
alse
;
}
if
(
eTok
==
NUMBER
||
eTok
==
MINUS
||
eTok
==
FIXSTRING
||
eTok
==
SYMBOL
||
eTok
==
COMMA
||
eTok
==
DOT
||
eTok
==
NOT
||
eTok
==
BYVAL
)
{
return
sal_T
rue
;
return
t
rue
;
}
else
// check for default params with reserved names ( e.g. names of tokens )
{
...
...
@@ -108,10 +108,10 @@ static sal_Bool DoParametersFollow( SbiParser* p, SbiExprType eCurExpr, SbiToken
tokens
.
Next
();
if
(
tokens
.
Peek
()
==
ASSIGN
)
{
return
sal_T
rue
;
return
t
rue
;
}
}
return
sal_F
alse
;
return
f
alse
;
}
// definition of a new symbol
...
...
@@ -121,7 +121,7 @@ static SbiSymDef* AddSym ( SbiToken eTok, SbiSymPool& rPool, SbiExprType eCurExp
{
SbiSymDef
*
pDef
;
// A= is not a procedure
sal_Bool
bHasType
=
sal_Bool
(
eTok
==
EQ
||
eTok
==
DOT
);
bool
bHasType
=
(
eTok
==
EQ
||
eTok
==
DOT
);
if
(
(
!
bHasType
&&
eCurExpr
==
SbSYMBOL
)
||
pPar
)
{
// so this is a procedure
...
...
@@ -137,7 +137,7 @@ static SbiSymDef* AddSym ( SbiToken eTok, SbiSymPool& rPool, SbiExprType eCurExp
// special treatment for Colls like Documents(1)
if
(
eCurExpr
==
SbSTDEXPR
)
{
bHasType
=
sal_T
rue
;
bHasType
=
t
rue
;
}
pDef
=
pProc
;
pDef
->
SetType
(
bHasType
?
eType
:
SbxEMPTY
);
...
...
@@ -249,7 +249,7 @@ SbiExprNode* SbiExpression::Term( const KeywordSymbolInfo* pKeywordSymbolInfo )
// It might be an object part, if . or ! is following.
// In case of . the variable must already be defined;
// it's an object, if pDef is NULL after the search.
sal_Bool
bObj
=
sal_Bool
(
(
eTok
==
DOT
||
eTok
==
EXCLAM
)
bool
bObj
=
(
(
eTok
==
DOT
||
eTok
==
EXCLAM
)
&&
!
pParser
->
WhiteSpace
()
);
if
(
bObj
)
{
...
...
@@ -444,7 +444,7 @@ SbiExprNode* SbiExpression::ObjTerm( SbiSymDef& rObj )
eTok
=
pParser
->
Peek
();
}
}
sal_Bool
bObj
=
sal_Bool
(
(
eTok
==
DOT
||
eTok
==
EXCLAM
)
&&
!
pParser
->
WhiteSpace
()
);
bool
bObj
=
(
(
eTok
==
DOT
||
eTok
==
EXCLAM
)
&&
!
pParser
->
WhiteSpace
()
);
if
(
bObj
)
{
if
(
eType
==
SbxVARIANT
)
...
...
@@ -846,22 +846,22 @@ SbiConstExpression::SbiConstExpression( SbiParser* p ) : SbiExpression( p )
else
{
// #40204 special treatment for sal_Bool-constants
sal_Bool
bIsBool
=
sal_F
alse
;
bool
bIsBool
=
f
alse
;
if
(
pExpr
->
eNodeType
==
SbxVARVAL
)
{
SbiSymDef
*
pVarDef
=
pExpr
->
GetVar
();
sal_Bool
bBoolVal
=
sal_F
alse
;
bool
bBoolVal
=
f
alse
;
if
(
pVarDef
->
GetName
().
equalsIgnoreAsciiCase
(
"true"
)
)
{
bIsBool
=
sal_T
rue
;
bBoolVal
=
sal_T
rue
;
bIsBool
=
t
rue
;
bBoolVal
=
t
rue
;
}
else
if
(
pVarDef
->
GetName
().
equalsIgnoreAsciiCase
(
"false"
)
)
//else if( pVarDef->GetName().ICompare( "false" ) == COMPARE_EQUAL )
{
bIsBool
=
sal_T
rue
;
bBoolVal
=
sal_F
alse
;
bIsBool
=
t
rue
;
bBoolVal
=
f
alse
;
}
if
(
bIsBool
)
...
...
basic/source/comp/loops.cxx
Dosyayı görüntüle @
ea1e3b77
...
...
@@ -358,7 +358,7 @@ void SbiParser::Select()
TestEoln
();
sal_uInt32
nNextTarget
=
0
;
sal_uInt32
nDoneTarget
=
0
;
sal_Bool
bElse
=
sal_F
alse
;
bool
bElse
=
f
alse
;
while
(
!
bAbort
)
{
...
...
@@ -369,13 +369,13 @@ void SbiParser::Select()
aGen
.
BackChain
(
nNextTarget
),
nNextTarget
=
0
;
aGen
.
Statement
();
sal_Bool
bDone
=
sal_F
alse
;
bool
bDone
=
f
alse
;
sal_uInt32
nTrueTarget
=
0
;
if
(
Peek
()
==
ELSE
)
{
// CASE ELSE
Next
();
bElse
=
sal_T
rue
;
bElse
=
t
rue
;
}
else
while
(
!
bDone
)
{
...
...
@@ -415,7 +415,7 @@ void SbiParser::Select()
}
if
(
Peek
()
==
COMMA
)
Next
();
else
TestEoln
(),
bDone
=
sal_T
rue
;
else
TestEoln
(),
bDone
=
t
rue
;
}
if
(
!
bElse
)
...
...
basic/source/comp/parser.cxx
Dosyayı görüntüle @
ea1e3b77
...
...
@@ -32,12 +32,12 @@ struct SbiParseStack { // "Stack" for statement-blocks
struct
SbiStatement
{
SbiToken
eTok
;
void
(
SbiParser
::*
Func
)();
sal_Bool
bMain
;
// sal_T
rue: OK outside the SUB
sal_Bool
bSubr
;
// sal_T
rue: OK inside the SUB
bool
bMain
;
// t
rue: OK outside the SUB
bool
bSubr
;
// t
rue: OK inside the SUB
};
#define Y
sal_T
rue
#define N
sal_F
alse
#define Y
t
rue
#define N
f
alse
static
const
SbiStatement
StmntTable
[]
=
{
{
ATTRIBUTE
,
&
SbiParser
::
Attribute
,
Y
,
Y
,
},
// ATTRIBUTE
...
...
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