summaryrefslogtreecommitdiff
path: root/autodoc/source/parser_i/idl
diff options
context:
space:
mode:
authorNikolai Pretzell <np@openoffice.org>2002-11-01 16:15:51 +0000
committerNikolai Pretzell <np@openoffice.org>2002-11-01 16:15:51 +0000
commit18e7b2a7dbc74cd094028e11b0910f1136cce615 (patch)
treebc1652165f7eb6af956a96cbb2e6408db0da2cbf /autodoc/source/parser_i/idl
parent7a9d96862db4571421d6eadb314da3c0c67ece2b (diff)
#103134#
Diffstat (limited to 'autodoc/source/parser_i/idl')
-rw-r--r--autodoc/source/parser_i/idl/cx_idlco.cxx23
-rw-r--r--autodoc/source/parser_i/idl/distrib.cxx8
-rw-r--r--autodoc/source/parser_i/idl/makefile.mk5
-rw-r--r--autodoc/source/parser_i/idl/parsenv2.cxx51
-rw-r--r--autodoc/source/parser_i/idl/pe_attri.cxx130
-rw-r--r--autodoc/source/parser_i/idl/pe_const.cxx62
-rw-r--r--autodoc/source/parser_i/idl/pe_enum2.cxx49
-rw-r--r--autodoc/source/parser_i/idl/pe_evalu.cxx9
-rw-r--r--autodoc/source/parser_i/idl/pe_excp.cxx84
-rw-r--r--autodoc/source/parser_i/idl/pe_file2.cxx30
-rw-r--r--autodoc/source/parser_i/idl/pe_func2.cxx95
-rw-r--r--autodoc/source/parser_i/idl/pe_iface.cxx124
-rw-r--r--autodoc/source/parser_i/idl/pe_selem.cxx47
-rw-r--r--autodoc/source/parser_i/idl/pe_servi.cxx71
-rw-r--r--autodoc/source/parser_i/idl/pe_singl.cxx272
-rw-r--r--autodoc/source/parser_i/idl/pe_struc.cxx81
-rw-r--r--autodoc/source/parser_i/idl/pe_tydf2.cxx29
-rw-r--r--autodoc/source/parser_i/idl/pe_type2.cxx49
-rw-r--r--autodoc/source/parser_i/idl/pe_vari2.cxx15
-rw-r--r--autodoc/source/parser_i/idl/semnode.cxx12
-rw-r--r--autodoc/source/parser_i/idl/tk_keyw.cxx12
-rw-r--r--autodoc/source/parser_i/idl/unoidl.cxx63
22 files changed, 862 insertions, 459 deletions
diff --git a/autodoc/source/parser_i/idl/cx_idlco.cxx b/autodoc/source/parser_i/idl/cx_idlco.cxx
index 4216275ffb2e..050d7c72a160 100644
--- a/autodoc/source/parser_i/idl/cx_idlco.cxx
+++ b/autodoc/source/parser_i/idl/cx_idlco.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: cx_idlco.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: np $ $Date: 2002-03-08 14:45:34 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:35 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -130,15 +130,23 @@ const UINT16 nTok_mt_interface = 300 + TokMetaType::mt_interface;
const UINT16 nTok_mt_module = 300 + TokMetaType::mt_module;
const UINT16 nTok_mt_property = 300 + TokMetaType::mt_property;
const UINT16 nTok_mt_service = 300 + TokMetaType::mt_service;
+const UINT16 nTok_mt_singleton = 300 + TokMetaType::mt_singleton;
const UINT16 nTok_mt_struct = 300 + TokMetaType::mt_struct;
const UINT16 nTok_mt_typedef = 300 + TokMetaType::mt_typedef;
const UINT16 nTok_mt_uik = 300 + TokMetaType::mt_uik;
+const UINT16 nTok_ste_bound = 400 + TokStereotype::ste_bound;
+const UINT16 nTok_ste_constrained = 400 + TokStereotype::ste_constrained;
const UINT16 nTok_ste_const = 400 + TokStereotype::ste_const;
+const UINT16 nTok_ste_maybeambiguous = 400 + TokStereotype::ste_maybeambiguous;
+const UINT16 nTok_ste_maybedefault = 400 + TokStereotype::ste_maybedefault;
+const UINT16 nTok_ste_maybevoid = 400 + TokStereotype::ste_maybevoid;
const UINT16 nTok_ste_oneway = 400 + TokStereotype::ste_oneway;
const UINT16 nTok_ste_optional = 400 + TokStereotype::ste_optional;
const UINT16 nTok_ste_readonly = 400 + TokStereotype::ste_readonly;
+const UINT16 nTok_ste_removable = 400 + TokStereotype::ste_removable;
const UINT16 nTok_ste_virtual = 400 + TokStereotype::ste_virtual;
+const UINT16 nTok_ste_transient = 400 + TokStereotype::ste_transient;
const UINT16 nTok_raises = 501;
const UINT16 nTok_needs = 502;
@@ -474,10 +482,13 @@ Context_UidlCode::SetupStateMachine()
aStateMachine.AddToken("any", nTok_bty_any, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("attribute", nTok_mt_attribute, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("boolean", nTok_bty_boolean, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("bound", nTok_ste_bound, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("byte", nTok_bty_byte, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("char", nTok_bty_char, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("const", nTok_ste_const, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("constants", nTok_mt_constants, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("constrained",
+ nTok_ste_constrained, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("double", nTok_bty_double, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("enum", nTok_mt_enum, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("exception", nTok_mt_exception, A_nKeywordDefStatus, finKeyw);
@@ -487,6 +498,11 @@ Context_UidlCode::SetupStateMachine()
aStateMachine.AddToken("inout", nTok_ph_inout, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("interface", nTok_mt_interface, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("long", nTok_bty_long, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("maybeambiguous",
+ nTok_ste_maybeambiguous,A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("maybedefault",
+ nTok_ste_maybedefault, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("maybevoid", nTok_ste_maybevoid, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("module", nTok_mt_module, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("needs", nTok_needs, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("observes", nTok_observes, A_nKeywordDefStatus, finKeyw);
@@ -496,11 +512,14 @@ Context_UidlCode::SetupStateMachine()
aStateMachine.AddToken("property", nTok_mt_property, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("raises", nTok_raises, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("readonly", nTok_ste_readonly, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("removable", nTok_ste_removable, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("sequence", nTok_tmod_sequence, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("service", nTok_mt_service, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("short", nTok_bty_short, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("singleton", nTok_mt_singleton, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("string", nTok_bty_string, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("struct", nTok_mt_struct, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("transient", nTok_ste_transient, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("typedef", nTok_mt_typedef, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("uik", nTok_mt_uik, A_nKeywordDefStatus, finKeyw);
aStateMachine.AddToken("unsigned", nTok_tmod_unsigned, A_nKeywordDefStatus, finKeyw);
diff --git a/autodoc/source/parser_i/idl/distrib.cxx b/autodoc/source/parser_i/idl/distrib.cxx
index dc859458783c..6c1f32eb66c1 100644
--- a/autodoc/source/parser_i/idl/distrib.cxx
+++ b/autodoc/source/parser_i/idl/distrib.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: distrib.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: np $ $Date: 2002-03-08 14:45:34 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:35 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -82,7 +82,7 @@ namespace csi
namespace uidl
{
-TokenDistributor::TokenDistributor( ary::Repository & io_rRepository )
+TokenDistributor::TokenDistributor( ary::n22::Repository & io_rRepository )
: pTokenSource(0),
aProcessingData( io_rRepository, aDocumentation )
// aDocumentation
@@ -105,7 +105,7 @@ TokenDistributor::TradeToken()
aProcessingData.ProcessCurToken();
}
-TokenDistributor::ProcessingData::ProcessingData( ary::Repository & io_rRepository,
+TokenDistributor::ProcessingData::ProcessingData( ary::n22::Repository & io_rRepository,
Documentation & i_rDocuProcessor )
: // aEnvironments
// aTokenQueue
diff --git a/autodoc/source/parser_i/idl/makefile.mk b/autodoc/source/parser_i/idl/makefile.mk
index 20dcb4539d26..16d7adcb88ac 100644
--- a/autodoc/source/parser_i/idl/makefile.mk
+++ b/autodoc/source/parser_i/idl/makefile.mk
@@ -2,9 +2,9 @@
#
# $RCSfile: makefile.mk,v $
#
-# $Revision: 1.1.1.1 $
+# $Revision: 1.2 $
#
-# last change: $Author: np $ $Date: 2002-03-08 14:45:34 $
+# last change: $Author: np $ $Date: 2002-11-01 17:15:35 $
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
@@ -94,6 +94,7 @@ OBJFILES= \
$(OBJ)$/pe_iface.obj \
$(OBJ)$/pe_selem.obj \
$(OBJ)$/pe_servi.obj \
+ $(OBJ)$/pe_singl.obj \
$(OBJ)$/pe_struc.obj \
$(OBJ)$/pe_tydf2.obj \
$(OBJ)$/pe_type2.obj \
diff --git a/autodoc/source/parser_i/idl/parsenv2.cxx b/autodoc/source/parser_i/idl/parsenv2.cxx
index 5fb04a232de1..4657b57a7f72 100644
--- a/autodoc/source/parser_i/idl/parsenv2.cxx
+++ b/autodoc/source/parser_i/idl/parsenv2.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: parsenv2.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: mh $ $Date: 2002-08-13 14:49:28 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:36 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -61,20 +61,17 @@
#include <precomp.h>
-
-// [ed] 6/15/02 The OS X compilers require full class definitions at the time
-// of template instantiation
-#ifdef MACOSX
-#include <ary_i/codeinf2.hxx>
-#endif
-
#include <s2_luidl/parsenv2.hxx>
-#include <s2_luidl/uidl_tok.hxx>
// NOT FULLY DEFINED SERVICES
-#include <ary_i/uidl/gate.hxx>
+#include <ary/qualiname.hxx>
#include <ary_i/codeinf2.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <s2_luidl/uidl_tok.hxx>
+#include <x_parse2.hxx>
@@ -91,7 +88,7 @@ UnoIDL_PE::~UnoIDL_PE()
void
UnoIDL_PE::EstablishContacts( UnoIDL_PE * io_pParentPE,
- ary::Repository & io_rRepository,
+ ary::n22::Repository & io_rRepository,
TokenProcessing_Result & o_rResult )
{
aMyNode.EstablishContacts(io_pParentPE, io_rRepository, o_rResult);
@@ -112,7 +109,7 @@ UnoIDL_PE::Enter( E_EnvStackAction i_eWayOfEntering )
ReceiveData();
break;
case pop_failure:
- csv_assert(false);
+ throw X_AutodocParser(X_AutodocParser::x_Any);
break;
default:
csv_assert(false);
@@ -133,7 +130,7 @@ UnoIDL_PE::Leave( E_EnvStackAction i_eWayOfLeaving )
TransferData();
break;
case pop_failure:
- csv_assert(false);
+ throw X_AutodocParser(X_AutodocParser::x_Any);
break;
default:
csv_assert(false);
@@ -153,13 +150,18 @@ UnoIDL_PE::SetOptional()
}
void
-UnoIDL_PE::PassDocuAt( ary::Cei i_nCeId )
+UnoIDL_PE::PassDocuAt( ary::idl::CodeEntity & io_rCe )
{
if (pDocu)
{
- ary::CodeEntity2 * pCe = Gate().FindCe(i_nCeId);
- csv_assert(pCe != 0);
- pCe->SetDocu(*pDocu.Release());
+ io_rCe.Set_Docu(pDocu.Release());
+ }
+ else if (io_rCe.ClassId() != ary::idl::Module::class_id)
+ {
+ Cout() << "Warning: "
+ << io_rCe.LocalName()
+ << " has no documentation."
+ << Endl();
}
}
@@ -175,7 +177,7 @@ UnoIDL_PE::ReceiveData()
// Needs not anything to do.
}
-ary::uidl::CeNamespace &
+const ary::idl::Module &
UnoIDL_PE::CurNamespace() const
{
if ( Parent() != 0 )
@@ -183,19 +185,10 @@ UnoIDL_PE::CurNamespace() const
else
{
csv_assert(false);
- return *(ary::uidl::CeNamespace*)0;
+ return *(const ary::idl::Module*)0;
}
}
-ary::Cei
-UnoIDL_PE::MatchingNamespace( const QuName & i_rQualification )
-{
- if (i_rQualification.IsQualified())
- return Gate().CheckInModule(i_rQualification).Id();
- else
- return CurNamespace().Id();
-}
-
} // namespace uidl
} // namespace csi
diff --git a/autodoc/source/parser_i/idl/pe_attri.cxx b/autodoc/source/parser_i/idl/pe_attri.cxx
index f7b056ea5bf7..c31da74d1398 100644
--- a/autodoc/source/parser_i/idl/pe_attri.cxx
+++ b/autodoc/source/parser_i/idl/pe_attri.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pe_attri.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: np $ $Date: 2002-03-08 14:45:34 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:36 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -65,12 +65,16 @@
// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_attribute.hxx>
+#include <ary/idl/i_property.hxx>
+#include <ary/idl/i_service.hxx>
+#include <ary/idl/ip_ce.hxx>
#include <ary_i/codeinf2.hxx>
#include <s2_luidl/pe_vari2.hxx>
#include <s2_luidl/tk_keyw.hxx>
#include <s2_luidl/tk_ident.hxx>
#include <s2_luidl/tk_punct.hxx>
-#include <csi/l_uidl/attrib.hxx>
@@ -81,24 +85,23 @@ namespace uidl
-PE_Attribute::PE_Attribute( RAttribute & o_rResult,
- const RInterface & i_rCurInterface )
+PE_Attribute::PE_Attribute( Ce_id & i_rCurOwner,
+ E_ParsedType i_eCeType )
: eState(e_none),
- pData(0),
- pResult(&o_rResult),
- pCurInterface(&i_rCurInterface),
+ pCurOwner(&i_rCurOwner),
pPE_Variable(0),
- aCurParsedType(0),
- sCurParsedName(""),
+ nCurParsedType(0),
+ sCurParsedName(),
bIsOptional(false),
- bIsReadonly(false)
+ aStereotypes(),
+ eCeType(i_eCeType)
{
- pPE_Variable = new PE_Variable(aCurParsedType, sCurParsedName);
+ pPE_Variable = new PE_Variable(nCurParsedType, sCurParsedName);
}
void
PE_Attribute::EstablishContacts( UnoIDL_PE * io_pParentPE,
- ary::Repository & io_rRepository,
+ ary::n22::Repository & io_rRepository,
TokenProcessing_Result & o_rResult )
{
UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
@@ -118,21 +121,43 @@ PE_Attribute::ProcessToken( const Token & i_rToken )
void
PE_Attribute::Process_Stereotype( const TokStereotype & i_rToken )
{
- if (i_rToken.Id() == TokStereotype::ste_readonly)
+ switch (i_rToken.Id())
{
- pData->Data().bReadonly = true;
- SetResult(done, stay);
- return;
- }
- else if (i_rToken.Id() == TokStereotype::ste_optional)
- {
- bIsOptional = true;
- SetResult(done, stay);
- return;
+ case TokStereotype::ste_optional:
+ bIsOptional = true;
+ break;
+ case TokStereotype::ste_readonly:
+ aStereotypes.Set_Flag(Stereotypes::readonly);
+ break;
+ case TokStereotype::ste_bound:
+ aStereotypes.Set_Flag(Stereotypes::bound);
+ break;
+ case TokStereotype::ste_constrained:
+ aStereotypes.Set_Flag(Stereotypes::constrained);
+ break;
+ case TokStereotype::ste_maybeambiguous:
+ aStereotypes.Set_Flag(Stereotypes::maybeambigious);
+ break;
+ case TokStereotype::ste_maybedefault:
+ aStereotypes.Set_Flag(Stereotypes::maybedefault);
+ break;
+ case TokStereotype::ste_maybevoid:
+ aStereotypes.Set_Flag(Stereotypes::maybevoid);
+ break;
+ case TokStereotype::ste_removable:
+ aStereotypes.Set_Flag(Stereotypes::removable);
+ break;
+ case TokStereotype::ste_transient:
+ aStereotypes.Set_Flag(Stereotypes::transient);
+ break;
+
+ default:
+ SetResult(not_done, pop_failure);
+ eState = e_none;
+ return;
}
- SetResult(not_done, pop_failure);
- eState = e_none;
+ SetResult(done, stay);
}
void
@@ -140,14 +165,17 @@ PE_Attribute::Process_MetaType( const TokMetaType & i_rToken )
{
if (eState == e_start)
{
- if ( i_rToken.Id() == TokMetaType::mt_attribute OR
- i_rToken.Id() == TokMetaType::mt_property )
+ if ( i_rToken.Id() == TokMetaType::mt_property
+ AND eCeType == parse_property
+ OR
+ i_rToken.Id() == TokMetaType::mt_attribute
+ AND eCeType == parse_attribute )
{
SetResult(done, stay);
eState = expect_variable;
return;
}
- }
+ } // endif (eState == e_start)
SetResult(not_done, pop_failure);
eState = e_none;
@@ -194,12 +222,14 @@ PE_Attribute::InitData()
{
eState = e_start;
- pData = new Attribute;
- *pResult = 0;
- aCurParsedType = 0;
+ nCurParsedType = 0;
sCurParsedName = "";
- // bIsOptional may be preset by the PE_Service-parent with PresetOptional()
+ // bIsOptional and
+ // aStereotypes
+ // may be preset by the PE_Service-(or PE_Interface-)parent
+ // with PresetOptional() or
+ // PresetStereotype()
// - therefore it must not be set here!
}
@@ -211,16 +241,34 @@ PE_Attribute::TransferData()
SetOptional();
bIsOptional = false;
}
- if (bIsReadonly)
+
+ ary::idl::CodeEntity *
+ pCe = 0;
+ csv_assert(pCurOwner->IsValid());
+ if (eCeType == parse_property)
+ {
+ pCe = &Gate().Ces().Store_Property( *pCurOwner,
+ sCurParsedName,
+ nCurParsedType,
+ aStereotypes );
+ }
+ else if (eCeType == parse_attribute)
{
- pData->Data().bReadonly = true;
- bIsReadonly = false;
+ pCe = &Gate().Ces().Store_Attribute( *pCurOwner,
+ sCurParsedName,
+ nCurParsedType,
+ aStereotypes.IsReadOnly() );
}
+ else
+ {
+ csv_assert(false);
+ }
+ csv_assert(pCe != 0);
+ PassDocuAt(*pCe);
- *pResult = Gate().Store_Attribute( pCurInterface->Id(), *pData );
- PassDocuAt(pResult->Id());
-
- pData = 0;
+ nCurParsedType = 0;
+ sCurParsedName.clear();
+ aStereotypes = Stereotypes();
eState = e_none;
}
@@ -228,8 +276,6 @@ PE_Attribute::TransferData()
void
PE_Attribute::ReceiveData()
{
- pData->Data().pType = aCurParsedType;
- pData->Data().sName = sCurParsedName;
eState = expect_variable;
}
@@ -237,7 +283,7 @@ PE_Attribute::ReceiveData()
UnoIDL_PE &
PE_Attribute::MyPE()
{
- return *this;
+ return *this;
}
diff --git a/autodoc/source/parser_i/idl/pe_const.cxx b/autodoc/source/parser_i/idl/pe_const.cxx
index 2ec084f02666..025be8c30bd2 100644
--- a/autodoc/source/parser_i/idl/pe_const.cxx
+++ b/autodoc/source/parser_i/idl/pe_const.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pe_const.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: np $ $Date: 2002-05-14 09:02:20 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:36 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -63,14 +63,16 @@
#include <s2_luidl/pe_const.hxx>
// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_constant.hxx>
+#include <ary/idl/i_constgroup.hxx>
+#include <ary/idl/ip_ce.hxx>
#include <ary_i/codeinf2.hxx>
#include <s2_luidl/pe_type2.hxx>
#include <s2_luidl/pe_evalu.hxx>
#include <s2_luidl/tk_punct.hxx>
#include <s2_luidl/tk_ident.hxx>
#include <s2_luidl/tk_keyw.hxx>
-#include <csi/l_uidl/constant.hxx>
-#include <ary_i/uidl/gate.hxx>
namespace csi
@@ -109,20 +111,21 @@ PE_Constant::CallHandler( const char * i_sTokenText,
PE_Constant::PE_Constant()
: eState(e_none),
- pData(0),
+ sData_Name(),
+ nDataId(0),
pPE_Type(0),
- pType(0),
- pPE_Value(0)
- // sName
- // sAssignment
+ nType(0),
+ pPE_Value(0),
+ sName(),
+ sAssignment()
{
- pPE_Type = new PE_Type(pType);
- pPE_Value = new PE_Value(sName, sAssignment,true);
+ pPE_Type = new PE_Type(nType);
+ pPE_Value = new PE_Value(sName, sAssignment, true);
}
void
PE_Constant::EstablishContacts( UnoIDL_PE * io_pParentPE,
- ary::Repository & io_rRepository,
+ ary::n22::Repository & io_rRepository,
TokenProcessing_Result & o_rResult )
{
UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
@@ -172,10 +175,13 @@ PE_Constant::On_expect_curl_bracket_open_Punctuation(const char * i_sText)
{
if ( i_sText[0] == '{')
{
- pData = new ConstantsGroup;
- pData->sName = sName;
- nDataId = Gate().Store_ConstantsGroup(CurNamespace().Id(),*pData).Id();
- PassDocuAt(nDataId);
+ sData_Name = sName;
+
+ ary::idl::ConstantsGroup &
+ rCe = Gate().Ces().
+ Store_ConstantsGroup(CurNamespace().CeId(),sData_Name);
+ PassDocuAt(rCe);
+ nDataId = rCe.CeId();
SetResult(done,stay);
eState = expect_const;
@@ -236,7 +242,7 @@ PE_Constant::On_Default(const char * )
void
PE_Constant::EmptySingleConstData()
{
- pType = 0;
+ nType = 0;
sName = "";
sAssignment = "";
}
@@ -244,16 +250,12 @@ PE_Constant::EmptySingleConstData()
void
PE_Constant::CreateSingleConstant()
{
- Constant * dpConst = new Constant;
-
- dpConst->Data().sName = sName;
- dpConst->Data().sValue = sAssignment;
- dpConst->Data().pType = pType;
-
- ary::Cei nId = Gate().Store_Constant( nDataId, *dpConst ).Id();
- pPE_Type->PassDocuAt(nId);
-
- pData->aConstants.push_back(nId);
+ ary::idl::Constant &
+ rCe = Gate().Ces().Store_Constant( nDataId,
+ sName,
+ nType,
+ sAssignment );
+ pPE_Type->PassDocuAt(rCe);
}
void
@@ -261,7 +263,7 @@ PE_Constant::InitData()
{
eState = expect_name;
- pData = 0;
+ sData_Name.clear();
nDataId = 0;
EmptySingleConstData();
@@ -277,7 +279,7 @@ PE_Constant::ReceiveData()
break;
case expect_value:
{
- if (sName.length() == 0 OR sAssignment.length() == 0 OR NOT pType)
+ if (sName.length() == 0 OR sAssignment.length() == 0 OR NOT nType.IsValid())
{
Cerr() << "Constant without value found." << Endl();
eState = expect_const;
@@ -297,7 +299,7 @@ PE_Constant::ReceiveData()
void
PE_Constant::TransferData()
{
- csv_assert(pData != 0);
+ csv_assert(nDataId.IsValid());
eState = e_none;
}
diff --git a/autodoc/source/parser_i/idl/pe_enum2.cxx b/autodoc/source/parser_i/idl/pe_enum2.cxx
index 32aedc79f6e4..42f2b284e105 100644
--- a/autodoc/source/parser_i/idl/pe_enum2.cxx
+++ b/autodoc/source/parser_i/idl/pe_enum2.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pe_enum2.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: np $ $Date: 2002-05-14 09:02:20 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:36 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -65,14 +65,15 @@
// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_enum.hxx>
+#include <ary/idl/i_enumvalue.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/ip_ce.hxx>
#include <ary_i/codeinf2.hxx>
#include <s2_luidl/pe_evalu.hxx>
#include <s2_luidl/tk_punct.hxx>
#include <s2_luidl/tk_ident.hxx>
#include <s2_luidl/tk_keyw.hxx>
-#include <csi/l_uidl/enum.hxx>
-#include <csi/l_uidl/enumvalu.hxx>
-#include <ary_i/uidl/gate.hxx>
namespace csi
@@ -109,18 +110,19 @@ PE_Enum::CallHandler( const char * i_sTokenText,
PE_Enum::PE_Enum()
: eState(e_none),
- pData(0),
- pPE_Value(0)
- // sName
- // sAssignment
+ sData_Name(),
+ nDataId(0),
+ pPE_Value(0),
+ sName(),
+ sAssignment()
{
pPE_Value = new PE_Value(sName, sAssignment, false);
}
void
PE_Enum::EstablishContacts( UnoIDL_PE * io_pParentPE,
- ary::Repository & io_rRepository,
- TokenProcessing_Result & o_rResult )
+ ary::n22::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
{
UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
pPE_Value->EstablishContacts(this,io_rRepository,o_rResult);
@@ -162,10 +164,11 @@ PE_Enum::On_expect_curl_bracket_open_Punctuation(const char * i_sText)
{
if ( i_sText[0] == '{')
{
- pData = new Enum;
- pData->Data().sName = sName;
- nDataId = Gate().Store_Enum(CurNamespace().Id(),*pData).Id();
- PassDocuAt(nDataId);
+ sData_Name = sName;
+ ary::idl::Enum &
+ rCe = Gate().Ces().Store_Enum(CurNamespace().CeId(), sData_Name);
+ PassDocuAt(rCe);
+ nDataId = rCe.CeId();
SetResult(done,stay);
eState = expect_value;
@@ -227,15 +230,9 @@ PE_Enum::EmptySingleValueData()
void
PE_Enum::CreateSingleValue()
{
- DYN EnumValue * dpValue = new EnumValue;
-
- dpValue->Data().sName = sName;
- dpValue->Data().sValue = sAssignment;
-
- ary::Cei nId = Gate().Store_EnumValue( nDataId, *dpValue ).Id();
- pPE_Value->PassDocuAt(nId);
-
- pData->Data().aValues.push_back(nId);
+ ary::idl::EnumValue &
+ rCe = Gate().Ces().Store_EnumValue( nDataId, sName, sAssignment );
+ pPE_Value->PassDocuAt(rCe);
}
void
@@ -243,7 +240,7 @@ PE_Enum::InitData()
{
eState = expect_name;
- pData = 0;
+ sData_Name.clear();
nDataId = 0;
EmptySingleValueData();
@@ -274,7 +271,7 @@ PE_Enum::ReceiveData()
void
PE_Enum::TransferData()
{
- csv_assert(pData != 0);
+ csv_assert(sData_Name.length() > 0);
eState = e_none;
}
diff --git a/autodoc/source/parser_i/idl/pe_evalu.cxx b/autodoc/source/parser_i/idl/pe_evalu.cxx
index 1f8b5917ed7e..589d39ebe609 100644
--- a/autodoc/source/parser_i/idl/pe_evalu.cxx
+++ b/autodoc/source/parser_i/idl/pe_evalu.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pe_evalu.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: np $ $Date: 2002-05-14 09:02:20 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:37 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -63,6 +63,9 @@
#include <s2_luidl/pe_evalu.hxx>
// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_enumvalue.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/ip_ce.hxx>
#include <ary_i/codeinf2.hxx>
#include <s2_luidl/tk_ident.hxx>
#include <s2_luidl/tk_punct.hxx>
@@ -112,7 +115,7 @@ PE_Value::PE_Value( udmstri & o_rName,
void
PE_Value::EstablishContacts( UnoIDL_PE * io_pParentPE,
- ary::Repository & io_rRepository,
+ ary::n22::Repository & io_rRepository,
TokenProcessing_Result & o_rResult )
{
UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
diff --git a/autodoc/source/parser_i/idl/pe_excp.cxx b/autodoc/source/parser_i/idl/pe_excp.cxx
index 2c174dae68c8..9a27279ae6ab 100644
--- a/autodoc/source/parser_i/idl/pe_excp.cxx
+++ b/autodoc/source/parser_i/idl/pe_excp.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pe_excp.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: np $ $Date: 2002-03-08 14:45:34 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:37 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -64,15 +64,16 @@
// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_exception.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_structelem.hxx>
+#include <ary/idl/ip_ce.hxx>
#include <ary_i/codeinf2.hxx>
#include <s2_luidl/tk_ident.hxx>
#include <s2_luidl/tk_punct.hxx>
#include <s2_luidl/tk_keyw.hxx>
#include <s2_luidl/pe_type2.hxx>
#include <s2_luidl/pe_selem.hxx>
-#include <csi/l_uidl/except.hxx>
-#include <csi/l_uidl/struelem.hxx>
-#include <ary_i/uidl/gate.hxx>
@@ -91,7 +92,7 @@ PE_Exception::PE_Exception()
void
PE_Exception::EstablishContacts( UnoIDL_PE * io_pParentPE,
- ary::Repository & io_rRepository,
+ ary::n22::Repository & io_rRepository,
TokenProcessing_Result & o_rResult )
{
UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
@@ -122,8 +123,8 @@ PE_Exception::TransferData()
{
if (NOT Work().bIsPreDeclaration)
{
- csv_assert(Work().pData != 0);
- csv_assert(Work().pCurStruct);
+ csv_assert(Work().sData_Name.size() > 0);
+ csv_assert(Work().nCurStruct.IsValid());
}
Stati().pCurStatus = &Stati().aNone;
}
@@ -134,53 +135,51 @@ PE_Exception::ReceiveData()
Stati().pCurStatus->On_SubPE_Left();
}
+const bool C_bIsExceptionElement = true; // Means:Yes, is an ExceptionElement.
+
PE_Exception::S_Work::S_Work()
- : // pData
+ : sData_Name(),
bIsPreDeclaration(false),
- pCurStruct(0),
+ nCurStruct(0),
pPE_Element(0),
- aCurParsed_ElementRef(0),
- pPE_Type(0)
- // aCurParsed_Base
+ nCurParsed_ElementRef(0),
+ pPE_Type(0),
+ nCurParsed_Base(0)
{
- pPE_Element = new PE_StructElement(aCurParsed_ElementRef,pCurStruct);
- pPE_Type = new PE_Type(aCurParsed_Base);
+ pPE_Element = new PE_StructElement(nCurParsed_ElementRef,nCurStruct,C_bIsExceptionElement);
+ pPE_Type = new PE_Type(nCurParsed_Base);
}
void
PE_Exception::S_Work::InitData()
{
- pData = new Exception;
+ sData_Name.clear();
bIsPreDeclaration = false;
- pCurStruct = 0;
+ nCurStruct = 0;
+
+ nCurParsed_ElementRef = 0;
+ nCurParsed_Base = 0;
}
void
PE_Exception::S_Work::Prepare_PE_QualifiedName()
{
- aCurParsed_ElementRef = 0;
+ nCurParsed_ElementRef = 0;
}
void
PE_Exception::S_Work::Prepare_PE_Element()
{
- aCurParsed_Base = 0;
+ nCurParsed_Base = 0;
}
void
PE_Exception::S_Work::Data_Set_Name( const char * i_sName )
{
- pData->Data().sName = i_sName;
+ sData_Name = i_sName;
}
-void
-PE_Exception::S_Work::Data_Add_CurParsed_ElementRef()
-{
- pData->Data().aElements.push_back(aCurParsed_ElementRef);
-}
-
-
PE_Exception::S_Stati::S_Stati(PE_Exception & io_rStruct)
: aNone(io_rStruct),
aWaitForName(io_rStruct),
@@ -218,13 +217,6 @@ PE_Exception::State_GotName::Process_Punctuation( const TokPunctuation & i_rToke
{
if ( i_rToken.Id() != TokPunctuation::Semicolon )
{
- Work().pCurStruct =
- PE().Gate().Store_Exception(
- PE().CurNamespace().Id(),
- *Work().pData );
- PE().PassDocuAt(Work().pCurStruct.Id());
-
-
switch (i_rToken.Id())
{
case TokPunctuation::Colon:
@@ -233,6 +225,7 @@ PE_Exception::State_GotName::Process_Punctuation( const TokPunctuation & i_rToke
Work().Prepare_PE_QualifiedName();
break;
case TokPunctuation::CurledBracketOpen:
+ PE().store_Exception();
MoveState( Stati().aWaitForElement );
SetResult(done,stay);
break;
@@ -242,7 +235,7 @@ PE_Exception::State_GotName::Process_Punctuation( const TokPunctuation & i_rToke
}
else
{
- Delete_dyn(Work().pData);
+ Work().sData_Name.clear();
SetResult(done,pop_success);
}
}
@@ -250,7 +243,6 @@ PE_Exception::State_GotName::Process_Punctuation( const TokPunctuation & i_rToke
void
PE_Exception::State_WaitForBase::On_SubPE_Left()
{
- Work().pData->Data().pBaseException = Work().aCurParsed_Base;
MoveState(Stati().aGotBase);
}
@@ -259,6 +251,7 @@ PE_Exception::State_GotBase::Process_Punctuation( const TokPunctuation & i_rToke
{
if ( i_rToken.Id() == TokPunctuation::CurledBracketOpen )
{
+ PE().store_Exception();
MoveState( Stati().aWaitForElement );
SetResult(done,stay);
}
@@ -311,12 +304,6 @@ PE_Exception::State_WaitForElement::Process_Punctuation( const TokPunctuation &
}
void
-PE_Exception::State_WaitForElement::On_SubPE_Left()
-{
- Work().Data_Add_CurParsed_ElementRef();
-}
-
-void
PE_Exception::State_WaitForFinish::Process_Punctuation( const TokPunctuation & i_rToken )
{
if (i_rToken.Id() == TokPunctuation::Semicolon)
@@ -330,7 +317,18 @@ PE_Exception::State_WaitForFinish::Process_Punctuation( const TokPunctuation & i
}
}
+void
+PE_Exception::store_Exception()
+{
+ ary::idl::Exception &
+ rCe = Gate().Ces().Store_Exception(
+ CurNamespace().CeId(),
+ Work().sData_Name,
+ Work().nCurParsed_Base );
+ PassDocuAt(rCe);
+ Work().nCurStruct = rCe.Id();
+}
+
} // namespace uidl
} // namespace csi
-
diff --git a/autodoc/source/parser_i/idl/pe_file2.cxx b/autodoc/source/parser_i/idl/pe_file2.cxx
index 88212205063b..0fda80cb27b2 100644
--- a/autodoc/source/parser_i/idl/pe_file2.cxx
+++ b/autodoc/source/parser_i/idl/pe_file2.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pe_file2.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: np $ $Date: 2002-03-08 14:45:34 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:37 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -64,10 +64,14 @@
// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/ip_ce.hxx>
#include <ary_i/codeinf2.hxx>
#include <s2_luidl/distrib.hxx>
#include <s2_luidl/pe_servi.hxx>
#include <s2_luidl/pe_iface.hxx>
+#include <s2_luidl/pe_singl.hxx>
#include <s2_luidl/pe_struc.hxx>
#include <s2_luidl/pe_excp.hxx>
#include <s2_luidl/pe_const.hxx>
@@ -76,8 +80,6 @@
#include <s2_luidl/tk_keyw.hxx>
#include <s2_luidl/tk_ident.hxx>
#include <s2_luidl/tk_punct.hxx>
-#include <ary_i/uidl/gate.hxx>
-#include <ary_i/uidl/cenamesp.hxx>
@@ -91,6 +93,7 @@ namespace uidl
PE_File::PE_File( TokenDistributor & i_rTokenAdmin )
: pTokenAdmin(&i_rTokenAdmin),
pPE_Service(new PE_Service),
+ pPE_Singleton(new PE_Singleton),
pPE_Interface(new PE_Interface),
pPE_Struct(new PE_Struct),
pPE_Exception(new PE_Exception),
@@ -105,11 +108,12 @@ PE_File::PE_File( TokenDistributor & i_rTokenAdmin )
void
PE_File::EstablishContacts( UnoIDL_PE * io_pParentPE,
- ary::Repository & io_rRepository,
+ ary::n22::Repository & io_rRepository,
TokenProcessing_Result & o_rResult )
{
UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
pPE_Service->EstablishContacts(this,io_rRepository,o_rResult);
+ pPE_Singleton->EstablishContacts(this,io_rRepository,o_rResult);
pPE_Interface->EstablishContacts(this,io_rRepository,o_rResult);
pPE_Struct->EstablishContacts(this,io_rRepository,o_rResult);
pPE_Exception->EstablishContacts(this,io_rRepository,o_rResult);
@@ -117,7 +121,7 @@ PE_File::EstablishContacts( UnoIDL_PE * io_pParentPE,
pPE_Enum->EstablishContacts(this,io_rRepository,o_rResult);
pPE_Typedef->EstablishContacts(this,io_rRepository,o_rResult);
- pCurNamespace = &Gate().GlobalNamespace();
+ pCurNamespace = &Gate().Ces().GlobalNamespace();
}
PE_File::~PE_File()
@@ -139,12 +143,12 @@ PE_File::Process_Identifier( const TokIdentifier & i_rToken )
{
csv_assert(pCurNamespace != 0);
- ary::Cei nNspId = Gate().CheckInModule(pCurNamespace->Id(), i_rToken.Text()).Id();
- pCurNamespace = Gate().FindNamespace(nNspId);
+ ary::idl::Module & rCe = Gate().Ces().CheckIn_Module(pCurNamespace->CeId(), i_rToken.Text());
+ pCurNamespace = &rCe;
// Get docu out of normal:
SetDocu(pTokenAdmin->ReleaseLastParsedDocu());
- PassDocuAt(nNspId);
+ PassDocuAt(rCe);
csv_assert(pCurNamespace != 0);
@@ -169,7 +173,7 @@ PE_File::Process_Punctuation( const TokPunctuation & i_rToken )
{
csv_assert(pCurNamespace != 0);
- pCurNamespace = pCurNamespace->Parent();
+ pCurNamespace = &Gate().Ces().Find_Module(pCurNamespace->Owner());
SetResult(done, stay);
eState = wait_for_module_semicolon;
@@ -233,6 +237,10 @@ PE_File::Process_MetaType( const TokMetaType & i_rToken )
eState = in_sub_pe;
SetResult( not_done, push_sure, pPE_Service.Ptr());
break;
+ case TokMetaType::mt_singleton:
+ eState = in_sub_pe;
+ SetResult( not_done, push_sure, pPE_Singleton.Ptr());
+ break;
case TokMetaType::mt_uik:
Cerr() << "Syntax error: [uik ....] is obsolete now." << Endl();
SetResult( not_done, pop_failure);
@@ -282,7 +290,7 @@ PE_File::Process_Default()
SetResult(done, stay);
}
-ary::uidl::CeNamespace &
+const ary::idl::Module &
PE_File::CurNamespace() const
{
csv_assert(pCurNamespace);
diff --git a/autodoc/source/parser_i/idl/pe_func2.cxx b/autodoc/source/parser_i/idl/pe_func2.cxx
index b13905642d1b..8e5236b44da5 100644
--- a/autodoc/source/parser_i/idl/pe_func2.cxx
+++ b/autodoc/source/parser_i/idl/pe_func2.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pe_func2.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: np $ $Date: 2002-03-08 14:45:34 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:38 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -65,13 +65,16 @@
// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_function.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/ip_ce.hxx>
#include <ary_i/codeinf2.hxx>
#include <s2_luidl/pe_type2.hxx>
#include <s2_luidl/pe_vari2.hxx>
#include <s2_luidl/tk_keyw.hxx>
#include <s2_luidl/tk_ident.hxx>
#include <s2_luidl/tk_punct.hxx>
-#include <csi/l_uidl/function.hxx>
+#include <x_parse2.hxx>
namespace csi
@@ -83,25 +86,29 @@ namespace uidl
PE_Function::PE_Function( RFunction & o_rResult,
const RInterface & i_rCurInterface )
: eState(e_none),
- pData(0),
+ sData_Name(),
+ nData_ReturnType(0),
+ bData_Const(false),
+ bData_Oneway(false),
+ pCurFunction(0),
pResult(&o_rResult),
pCurInterface(&i_rCurInterface),
pPE_Type(0),
- aCurParsedType(0),
- // sName,
+ nCurParsedType(0),
+ sName(),
pPE_Variable(0),
- eCurParsedParam_Direction(param_in),
- aCurParsedParam_Type(0)
- // sCurParsedParam_Name
+ eCurParsedParam_Direction(ary::idl::param_in),
+ nCurParsedParam_Type(0),
+ sCurParsedParam_Name()
{
- pPE_Type = new PE_Type(aCurParsedType);
- pPE_Variable = new PE_Variable(aCurParsedParam_Type, sCurParsedParam_Name);
+ pPE_Type = new PE_Type(nCurParsedType);
+ pPE_Variable = new PE_Variable(nCurParsedParam_Type, sCurParsedParam_Name);
}
void
PE_Function::EstablishContacts( UnoIDL_PE * io_pParentPE,
- ary::Repository & io_rRepository,
+ ary::n22::Repository & io_rRepository,
TokenProcessing_Result & o_rResult )
{
UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
@@ -127,11 +134,11 @@ PE_Function::Process_Stereotype( const TokStereotype & i_rToken )
switch (i_rToken.Id())
{
case TokStereotype::ste_const:
- pData->Data().bConst = true;
+ bData_Const = true;
SetResult(done, stay);
break;
case TokStereotype::ste_oneway:
- pData->Data().bOneway = true;
+ bData_Oneway = true;
SetResult(done, stay);
break;
default:
@@ -151,9 +158,19 @@ PE_Function::Process_Identifier( const TokIdentifier & i_rToken )
GoIntoReturnType();
break;
case expect_name:
- pData->Data().sName = i_rToken.Text();
+ sData_Name = i_rToken.Text();
SetResult(done,stay);
eState = expect_params_list;
+ pCurFunction = &Gate().Ces().Store_Function(
+ *pCurInterface,
+ sData_Name,
+ nData_ReturnType,
+ bData_Oneway,
+ bData_Const );
+ *pResult = pCurFunction->CeId();
+ PassDocuAt(*pCurFunction);
+
+
break;
case expect_parameter_variable:
GoIntoParameterVariable();
@@ -265,13 +282,13 @@ PE_Function::Process_ParameterHandling( const TokParameterHandling & i_rToken )
switch (i_rToken.Id())
{
case TokParameterHandling::ph_in:
- eCurParsedParam_Direction = param_in;
+ eCurParsedParam_Direction = ary::idl::param_in;
break;
case TokParameterHandling::ph_out:
- eCurParsedParam_Direction = param_out;
+ eCurParsedParam_Direction = ary::idl::param_out;
break;
case TokParameterHandling::ph_inout:
- eCurParsedParam_Direction = param_inout;
+ eCurParsedParam_Direction = ary::idl::param_inout;
break;
default:
csv_assert(false);
@@ -335,19 +352,25 @@ PE_Function::GoIntoException()
void
PE_Function::OnDefault()
{
- csv_assert(1==2);
+ throw X_AutodocParser(X_AutodocParser::x_Any);
}
void
PE_Function::InitData()
{
eState = e_start;
- pData = new Function;
+
+ sData_Name.clear();
+ nData_ReturnType = 0;
+ bData_Const = false;
+ bData_Oneway = false;
+ pCurFunction = 0;
+
*pResult = 0;
- aCurParsedType = 0;
- eCurParsedParam_Direction = param_in;
- aCurParsedParam_Type = 0;
- sCurParsedParam_Name = "";
+ nCurParsedType = 0;
+ eCurParsedParam_Direction = ary::idl::param_in;
+ nCurParsedParam_Type = 0;
+ sCurParsedParam_Name.clear();
}
void
@@ -356,22 +379,24 @@ PE_Function::ReceiveData()
switch (eState)
{
case in_return_type:
- pData->Data().pReturnType = aCurParsedType;
- aCurParsedType = 0;
+ nData_ReturnType = nCurParsedType;
+ nCurParsedType = 0;
eState = expect_name;
break;
case in_parameter_variable:
- pData->Data().aParameters.push_back(
- Parameter( aCurParsedParam_Type,
+ csv_assert(pCurFunction != 0);
+ pCurFunction->Add_Parameter(
sCurParsedParam_Name,
- eCurParsedParam_Direction ) );
+ nCurParsedParam_Type,
+ eCurParsedParam_Direction );
sCurParsedParam_Name = "";
- aCurParsedParam_Type = 0;
- eCurParsedParam_Direction = param_in;
+ nCurParsedParam_Type = 0;
+ eCurParsedParam_Direction = ary::idl::param_in;
eState = expect_parameter_separator;
break;
case in_exception:
- pData->Data().aRaisedExceptions.push_back(aCurParsedType);
+ csv_assert(pCurFunction != 0);
+ pCurFunction->Add_Exception(nCurParsedType);
eState = expect_exception_separator;
break;
default:
@@ -382,11 +407,7 @@ PE_Function::ReceiveData()
void
PE_Function::TransferData()
{
- *pResult = Gate().Store_Function( pCurInterface->Id(), *pData );
- PassDocuAt(pResult->Id());
-
- pData = 0;
-
+ pCurFunction = 0;
eState = e_none;
}
diff --git a/autodoc/source/parser_i/idl/pe_iface.cxx b/autodoc/source/parser_i/idl/pe_iface.cxx
index ad5ebd01249e..cef0062837a7 100644
--- a/autodoc/source/parser_i/idl/pe_iface.cxx
+++ b/autodoc/source/parser_i/idl/pe_iface.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pe_iface.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: np $ $Date: 2002-05-14 09:02:20 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:38 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -65,9 +65,10 @@
// NOT FULLY DEFINED SERVICES
-#include <ary_i/ce2.hxx>
+#include <ary/idl/i_interface.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/ip_ce.hxx>
#include <ary_i/codeinf2.hxx>
-#include <csi/l_uidl/intrface.hxx>
#include <s2_luidl/pe_func2.hxx>
#include <s2_luidl/pe_attri.hxx>
#include <s2_luidl/pe_type2.hxx>
@@ -110,7 +111,7 @@ PE_Interface::aDispatcher[PE_Interface::e_STATES_MAX][PE_Interface::tt_MAX] =
{ DF, DF, DF, DF, DF }, // in_base
{ DF, DF, &PE_Interface::On_need_curlbr_open_Punctuation,
DF, DF }, // need_curlbr_open
- { &PE_Interface::On_std_GotoAttribute,
+ { &PE_Interface::On_std_Metatype,
&PE_Interface::On_std_GotoFunction,
&PE_Interface::On_std_Punctuation,
&PE_Interface::On_std_GotoFunction,
@@ -132,34 +133,30 @@ PE_Interface::CallHandler( const char * i_sTokenText,
PE_Interface::PE_Interface()
: eState(e_none),
- pData(0),
+ sData_Name(),
bIsPreDeclaration(false),
+ nCurInterface(0),
pPE_Function(0),
- pCurInterface(0),
- aCurParsed_Function(0),
- pPE_Attribute(0),
- aCurParsed_Attribute(0),
pPE_Type(0),
- aCurParsed_Base(0),
- // cUik,
- nUikCharCounter(0)
+ nCurParsed_Base(0),
+ pPE_Attribute(0)
{
- pPE_Function = new PE_Function(aCurParsed_Function, pCurInterface);
- pPE_Attribute = new PE_Attribute(aCurParsed_Attribute, pCurInterface);
- pPE_Type = new PE_Type(aCurParsed_Base);
-
- memset( cUik, 0, 37 );
+ static ary::idl::Ce_id
+ nDummy;
+ pPE_Function = new PE_Function(nDummy, nCurInterface);
+ pPE_Type = new PE_Type(nCurParsed_Base);
+ pPE_Attribute = new PE_Attribute(nCurInterface, PE_Attribute::parse_attribute);
}
void
PE_Interface::EstablishContacts( UnoIDL_PE * io_pParentPE,
- ary::Repository & io_rRepository,
+ ary::n22::Repository & io_rRepository,
TokenProcessing_Result & o_rResult )
{
UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
pPE_Function->EstablishContacts(this,io_rRepository,o_rResult);
- pPE_Attribute->EstablishContacts(this,io_rRepository,o_rResult);
pPE_Type->EstablishContacts(this,io_rRepository,o_rResult);
+ pPE_Attribute->EstablishContacts(this,io_rRepository,o_rResult);
}
PE_Interface::~PE_Interface()
@@ -228,6 +225,7 @@ PE_Interface::Process_Default()
void
PE_Interface::On_need_uik_MetaType(const char * i_sText)
{
+ // Deprecated, data will be ignored
SetResult(done, stay);
eState = uik;
}
@@ -235,24 +233,17 @@ PE_Interface::On_need_uik_MetaType(const char * i_sText)
void
PE_Interface::On_uik_Identifier(const char * i_sText)
{
- unsigned sLen = strlen(i_sText);
- csv_assert( (sLen == 4 OR sLen == 8) AND nUikCharCounter < 36 );
- if (nUikCharCounter > 0)
- cUik[nUikCharCounter++] = '-';
- strncpy( cUik + nUikCharCounter, i_sText, sLen );
- nUikCharCounter += sLen;
-
+ // Deprecated, data will be ignored
SetResult(done, stay);
}
void
PE_Interface::On_uik_Punctuation(const char * i_sText)
{
+ // Deprecated, data will be ignored
SetResult(done, stay);
if (strcmp(",",i_sText) == 0)
{
- csv_assert(nUikCharCounter == 36);
- pData->Data().sUik = cUik;
eState = need_ident;
}
}
@@ -291,7 +282,7 @@ void
PE_Interface::On_need_name_Identifer(const char * i_sText)
{
SetResult(done, stay);
- pData->Data().sName = i_sText;
+ sData_Name = i_sText;
eState = wait_for_base;
}
@@ -300,9 +291,6 @@ PE_Interface::On_wait_for_base_Punctuation(const char * i_sText)
{
if (i_sText[0] != ';')
{
- pCurInterface = Gate().Store_Interface(CurNamespace().Id(), *pData);
- PassDocuAt(pCurInterface.Id());
-
switch (i_sText[0])
{
case ':':
@@ -310,6 +298,8 @@ PE_Interface::On_wait_for_base_Punctuation(const char * i_sText)
eState = in_base;
break;
case '{':
+ store_Interface();
+
SetResult(done,stay);
eState = e_std;
break;
@@ -331,6 +321,8 @@ PE_Interface::On_need_curlbr_open_Punctuation(const char * i_sText)
{
if (i_sText[0] == '{')
{
+ store_Interface();
+
SetResult(done, stay);
eState = e_std;
}
@@ -338,6 +330,16 @@ PE_Interface::On_need_curlbr_open_Punctuation(const char * i_sText)
csv_assert(false);
}
+
+void
+PE_Interface::On_std_Metatype(const char * i_sText)
+{
+ if (strcmp(i_sText,"attribute") == 0)
+ On_std_GotoAttribute(i_sText);
+ else
+ On_std_GotoFunction(i_sText);
+}
+
void
PE_Interface::On_std_Punctuation(const char * i_sText)
{
@@ -356,28 +358,24 @@ PE_Interface::On_std_Punctuation(const char * i_sText)
void
PE_Interface::On_std_Stereotype(const char * i_sText)
{
- if (strcmp(i_sText,"readonly") == 0)
- {
- On_std_GotoAttribute(i_sText);
- }
- else
- {
+ if (strcmp(i_sText,"oneway") == 0)
On_std_GotoFunction(i_sText);
- }
+ else
+ On_std_GotoAttribute(i_sText);
}
void
-PE_Interface::On_std_GotoFunction(const char * i_sText)
+PE_Interface::On_std_GotoFunction(const char * )
{
SetResult(not_done, push_sure, pPE_Function.Ptr());
eState = in_function;
}
void
-PE_Interface::On_std_GotoAttribute(const char * i_sText)
+PE_Interface::On_std_GotoAttribute(const char * )
{
- SetResult(not_done, push_sure, pPE_Attribute.Ptr());
- eState = in_attribute;
+ SetResult(not_done, push_sure, pPE_Attribute.Ptr());
+ eState = in_attribute;
}
void
@@ -406,14 +404,10 @@ PE_Interface::InitData()
{
eState = need_interface;
- pData = new Interface;
+ sData_Name.clear();
bIsPreDeclaration = false;
- pCurInterface = 0;
- aCurParsed_Function = 0;
- aCurParsed_Attribute = 0;
- aCurParsed_Base = 0;
- memset( cUik, 0, 33 );
- nUikCharCounter = 0;
+ nCurInterface = 0;
+ nCurParsed_Base = 0;
}
void
@@ -421,11 +415,14 @@ PE_Interface::TransferData()
{
if (NOT bIsPreDeclaration)
{
- csv_assert(pData != 0);
- csv_assert(pCurInterface);
+ csv_assert(sData_Name.size() > 0);
+ csv_assert(nCurInterface.IsValid());
}
else
- Delete_dyn(pData);
+ {
+ sData_Name.clear();
+ nCurInterface = 0;
+ }
eState = e_none;
}
@@ -436,18 +433,12 @@ PE_Interface::ReceiveData()
switch (eState)
{
case in_base:
- pData->Data().pBase = aCurParsed_Base;
- aCurParsed_Base = 0;
eState = need_curlbr_open;
break;
case in_function:
- pData->Data().aFunctions.push_back(aCurParsed_Function);
- aCurParsed_Function = 0;
eState = e_std;
break;
case in_attribute:
- pData->Data().aAttributes.push_back(aCurParsed_Attribute);
- aCurParsed_Attribute = 0;
eState = e_std;
break;
default:
@@ -455,13 +446,24 @@ PE_Interface::ReceiveData()
}
}
-
UnoIDL_PE &
PE_Interface::MyPE()
{
return *this;
}
+void
+PE_Interface::store_Interface()
+{
+ ary::idl::Interface &
+ rCe = Gate().Ces().Store_Interface(
+ CurNamespace().CeId(),
+ sData_Name,
+ nCurParsed_Base );
+ nCurInterface = rCe.CeId();
+ PassDocuAt(rCe);
+}
+
} // namespace uidl
} // namespace csi
diff --git a/autodoc/source/parser_i/idl/pe_selem.cxx b/autodoc/source/parser_i/idl/pe_selem.cxx
index c7e813f31645..2d2cc0454459 100644
--- a/autodoc/source/parser_i/idl/pe_selem.cxx
+++ b/autodoc/source/parser_i/idl/pe_selem.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pe_selem.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: np $ $Date: 2002-03-08 14:45:34 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:38 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -63,11 +63,13 @@
#include <s2_luidl/pe_selem.hxx>
// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_structelem.hxx>
+#include <ary/idl/ip_ce.hxx>
#include <ary_i/codeinf2.hxx>
#include <s2_luidl/pe_type2.hxx>
#include <s2_luidl/tk_ident.hxx>
#include <s2_luidl/tk_punct.hxx>
-#include <csi/l_uidl/struelem.hxx>
namespace csi
@@ -77,20 +79,22 @@ namespace uidl
PE_StructElement::PE_StructElement( RStructElement & o_rResult,
- const RStruct & i_rCurStruct )
+ const RStruct & i_rCurStruct,
+ bool i_IsExceptionElement )
: eState(e_none),
pResult(&o_rResult),
pCurStruct(&i_rCurStruct),
pPE_Type(0),
- pType(0)
- // sName
+ nType(0),
+ sName(),
+ bIsExceptionElement(i_IsExceptionElement)
{
- pPE_Type = new PE_Type(pType);
+ pPE_Type = new PE_Type(nType);
}
void
PE_StructElement::EstablishContacts( UnoIDL_PE * io_pParentPE,
- ary::Repository & io_rRepository,
+ ary::n22::Repository & io_rRepository,
TokenProcessing_Result & o_rResult )
{
UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
@@ -154,20 +158,33 @@ PE_StructElement::InitData()
{
eState = expect_type;
- pType = 0;
+ nType = 0;
sName = "";
}
void
PE_StructElement::TransferData()
{
- DYN StructElement * pNew = new StructElement;
- pNew->Data().pType = pType;
- pNew->Data().sName = sName;
-
csv_assert(pResult != 0 AND pCurStruct != 0);
- *pResult = Gate().Store_StructElement( pCurStruct->Id(), *pNew );
- PassDocuAt(pResult->Id());
+
+ ary::idl::StructElement *
+ pCe = 0;
+ if (bIsExceptionElement)
+ {
+ pCe = & Gate().Ces().Store_ExceptionMember(
+ *pCurStruct,
+ sName,
+ nType );
+ }
+ else
+ {
+ pCe = & Gate().Ces().Store_StructMember(
+ *pCurStruct,
+ sName,
+ nType );
+ }
+ *pResult = pCe->CeId();
+ PassDocuAt(*pCe);
eState = e_none;
}
diff --git a/autodoc/source/parser_i/idl/pe_servi.cxx b/autodoc/source/parser_i/idl/pe_servi.cxx
index 8df847dbff6b..28abe389db6f 100644
--- a/autodoc/source/parser_i/idl/pe_servi.cxx
+++ b/autodoc/source/parser_i/idl/pe_servi.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pe_servi.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: np $ $Date: 2002-05-14 09:02:20 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:39 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -65,14 +65,15 @@
// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_service.hxx>
+#include <ary/idl/ip_ce.hxx>
#include <ary_i/codeinf2.hxx>
#include <s2_luidl/pe_attri.hxx>
#include <s2_luidl/pe_type2.hxx>
#include <s2_luidl/tk_keyw.hxx>
#include <s2_luidl/tk_ident.hxx>
#include <s2_luidl/tk_punct.hxx>
-#include <csi/l_uidl/service.hxx>
-#include <ary_i/ce2.hxx>
@@ -85,22 +86,23 @@ namespace uidl
PE_Service::PE_Service()
: eState(e_none),
- pData(0),
+ sData_Name(),
bIsPreDeclaration(false),
pCurService(0),
+ nCurService(0),
pPE_Property(0),
- aCurParsed_Property(0),
+ nCurParsed_Property(0),
pPE_Type(0),
- aCurParsed_Type(0),
+ nCurParsed_Type(0),
bOptionalMember(false)
{
- pPE_Property = new PE_Attribute(aCurParsed_Property, pCurService);
- pPE_Type = new PE_Type(aCurParsed_Type);
+ pPE_Property = new PE_Attribute(nCurService, PE_Attribute::parse_property);
+ pPE_Type = new PE_Type(nCurParsed_Type);
}
void
PE_Service::EstablishContacts( UnoIDL_PE * io_pParentPE,
- ary::Repository & io_rRepository,
+ ary::n22::Repository & io_rRepository,
TokenProcessing_Result & o_rResult )
{
UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
@@ -160,7 +162,7 @@ PE_Service::Process_Identifier( const TokIdentifier & i_rToken )
{
if (eState == need_name)
{
- pData->Data().sName = i_rToken.Text();
+ sData_Name = i_rToken.Text();
SetResult(done, stay);
eState = need_curlbr_open;
}
@@ -176,9 +178,11 @@ PE_Service::Process_Punctuation( const TokPunctuation & i_rToken )
case TokPunctuation::CurledBracketOpen:
if (eState == need_curlbr_open)
{
- pCurService = Gate().Store_Service(CurNamespace().Id(), *pData);
- PassDocuAt(pCurService.Id());
-
+ pCurService = &Gate().Ces().Store_Service(
+ CurNamespace().CeId(),
+ sData_Name );
+ nCurService = pCurService->CeId();
+ PassDocuAt(*pCurService);
SetResult(done, stay);
eState = e_std;
}
@@ -216,7 +220,7 @@ PE_Service::Process_Punctuation( const TokPunctuation & i_rToken )
switch (eState)
{
case need_curlbr_open:
- Delete_dyn(pData);
+ sData_Name.clear();
bIsPreDeclaration = true;
SetResult(done, pop_success);
eState = e_none;
@@ -246,15 +250,15 @@ PE_Service::Process_Punctuation( const TokPunctuation & i_rToken )
void
PE_Service::Process_Stereotype( const TokStereotype & i_rToken )
{
- if ( eState == e_std AND i_rToken.Id() == TokStereotype::ste_readonly )
- {
- StartProperty();
- }
- else if (i_rToken.Id() == TokStereotype::ste_optional)
+ if (i_rToken.Id() == TokStereotype::ste_optional)
{
bOptionalMember = true;
SetResult(done, stay);
}
+ else if ( eState == e_std )
+ {
+ StartProperty();
+ }
else
On_Default();
}
@@ -293,11 +297,12 @@ void
PE_Service::InitData()
{
eState = need_name;
- pData = new Service;
+ sData_Name.clear();
bIsPreDeclaration = false;
pCurService = 0;
- aCurParsed_Property = 0;
- aCurParsed_Type = 0;
+ nCurService = 0;
+ nCurParsed_Property = 0;
+ nCurParsed_Type = 0;
bOptionalMember = false;
}
@@ -306,8 +311,8 @@ PE_Service::TransferData()
{
if (NOT bIsPreDeclaration)
{
- csv_assert(pData != 0);
- csv_assert(pCurService);
+ csv_assert(sData_Name.size() > 0);
+ csv_assert(pCurService != 0);
}
eState = e_none;
@@ -319,8 +324,6 @@ PE_Service::ReceiveData()
switch (eState)
{
case in_property:
- pData->Data().aProperties.push_back(aCurParsed_Property.Id());
- aCurParsed_Property = 0;
eState = e_std;
break;
case in_ifc_type:
@@ -328,9 +331,10 @@ PE_Service::ReceiveData()
{
pPE_Type->SetOptional();
}
- pData->Data().aServedInterfaces.push_back(
- CommentedLink(aCurParsed_Type.Id(),pPE_Type->ReleaseDocu()) );
- aCurParsed_Type = 0;
+ pCurService->AddRef_SupportedInterface(
+ nCurParsed_Type,
+ pPE_Type->ReleaseDocu());
+ nCurParsed_Type = 0;
eState = expect_ifc_separator;
break;
case in_service_type:
@@ -338,9 +342,10 @@ PE_Service::ReceiveData()
{
pPE_Type->SetOptional();
}
- pData->Data().aIncludedServices.push_back(
- CommentedLink(aCurParsed_Type.Id(),pPE_Type->ReleaseDocu()) );
- aCurParsed_Type = 0;
+ pCurService->AddRef_IncludedService(
+ nCurParsed_Type,
+ pPE_Type->ReleaseDocu());
+ nCurParsed_Type = 0;
eState = expect_service_separator;
break;
default:
diff --git a/autodoc/source/parser_i/idl/pe_singl.cxx b/autodoc/source/parser_i/idl/pe_singl.cxx
new file mode 100644
index 000000000000..533a1629562d
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pe_singl.cxx
@@ -0,0 +1,272 @@
+/*************************************************************************
+ *
+ * $RCSfile: pe_singl.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:39 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include <s2_luidl/pe_singl.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_singleton.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary_i/codeinf2.hxx>
+#include <s2_luidl/pe_type2.hxx>
+#include <s2_luidl/tk_keyw.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_punct.hxx>
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+
+#if 0
+#ifdef DF
+#undef DF
+#endif
+#define DF &PE_Singleton::On_Default
+
+
+PE_Singleton::F_TOK
+PE_Singleton::aDispatcher[PE_Singleton::e_STATES_MAX][PE_Singleton::tt_MAX] =
+ { { DF, DF, DF }, // e_none
+ { DF, &PE_Singleton::On_need_name_Identifer,
+ DF }, // need_name
+ { DF, DF, &PE_Singleton::On_need_curlbr_open_Punctuation,
+ }, // need_curlbr_open
+ { &PE_Singleton::On_std_GotoService,
+ DF, &PE_Singleton::On_std_Punctuation,
+ }, // e_std
+ { DF, DF, DF }, // in_service
+ { DF, DF, &PE_Interface::On_need_finish_Punctuation,
+ } // need_finish
+ };
+#endif // 0
+
+
+PE_Singleton::PE_Singleton()
+ : eState(e_none),
+ sData_Name(),
+ bIsPreDeclaration(false),
+ pCurSingleton(0),
+ pPE_Type(0),
+ nCurParsed_Service(0)
+{
+ pPE_Type = new PE_Type(nCurParsed_Service);
+}
+
+void
+PE_Singleton::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::n22::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
+{
+ UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
+ pPE_Type->EstablishContacts(this,io_rRepository,o_rResult);
+}
+
+PE_Singleton::~PE_Singleton()
+{
+}
+
+void
+PE_Singleton::ProcessToken( const Token & i_rToken )
+{
+ i_rToken.Trigger(*this);
+}
+
+
+void
+PE_Singleton::Process_MetaType( const TokMetaType & i_rToken )
+{
+ switch ( i_rToken.Id() )
+ {
+ case TokMetaType::mt_service:
+ if (eState == e_std)
+ {
+ SetResult(done, push_sure, pPE_Type.Ptr());
+ eState = in_service;
+ }
+ else
+ On_Default();
+ break;
+ case TokMetaType::mt_singleton:
+ if (eState == need_name)
+ SetResult(done, stay);
+ else
+ On_Default();
+ break;
+ } // end switch
+}
+
+void
+PE_Singleton::Process_Identifier( const TokIdentifier & i_rToken )
+{
+ if (eState == need_name)
+ {
+ sData_Name = i_rToken.Text();
+ SetResult(done, stay);
+ eState = need_curlbr_open;
+ }
+ else
+ On_Default();
+}
+
+void
+PE_Singleton::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ switch (i_rToken.Id())
+ {
+ case TokPunctuation::CurledBracketOpen:
+ if (eState == need_curlbr_open)
+ {
+ pCurSingleton = &Gate().Ces().Store_Singleton(
+ CurNamespace().CeId(),
+ sData_Name );
+ PassDocuAt(*pCurSingleton);
+ SetResult(done, stay);
+ eState = e_std;
+ }
+ else
+ On_Default();
+ break;
+ case TokPunctuation::CurledBracketClose:
+ if (eState == e_std)
+ {
+ SetResult(done, stay);
+ eState = need_finish;
+ }
+ else
+ On_Default();
+ break;
+ case TokPunctuation::Semicolon:
+ switch (eState)
+ {
+ case e_std: SetResult(done, stay);
+ break;
+ case need_finish:
+ SetResult(done, pop_success);
+ eState = e_none;
+ break;
+ default:
+ On_Default();
+ } // end switch
+ break;
+ default:
+ On_Default();
+ } // end switch
+}
+
+void
+PE_Singleton::Process_Default()
+{
+ On_Default();
+}
+
+
+void
+PE_Singleton::On_Default()
+{
+ SetResult(not_done, pop_failure);
+}
+
+void
+PE_Singleton::InitData()
+{
+ eState = need_name;
+ sData_Name.clear();
+ bIsPreDeclaration = false;
+ pCurSingleton = 0;
+ nCurParsed_Service = 0;
+}
+
+void
+PE_Singleton::TransferData()
+{
+ if (NOT bIsPreDeclaration)
+ {
+ csv_assert(sData_Name.size() > 0);
+ csv_assert(pCurSingleton != 0);
+ }
+
+ eState = e_none;
+}
+
+void
+PE_Singleton::ReceiveData()
+{
+ pCurSingleton->Set_Service(nCurParsed_Service);
+ nCurParsed_Service = 0;
+ eState = e_std;
+}
+
+UnoIDL_PE &
+PE_Singleton::MyPE()
+{
+ return *this;
+}
+
+} // namespace uidl
+} // namespace csi
diff --git a/autodoc/source/parser_i/idl/pe_struc.cxx b/autodoc/source/parser_i/idl/pe_struc.cxx
index 24e5d0f6c438..37ec214908d7 100644
--- a/autodoc/source/parser_i/idl/pe_struc.cxx
+++ b/autodoc/source/parser_i/idl/pe_struc.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pe_struc.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: np $ $Date: 2002-03-08 14:45:34 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:40 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -64,15 +64,15 @@
// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_struct.hxx>
+#include <ary/idl/ip_ce.hxx>
#include <ary_i/codeinf2.hxx>
#include <s2_luidl/tk_ident.hxx>
#include <s2_luidl/tk_punct.hxx>
#include <s2_luidl/tk_keyw.hxx>
#include <s2_luidl/pe_type2.hxx>
#include <s2_luidl/pe_selem.hxx>
-#include <csi/l_uidl/struct.hxx>
-#include <csi/l_uidl/struelem.hxx>
-#include <ary_i/uidl/gate.hxx>
@@ -91,7 +91,7 @@ PE_Struct::PE_Struct()
void
PE_Struct::EstablishContacts( UnoIDL_PE * io_pParentPE,
- ary::Repository & io_rRepository,
+ ary::n22::Repository & io_rRepository,
TokenProcessing_Result & o_rResult )
{
UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
@@ -122,8 +122,8 @@ PE_Struct::TransferData()
{
if (NOT Work().bIsPreDeclaration)
{
- csv_assert(Work().pData != 0);
- csv_assert(Work().pCurStruct);
+ csv_assert(Work().sData_Name.size() > 0);
+ csv_assert(Work().nCurStruct.IsValid());
}
Stati().pCurStatus = &Stati().aNone;
}
@@ -134,53 +134,50 @@ PE_Struct::ReceiveData()
Stati().pCurStatus->On_SubPE_Left();
}
+const bool C_bIsStructElement = false; // Means: not ExceptionElement.
+
PE_Struct::S_Work::S_Work()
- : // pData
+ : sData_Name(),
bIsPreDeclaration(false),
- pCurStruct(0),
+ nCurStruct(0),
pPE_Element(0),
- aCurParsed_ElementRef(0),
- pPE_Type(0)
- // aCurParsed_Base
+ nCurParsed_ElementRef(0),
+ pPE_Type(0),
+ nCurParsed_Base(0)
{
- pPE_Element = new PE_StructElement(aCurParsed_ElementRef,pCurStruct);
- pPE_Type = new PE_Type(aCurParsed_Base);
+ pPE_Element = new PE_StructElement(nCurParsed_ElementRef,nCurStruct,C_bIsStructElement);
+ pPE_Type = new PE_Type(nCurParsed_Base);
}
void
PE_Struct::S_Work::InitData()
{
- pData = new Struct;
+ sData_Name.clear();
bIsPreDeclaration = false;
- pCurStruct = 0;
+ nCurStruct = 0;
+ nCurParsed_ElementRef = 0;
+ nCurParsed_Base = 0;
}
void
PE_Struct::S_Work::Prepare_PE_QualifiedName()
{
- aCurParsed_ElementRef = 0;
+ nCurParsed_ElementRef = 0;
}
void
PE_Struct::S_Work::Prepare_PE_Element()
{
- aCurParsed_Base = 0;
+ nCurParsed_Base = 0;
}
void
PE_Struct::S_Work::Data_Set_Name( const char * i_sName )
{
- pData->Data().sName = i_sName;
-}
-
-void
-PE_Struct::S_Work::Data_Add_CurParsed_ElementRef()
-{
- pData->Data().aElements.push_back(aCurParsed_ElementRef);
+ sData_Name = i_sName;
}
-
PE_Struct::S_Stati::S_Stati(PE_Struct & io_rStruct)
: aNone(io_rStruct),
aWaitForName(io_rStruct),
@@ -218,13 +215,6 @@ PE_Struct::State_GotName::Process_Punctuation( const TokPunctuation & i_rToken )
{
if ( i_rToken.Id() != TokPunctuation::Semicolon )
{
- Work().pCurStruct =
- PE().Gate().Store_Struct(
- PE().CurNamespace().Id(),
- *Work().pData );
- PE().PassDocuAt(Work().pCurStruct.Id());
-
-
switch (i_rToken.Id())
{
case TokPunctuation::Colon:
@@ -233,6 +223,7 @@ PE_Struct::State_GotName::Process_Punctuation( const TokPunctuation & i_rToken )
Work().Prepare_PE_QualifiedName();
break;
case TokPunctuation::CurledBracketOpen:
+ PE().store_Struct();
MoveState( Stati().aWaitForElement );
SetResult(done,stay);
break;
@@ -242,7 +233,7 @@ PE_Struct::State_GotName::Process_Punctuation( const TokPunctuation & i_rToken )
}
else
{
- Delete_dyn(Work().pData);
+ Work().sData_Name.clear();
SetResult(done,pop_success);
}
}
@@ -250,7 +241,6 @@ PE_Struct::State_GotName::Process_Punctuation( const TokPunctuation & i_rToken )
void
PE_Struct::State_WaitForBase::On_SubPE_Left()
{
- Work().pData->Data().pBase = Work().aCurParsed_Base;
MoveState(Stati().aGotBase);
}
@@ -259,6 +249,7 @@ PE_Struct::State_GotBase::Process_Punctuation( const TokPunctuation & i_rToken )
{
if ( i_rToken.Id() == TokPunctuation::CurledBracketOpen )
{
+ PE().store_Struct();
MoveState( Stati().aWaitForElement );
SetResult(done,stay);
}
@@ -311,12 +302,6 @@ PE_Struct::State_WaitForElement::Process_Punctuation( const TokPunctuation & i_r
}
void
-PE_Struct::State_WaitForElement::On_SubPE_Left()
-{
- Work().Data_Add_CurParsed_ElementRef();
-}
-
-void
PE_Struct::State_WaitForFinish::Process_Punctuation( const TokPunctuation & i_rToken )
{
if (i_rToken.Id() == TokPunctuation::Semicolon)
@@ -330,6 +315,18 @@ PE_Struct::State_WaitForFinish::Process_Punctuation( const TokPunctuation & i_rT
}
}
+void
+PE_Struct::store_Struct()
+{
+ ary::idl::Struct &
+ rCe = Gate().Ces().Store_Struct(
+ CurNamespace().CeId(),
+ Work().sData_Name,
+ Work().nCurParsed_Base );
+ PassDocuAt(rCe);
+ Work().nCurStruct = rCe.CeId();
+}
+
} // namespace uidl
} // namespace csi
diff --git a/autodoc/source/parser_i/idl/pe_tydf2.cxx b/autodoc/source/parser_i/idl/pe_tydf2.cxx
index e81feed28008..ffc11afacf94 100644
--- a/autodoc/source/parser_i/idl/pe_tydf2.cxx
+++ b/autodoc/source/parser_i/idl/pe_tydf2.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pe_tydf2.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: np $ $Date: 2002-05-14 09:02:20 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:40 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -63,10 +63,11 @@
#include <s2_luidl/pe_tydf2.hxx>
// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_typedef.hxx>
+#include <ary/idl/ip_ce.hxx>
#include <ary_i/codeinf2.hxx>
-#include <csi/l_uidl/typedef.hxx>
#include <s2_luidl/pe_type2.hxx>
-#include <ary_i/uidl/gate.hxx>
#include <s2_luidl/tk_ident.hxx>
#include <s2_luidl/tk_punct.hxx>
#include <s2_luidl/tk_const.hxx>
@@ -108,16 +109,16 @@ PE_Typedef::CallHandler( const char * i_sTokenText,
PE_Typedef::PE_Typedef()
: eState(e_none),
pPE_Type(0),
- pType(0)
- // sName
+ nType(0),
+ sName()
{
- pPE_Type = new PE_Type(pType);
+ pPE_Type = new PE_Type(nType);
}
void
PE_Typedef::EstablishContacts( UnoIDL_PE * io_pParentPE,
- ary::Repository & io_rRepository,
- TokenProcessing_Result & o_rResult )
+ ary::n22::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
{
UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
pPE_Type->EstablishContacts(this,io_rRepository,o_rResult);
@@ -187,7 +188,7 @@ void
PE_Typedef::InitData()
{
eState = expect_description;
- pType = 0;
+ nType = 0;
sName = "";
}
@@ -200,11 +201,9 @@ PE_Typedef::ReceiveData()
void
PE_Typedef::TransferData()
{
- Typedef * pData = new Typedef;
- pData->Data().sName = sName;
- pData->Data().pDefiningType = pType;
- ary::Cei nId = Gate().Store_Typedef( CurNamespace().Id(), *pData ).Id();
- PassDocuAt(nId);
+ ary::idl::Typedef &
+ rCe = Gate().Ces().Store_Typedef(CurNamespace().CeId(), sName, nType);
+ PassDocuAt(rCe);
eState = e_none;
}
diff --git a/autodoc/source/parser_i/idl/pe_type2.cxx b/autodoc/source/parser_i/idl/pe_type2.cxx
index 2eee28b2aa07..97cd4752be49 100644
--- a/autodoc/source/parser_i/idl/pe_type2.cxx
+++ b/autodoc/source/parser_i/idl/pe_type2.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pe_type2.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: np $ $Date: 2002-03-08 14:45:35 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:41 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -65,12 +65,13 @@
// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_type.hxx>
+#include <ary/idl/ip_type.hxx>
#include <ary_i/codeinf2.hxx>
#include <s2_luidl/uidl_tok.hxx>
#include <s2_luidl/tk_ident.hxx>
#include <s2_luidl/tk_keyw.hxx>
-// #include <ary/uidl/cestorg.hxx>
-#include <ary_i/uidl/gate.hxx>
@@ -80,14 +81,13 @@ namespace uidl
{
-PE_Type::PE_Type( csi::prl::RefType & o_rResult )
+PE_Type::PE_Type( ary::idl::Type_id & o_rResult )
: pResult(&o_rResult),
nIsSequenceCounter(0),
bIsUnsigned(false),
- // sFullType,
- // sName,
- eState(e_none)
- // sLastPart
+ sFullType(),
+ eState(e_none),
+ sLastPart()
{
}
@@ -162,7 +162,7 @@ PE_Type::Process_BuiltInType( const TokBuiltInType & i_rToken )
}
else if (eState == expect_quname_separator)
{
- sFullType.SetName(sLastPart);
+ sFullType.SetLocalName(sLastPart);
SetResult(not_done, pop_success);
}
}
@@ -187,7 +187,7 @@ PE_Type::Process_TypeModifier( const TokTypeModifier & i_rToken )
}
else if (eState == expect_quname_separator)
{
- sFullType.SetName(sLastPart);
+ sFullType.SetLocalName(sLastPart);
SetResult(not_done, pop_success);
}
}
@@ -201,7 +201,7 @@ PE_Type::Process_Default()
void
PE_Type::Finish()
{
- sFullType.SetName(sLastPart);
+ sFullType.SetLocalName(sLastPart);
SetResult(not_done, pop_success);
}
@@ -213,30 +213,23 @@ PE_Type::InitData()
nIsSequenceCounter = 0;
bIsUnsigned = false;
sFullType.Empty();
- sLastPart = "";
+ sLastPart.clear();
}
void
PE_Type::TransferData()
{
- csi::prl::RefType result = 0;
- if (NOT bIsUnsigned)
+ if (bIsUnsigned)
{
- result = Gate().CheckInType(MatchingNamespace(sFullType), sFullType.Name());
- }
- else
- {
- udmstri sName( StreamLock(40)() << "unsigned " << sFullType.Name() << c_str );
- result = Gate().CheckInType(MatchingNamespace(sFullType), sName);
- }
-
- while (nIsSequenceCounter)
- {
- result = Gate().CheckInSequence(result.Id());
- nIsSequenceCounter--;
+ String sName( StreamLock(40)() << "unsigned " << sFullType.LocalName() << c_str );
+ sFullType.SetLocalName(sName);
}
- *pResult = result;
+ const ary::idl::Type &
+ result = Gate().Types().CheckIn_Type( sFullType,
+ nIsSequenceCounter,
+ CurNamespace().CeId() );
+ *pResult = result.TypeId();
eState = e_none;
}
diff --git a/autodoc/source/parser_i/idl/pe_vari2.cxx b/autodoc/source/parser_i/idl/pe_vari2.cxx
index 859e2a202e01..466e03043814 100644
--- a/autodoc/source/parser_i/idl/pe_vari2.cxx
+++ b/autodoc/source/parser_i/idl/pe_vari2.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pe_vari2.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: np $ $Date: 2002-03-08 14:45:35 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:41 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -65,11 +65,13 @@
// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_property.hxx>
+#include <ary/idl/ip_ce.hxx>
#include <ary_i/codeinf2.hxx>
#include <s2_luidl/pe_type2.hxx>
#include <s2_luidl/tk_ident.hxx>
#include <s2_luidl/tk_punct.hxx>
-#include <csi/l_uidl/struelem.hxx>
namespace csi
@@ -78,8 +80,8 @@ namespace uidl
{
-PE_Variable::PE_Variable( csi::prl::RefType & i_rResult_Type,
- udmstri & i_rResult_Name )
+PE_Variable::PE_Variable( ary::idl::Type_id & i_rResult_Type,
+ String & i_rResult_Name )
: eState(),
pResult_Type(&i_rResult_Type),
pResult_Name(&i_rResult_Name),
@@ -90,7 +92,7 @@ PE_Variable::PE_Variable( csi::prl::RefType & i_rResult_Type,
void
PE_Variable::EstablishContacts( UnoIDL_PE * io_pParentPE,
- ary::Repository & io_rRepository,
+ ary::n22::Repository & io_rRepository,
TokenProcessing_Result & o_rResult )
{
UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
@@ -99,7 +101,6 @@ PE_Variable::EstablishContacts( UnoIDL_PE * io_pParentPE,
PE_Variable::~PE_Variable()
{
-
}
void
diff --git a/autodoc/source/parser_i/idl/semnode.cxx b/autodoc/source/parser_i/idl/semnode.cxx
index 7a047e77f931..f8b1dd04cf1c 100644
--- a/autodoc/source/parser_i/idl/semnode.cxx
+++ b/autodoc/source/parser_i/idl/semnode.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: semnode.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: np $ $Date: 2002-03-08 14:45:35 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:41 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -65,9 +65,9 @@
// NOT FULLY DEFINED SERVICES
#include <ary/ary.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_module.hxx>
#include <ary_i/codeinf2.hxx>
-#include <ary_i/uidl/gate.hxx>
-#include <ary_i/uidl/cenamesp.hxx>
#include <s2_luidl/parsenv2.hxx>
@@ -86,11 +86,11 @@ SemanticNode::SemanticNode()
void
SemanticNode::EstablishContacts( UnoIDL_PE * io_pParentPE,
- ary::Repository & io_rRepository,
+ ary::n22::Repository & io_rRepository,
TokenProcessing_Result & o_rResult )
{
pParentPE = io_pParentPE;
- pAryGate = &io_rRepository.RwGate_Idl();
+ pAryGate = &io_rRepository.Gate_Idl();
pTokenResult = &o_rResult;
}
diff --git a/autodoc/source/parser_i/idl/tk_keyw.cxx b/autodoc/source/parser_i/idl/tk_keyw.cxx
index 366cc2c5134d..3fb873c471e0 100644
--- a/autodoc/source/parser_i/idl/tk_keyw.cxx
+++ b/autodoc/source/parser_i/idl/tk_keyw.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: tk_keyw.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: np $ $Date: 2002-05-14 09:02:20 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:41 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -105,6 +105,7 @@ TokMetaType::EV_TokenId ev_mt_interface(TokMetaType::mt_interface,"interface
TokMetaType::EV_TokenId ev_mt_module(TokMetaType::mt_module,"module");
TokMetaType::EV_TokenId ev_mt_property(TokMetaType::mt_property,"property");
TokMetaType::EV_TokenId ev_mt_service(TokMetaType::mt_service,"service");
+TokMetaType::EV_TokenId ev_mt_singleton(TokMetaType::mt_singleton,"singleton");
TokMetaType::EV_TokenId ev_mt_struct(TokMetaType::mt_struct,"struct");
TokMetaType::EV_TokenId ev_mt_typedef(TokMetaType::mt_typedef,"typedef");
TokMetaType::EV_TokenId ev_mt_uik(TokMetaType::mt_uik,"uik");
@@ -112,11 +113,18 @@ TokMetaType::EV_TokenId ev_mt_uik(TokMetaType::mt_uik,"uik");
lux::EnumValueMap G_aTokStereotype_EV_TokenId_Values;
TokStereotype::EV_TokenId ev_ste_none(TokStereotype::e_none,"");
+TokStereotype::EV_TokenId ev_ste_bound(TokStereotype::ste_bound,"bound");
TokStereotype::EV_TokenId ev_ste_const(TokStereotype::ste_const,"const");
+TokStereotype::EV_TokenId ev_ste_constrained(TokStereotype::ste_constrained,"constrained");
+TokStereotype::EV_TokenId ev_ste_maybeambiguous(TokStereotype::ste_maybeambiguous,"maybeambiguous");
+TokStereotype::EV_TokenId ev_ste_maybedefault(TokStereotype::ste_maybedefault,"maybedefault");
+TokStereotype::EV_TokenId ev_ste_maybevoid(TokStereotype::ste_maybevoid,"maybevoid");
TokStereotype::EV_TokenId ev_ste_oneway(TokStereotype::ste_oneway,"oneway");
TokStereotype::EV_TokenId ev_ste_optional(TokStereotype::ste_optional,"optional");
TokStereotype::EV_TokenId ev_ste_readonly(TokStereotype::ste_readonly,"readonly");
+TokStereotype::EV_TokenId ev_ste_removable(TokStereotype::ste_removable,"removable");
TokStereotype::EV_TokenId ev_ste_virtual(TokStereotype::ste_virtual,"virtual");
+TokStereotype::EV_TokenId ev_ste_transient(TokStereotype::ste_transient,"transient");
lux::EnumValueMap G_aTokParameterHandling_EV_TokenId_Values;
diff --git a/autodoc/source/parser_i/idl/unoidl.cxx b/autodoc/source/parser_i/idl/unoidl.cxx
index f7eac1942b31..0b745247b687 100644
--- a/autodoc/source/parser_i/idl/unoidl.cxx
+++ b/autodoc/source/parser_i/idl/unoidl.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: unoidl.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: np $ $Date: 2002-03-08 14:45:35 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:42 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -65,29 +65,29 @@
// NOT FULLY DECLARED SERVICES
+#include <stdlib.h>
#include <cosv/file.hxx>
#include <ary/ary.hxx>
+#include <ary/idl/i_gate.hxx>
#include <ary_i/codeinf2.hxx>
-#include <ary_i/uidl/gate.hxx>
#include <tools/filecoll.hxx>
#include <tools/tkpchars.hxx>
#include <s2_luidl/tkp_uidl.hxx>
#include <s2_luidl/distrib.hxx>
#include <s2_luidl/pe_file2.hxx>
#include <s2_dsapi/cx_dsapi.hxx>
+#include <x_parse2.hxx>
-namespace csi
-{
-namespace uidl
+namespace autodoc
{
class FileParsePerformers
{
public:
- FileParsePerformers( ary::Repository & io_rRepository );
+ FileParsePerformers( ary::n22::Repository & io_rRepository );
void ParseFile(
const char * i_sFullPath );
@@ -96,15 +96,18 @@ class FileParsePerformers
private:
CharacterSource aFileLoader;
- Dyn<TokenParser_Uidl>
+ Dyn<csi::uidl::TokenParser_Uidl>
pTokens;
- TokenDistributor aDistributor;
- Dyn<PE_File> pFileParseEnvironment;
- ary::Repository & rRepository;
+ csi::uidl::TokenDistributor
+ aDistributor;
+ Dyn<csi::uidl::PE_File>
+ pFileParseEnvironment;
+ ary::n22::Repository &
+ rRepository;
};
-Uidl_Parser::Uidl_Parser( ary::Repository & io_rRepository )
+Uidl_Parser::Uidl_Parser( ary::n22::Repository & io_rRepository )
: pRepository(&io_rRepository)
{
}
@@ -112,7 +115,8 @@ Uidl_Parser::Uidl_Parser( ary::Repository & io_rRepository )
void
Uidl_Parser::Run( const autodoc::FileCollector_Ifc & i_rFiles )
{
- FileParsePerformers aFileParsePerformers( *pRepository );
+ Dyn<FileParsePerformers>
+ pFileParsePerformers( new FileParsePerformers(*pRepository) );
FileCollector::const_iterator iEnd = i_rFiles.End();
for ( FileCollector::const_iterator iter = i_rFiles.Begin();
@@ -120,21 +124,38 @@ Uidl_Parser::Run( const autodoc::FileCollector_Ifc & i_rFiles )
++iter )
{
Cout() << (*iter) << " ..."<< Endl();
- aFileParsePerformers.ParseFile(*iter);
+
+ try
+ {
+ pFileParsePerformers->ParseFile(*iter);
+ }
+ catch (X_AutodocParser &)
+ {
+ /// Ignore and goon
+ Cout() << "Parse error in file " << *iter << Endl();
+ pFileParsePerformers = new FileParsePerformers( *pRepository );
+ }
+ catch (...)
+ {
+ /// Ignore and goon
+ Cout() << "Unknown error." << Endl();
+ exit(0);
+// pFileParsePerformers = new FileParsePerformers( *pRepository );
+ }
}
- aFileParsePerformers.ConnectLinks();
+ pFileParsePerformers->ConnectLinks();
}
-FileParsePerformers::FileParsePerformers( ary::Repository & io_rRepository )
+FileParsePerformers::FileParsePerformers( ary::n22::Repository & io_rRepository )
: aDistributor(io_rRepository),
rRepository( io_rRepository )
{
DYN csi::dsapi::Context_Docu * dpDocuContext
= new csi::dsapi::Context_Docu( aDistributor.DocuTokens_Receiver() );
- pTokens = new TokenParser_Uidl( aDistributor.CodeTokens_Receiver(), *dpDocuContext );
+ pTokens = new csi::uidl::TokenParser_Uidl( aDistributor.CodeTokens_Receiver(), *dpDocuContext );
pFileParseEnvironment
- = new PE_File(aDistributor);
+ = new csi::uidl::PE_File(aDistributor);
aDistributor.SetTokenProvider(*pTokens);
aDistributor.SetTopParseEnvironment(*pFileParseEnvironment);
@@ -161,10 +182,10 @@ FileParsePerformers::ParseFile( const char * i_sFullPath )
void
FileParsePerformers::ConnectLinks()
{
- rRepository.RwGate_Idl().ConnectAdditionalLinks();
+ // KORR
+// rRepository.RwGate_Idl().ConnectAdditionalLinks();
}
-} // namespace uidl
-} // namespace csi
+} // namespace autodoc