diff options
author | Nikolai Pretzell <np@openoffice.org> | 2002-11-01 16:15:51 +0000 |
---|---|---|
committer | Nikolai Pretzell <np@openoffice.org> | 2002-11-01 16:15:51 +0000 |
commit | 18e7b2a7dbc74cd094028e11b0910f1136cce615 (patch) | |
tree | bc1652165f7eb6af956a96cbb2e6408db0da2cbf /autodoc/source/parser_i | |
parent | 7a9d96862db4571421d6eadb314da3c0c67ece2b (diff) |
#103134#
Diffstat (limited to 'autodoc/source/parser_i')
43 files changed, 1311 insertions, 693 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 diff --git a/autodoc/source/parser_i/idoc/docu_pe2.cxx b/autodoc/source/parser_i/idoc/docu_pe2.cxx index 7dc73949d701..95942ae84c80 100644 --- a/autodoc/source/parser_i/idoc/docu_pe2.cxx +++ b/autodoc/source/parser_i/idoc/docu_pe2.cxx @@ -2,9 +2,9 @@ * * $RCSfile: docu_pe2.cxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: np $ $Date: 2002-05-14 09:02:21 $ + * last change: $Author: np $ $Date: 2002-11-01 17:15:44 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -66,12 +66,12 @@ // NOT FULLY DEFINED SERVICES #include <ary_i/codeinf2.hxx> +#include <ary_i/d_token.hxx> #include <s2_dsapi/dsapitok.hxx> #include <s2_dsapi/tk_atag2.hxx> #include <s2_dsapi/tk_html.hxx> #include <s2_dsapi/tk_docw2.hxx> #include <s2_dsapi/tk_xml.hxx> -#include <csi/d_sapi/d_token.hxx> #ifdef UNX diff --git a/autodoc/source/parser_i/inc/s2_luidl/cx_sub.hxx b/autodoc/source/parser_i/inc/s2_luidl/cx_sub.hxx index 1e0edf0f1110..5921c7c20d33 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/cx_sub.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/cx_sub.hxx @@ -2,9 +2,9 @@ * * $RCSfile: cx_sub.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: mh $ $Date: 2002-08-13 14:46:36 $ + * last change: $Author: np $ $Date: 2002-11-01 17:15:45 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -68,11 +68,7 @@ // COMPONENTS // PARAMETERS -// [ed] 6/15/02 On OS X we need to have full definitions of classes in order -// to have template instantiation -#ifdef MACOSX #include "uidl_tok.hxx" -#endif namespace csi { diff --git a/autodoc/source/parser_i/inc/s2_luidl/distrib.hxx b/autodoc/source/parser_i/inc/s2_luidl/distrib.hxx index 27e14f1cd7ca..31aa7589ae4e 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/distrib.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/distrib.hxx @@ -2,9 +2,9 @@ * * $RCSfile: distrib.hxx,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:45 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -74,8 +74,10 @@ namespace ary { - class Repository; - + namespace n22 + { + class Repository; + } namespace info { class CodeInformation; @@ -88,14 +90,12 @@ namespace csi { namespace dsapi { -class Token; -class SapiDocu_PE; -} // namespace dsapi -} // namespace csi + class Token_Receiver; + class SapiDocu_PE; +} + -namespace csi -{ namespace uidl { @@ -113,7 +113,7 @@ class TokenDistributor : private TokenProcessing_Types { public: TokenDistributor( - ary::Repository & io_rRepository ); + ary::n22::Repository & io_rRepository ); void SetTokenProvider( TokenParser_Uidl & io_rTokenSource ); void SetTopParseEnvironment( @@ -151,7 +151,7 @@ class TokenDistributor : private TokenProcessing_Types { public: ProcessingData( - ary::Repository & io_rRepository, + ary::n22::Repository & io_rRepository, Documentation & i_rDocuProcessor ); ~ProcessingData(); void SetTopParseEnvironment( @@ -190,7 +190,8 @@ class TokenDistributor : private TokenProcessing_Types aCurResult; uintt nTryCount; bool bFinished; - ary::Repository & rRepository; + ary::n22::Repository & + rRepository; Documentation * pDocuProcessor; }; diff --git a/autodoc/source/parser_i/inc/s2_luidl/parsenv2.hxx b/autodoc/source/parser_i/inc/s2_luidl/parsenv2.hxx index f65d292d4a01..8bd6c343d9fb 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/parsenv2.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/parsenv2.hxx @@ -2,9 +2,9 @@ * * $RCSfile: parsenv2.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: mh $ $Date: 2002-08-13 14:46:36 $ + * last change: $Author: np $ $Date: 2002-11-01 17:15:46 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -62,11 +62,6 @@ #ifndef LUIDL_PARSENV2_HXX #define LUIDL_PARSENV2_HXX -// [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 // USED SERVICES // BASE CLASSES @@ -74,23 +69,36 @@ // COMPONENTS #include <s2_luidl/semnode.hxx> // PARAMETERS -#include <ary_i/uidl/cenamesp.hxx> -#include <ary_i/ce2.hxx> +#include <ary/idl/i_language.hxx> +#include <ary/idl/i_module.hxx> + +// [ed] 6/15/02 The OS X compilers require full class definitions at the time +// of template instantiation +// np: Is this really so? +#ifdef MACOSX +#include <ary_i/codeinf2.hxx> +#endif -namespace ary -{ -namespace uidl -{ - class CeStorage; -} // namespace uidl -} // namespace ary namespace ary { -namespace info -{ - class CodeInformation; -} + class QualifiedName; + + namespace n22 + { + class Repository; + } + + + namespace idl + { + class CodeEntity; + } + + namespace info + { + class CodeInformation; + } } @@ -112,7 +120,8 @@ class UnoIDL_PE : virtual protected TokenProcessing_Types virtual void EstablishContacts( UnoIDL_PE * io_pParentPE, - ary::Repository & io_rRepository, + ary::n22::Repository & + io_rRepository, TokenProcessing_Result & o_rResult ); virtual void Enter( @@ -128,7 +137,8 @@ class UnoIDL_PE : virtual protected TokenProcessing_Types { pDocu = let_dpDocu; } void SetOptional(); void PassDocuAt( - ary::Cei i_nCeId ); + ary::idl::CodeEntity & + io_rCe ); /* const SemanticNode & @@ -142,11 +152,9 @@ class UnoIDL_PE : virtual protected TokenProcessing_Types E_EnvStackAction i_eWhat2DoWithEnvStack, UnoIDL_PE * i_pParseEnv2Push = 0 ) { aMyNode.SetTokenResult( i_eDone, i_eWhat2DoWithEnvStack, i_pParseEnv2Push ); } - virtual ary::uidl::CeNamespace & + virtual const ary::idl::Module & CurNamespace() const; - ary::Cei MatchingNamespace( - const QuName & i_rQualification ); - ary::uidl::Gate & Gate() const { return aMyNode.AryGate(); } + ary::idl::Gate & Gate() const { return aMyNode.AryGate(); } DYN ary::info::CodeInformation * ReleaseDocu() { return pDocu.Release(); } diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_attri.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_attri.hxx index cf8198a175a9..73aa5797d604 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/pe_attri.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/pe_attri.hxx @@ -2,9 +2,9 @@ * * $RCSfile: pe_attri.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: mh $ $Date: 2002-08-13 14:46:37 $ + * last change: $Author: np $ $Date: 2002-11-01 17:15:46 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -67,19 +67,21 @@ // USED SERVICES // BASE CLASSES -// [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/pestate.hxx> // COMPONENTS // PARAMETERS -#include <csi/prl/tsk_type.hxx> -#include <ary_i/uidl/gate.hxx> +#include <ary/idl/i_gate.hxx> +#include <ary/idl/i_property.hxx> + +namespace ary +{ + namespace idl + { + class Service; + } +} namespace csi { @@ -93,16 +95,25 @@ class PE_Attribute : public UnoIDL_PE, public ParseEnvState { public: - typedef ary::uidl::Gate::RInterface RInterface; - typedef ary::uidl::Gate::RAttribute RAttribute; + typedef ary::idl::Ce_id Ce_id; + typedef ary::idl::Type_id Type_id; + typedef ary::idl::Property::Stereotypes Stereotypes; + + enum E_ParsedType + { + parse_attribute, + parse_property + }; + PE_Attribute( - RAttribute & o_rResult, - const RInterface & i_rCurInterface ); + Ce_id & i_rCurOwner, + E_ParsedType i_eCeType ); virtual void EstablishContacts( UnoIDL_PE * io_pParentPE, - ary::Repository & io_rRepository, + ary::n22::Repository & + io_rRepository, TokenProcessing_Result & o_rResult ); virtual ~PE_Attribute(); @@ -121,8 +132,10 @@ class PE_Attribute : public UnoIDL_PE, virtual void Process_Default(); void PresetOptional() { bIsOptional = true; } - void PresetReadonly() { bIsReadonly = true; } - + void PresetStereotypes( + Stereotypes::E_Flags + i_eFlag ) + { aStereotypes.Set_Flag(i_eFlag); } private: enum E_State { @@ -137,16 +150,18 @@ class PE_Attribute : public UnoIDL_PE, virtual void TransferData(); virtual UnoIDL_PE & MyPE(); + // DATA E_State eState; - Attribute * pData; - RAttribute * pResult; - const RInterface * pCurInterface; + Ce_id * pCurOwner; Dyn<PE_Variable> pPE_Variable; - csi::prl::RefType aCurParsedType; - udmstri sCurParsedName; + + // object-data + Type_id nCurParsedType; + String sCurParsedName; bool bIsOptional; - bool bIsReadonly; + Stereotypes aStereotypes; + E_ParsedType eCeType; }; diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_const.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_const.hxx index 0f4d975e9537..48b1d0c27c4c 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/pe_const.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/pe_const.hxx @@ -2,9 +2,9 @@ * * $RCSfile: pe_const.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: mh $ $Date: 2002-08-13 14:46:37 $ + * last change: $Author: np $ $Date: 2002-11-01 17:15:46 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -63,21 +63,12 @@ #define LUIDL_PE_CONST_HXX - -// [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 - // USED SERVICES // BASE CLASSES #include <s2_luidl/parsenv2.hxx> #include <s2_luidl/pestate.hxx> // COMPONENTS // PARAMETERS -#include <csi/prl/tsk_type.hxx> -#include <ary_i/cei.hxx> namespace udm { @@ -102,7 +93,8 @@ class PE_Constant : public UnoIDL_PE, PE_Constant(); virtual void EstablishContacts( UnoIDL_PE * io_pParentPE, - ary::Repository & io_rRepository, + ary::n22::Repository & + io_rRepository, TokenProcessing_Result & o_rResult ); ~PE_Constant(); @@ -166,15 +158,15 @@ class PE_Constant : public UnoIDL_PE, E_State eState; - ConstantsGroup * pData; - ary::Cei nDataId; + String sData_Name; + ary::idl::Ce_id nDataId; Dyn<PE_Type> pPE_Type; - csi::prl::RefType pType; + ary::idl::Type_id nType; Dyn<PE_Value> pPE_Value; - udmstri sName; - udmstri sAssignment; + String sName; + String sAssignment; }; diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_enum2.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_enum2.hxx index 7a12fa0f0dd4..0ae84271b65d 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/pe_enum2.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/pe_enum2.hxx @@ -2,9 +2,9 @@ * * $RCSfile: pe_enum2.hxx,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:47 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -70,7 +70,6 @@ #include <s2_luidl/pestate.hxx> // COMPONENTS // PARAMETERS -#include <csi/prl/tsk_type.hxx> @@ -79,7 +78,7 @@ namespace csi namespace uidl { -class Enum; +// class Enum; class PE_Value; @@ -90,7 +89,7 @@ class PE_Enum : public UnoIDL_PE, PE_Enum(); virtual void EstablishContacts( UnoIDL_PE * io_pParentPE, - ary::Repository & io_rRepository, + ary::n22::Repository & io_rRepository, TokenProcessing_Result & o_rResult ); ~PE_Enum(); @@ -148,12 +147,12 @@ class PE_Enum : public UnoIDL_PE, E_State eState; - Enum * pData; - ary::Cei nDataId; + String sData_Name; + ary::idl::Ce_id nDataId; Dyn<PE_Value> pPE_Value; - udmstri sName; - udmstri sAssignment; + String sName; + String sAssignment; }; diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_evalu.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_evalu.hxx index 9641a23b96c3..52e3d5040b8f 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/pe_evalu.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/pe_evalu.hxx @@ -2,9 +2,9 @@ * * $RCSfile: pe_evalu.hxx,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:47 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -70,7 +70,6 @@ #include <s2_luidl/pestate.hxx> // COMPONENTS // PARAMETERS -#include <csi/prl/tsk_type.hxx> namespace udm { @@ -88,12 +87,13 @@ class PE_Value : public UnoIDL_PE, { public: PE_Value( - udmstri & o_rName, - udmstri & o_rAssignment, + String & o_rName, + String & o_rAssignment, bool i_bIsConst ); virtual void EstablishContacts( UnoIDL_PE * io_pParentPE, - ary::Repository & io_rRepository, + ary::n22::Repository & + io_rRepository, TokenProcessing_Result & o_rResult ); ~PE_Value(); diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_excp.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_excp.hxx index 3df0adfdd6ae..874705b6b8d9 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/pe_excp.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/pe_excp.hxx @@ -2,9 +2,9 @@ * * $RCSfile: pe_excp.hxx,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:47 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -70,9 +70,8 @@ #include <s2_luidl/pestate.hxx> // COMPONENTS #include <s2_luidl/semnode.hxx> -#include <csi/prl/quname2.hxx> +#include <ary/qualiname.hxx> // PARAMETERS -#include <csi/prl/tsk_type.hxx> @@ -104,7 +103,7 @@ class PE_Exception : public UnoIDL_PE PE_Exception(); virtual void EstablishContacts( UnoIDL_PE * io_pParentPE, - ary::Repository & io_rRepository, + ary::n22::Repository & io_rRepository, TokenProcessing_Result & o_rResult ); ~PE_Exception(); @@ -121,19 +120,16 @@ class PE_Exception : public UnoIDL_PE void Prepare_PE_Element(); void Data_Set_Name( const char * i_sName ); - void Data_Add_CurParsed_ElementRef(); - - Exception * pData; + // DATA + String sData_Name; bool bIsPreDeclaration; - udm::IRef< Exception > - pCurStruct; + ary::idl::Ce_id nCurStruct; Dyn<PE_StructElement> pPE_Element; - udm::IRef< StructElement > - aCurParsed_ElementRef; + ary::idl::Ce_id nCurParsed_ElementRef; Dyn<PE_Type> pPE_Type; - csi::prl::RefType aCurParsed_Base; + ary::idl::Type_id nCurParsed_Base; }; struct S_Stati; @@ -232,7 +228,7 @@ class PE_Exception : public UnoIDL_PE virtual void Process_Punctuation( const TokPunctuation & i_rToken ); - virtual void On_SubPE_Left(); +// virtual void On_SubPE_Left(); }; class State_WaitForFinish : public PE_StructState { // -> ; @@ -269,6 +265,8 @@ class PE_Exception : public UnoIDL_PE virtual void TransferData(); virtual void ReceiveData(); + public: void store_Exception(); private: + friend class PE_StructState; S_Stati & Stati() { return *pStati; } diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_file2.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_file2.hxx index 855f7354e338..271d9e0b42ae 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/pe_file2.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/pe_file2.hxx @@ -2,9 +2,9 @@ * * $RCSfile: pe_file2.hxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: np $ $Date: 2002-03-08 14:45:36 $ + * last change: $Author: np $ $Date: 2002-11-01 17:15:47 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -74,10 +74,10 @@ namespace ary { -namespace uidl +namespace idl { -class CeNamespace; -} // namespace uidl +class Module; +} // namespace idl } // namespace ary @@ -88,6 +88,7 @@ namespace uidl class TokenDistributor; class PE_Service; +class PE_Singleton; class PE_Interface; class PE_Struct; class PE_Exception; @@ -104,7 +105,7 @@ class PE_File : public UnoIDL_PE, TokenDistributor & i_rTokenAdmin ); virtual void EstablishContacts( UnoIDL_PE * io_pParentPE, - ary::Repository & io_rRepository, + ary::n22::Repository & io_rRepository, TokenProcessing_Result & o_rResult ); ~PE_File(); @@ -138,13 +139,12 @@ class PE_File : public UnoIDL_PE, virtual void TransferData(); virtual void ReceiveData(); virtual UnoIDL_PE & MyPE(); - virtual ary::uidl::CeNamespace & + virtual const ary::idl::Module & CurNamespace() const; - - // DATA TokenDistributor * pTokenAdmin; Dyn<PE_Service> pPE_Service; + Dyn<PE_Singleton> pPE_Singleton; Dyn<PE_Interface> pPE_Interface; Dyn<PE_Struct> pPE_Struct; Dyn<PE_Exception> pPE_Exception; @@ -152,7 +152,7 @@ class PE_File : public UnoIDL_PE, Dyn<PE_Enum> pPE_Enum; Dyn<PE_Typedef> pPE_Typedef; - ary::uidl::CeNamespace * + const ary::idl::Module * pCurNamespace; E_State eState; diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_func2.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_func2.hxx index d26347a30668..464234ad3cb2 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/pe_func2.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/pe_func2.hxx @@ -2,9 +2,9 @@ * * $RCSfile: pe_func2.hxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: np $ $Date: 2002-03-08 14:45:36 $ + * last change: $Author: np $ $Date: 2002-11-01 17:15:48 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -66,13 +66,21 @@ // USED SERVICES // BASE CLASSES +// #include <ary/idl/i_gate.hxx> +// #include <ary/idl/ip_ce.hxx> #include <s2_luidl/parsenv2.hxx> #include <s2_luidl/pestate.hxx> // COMPONENTS -#include <csi/l_uidl/param.hxx> +#include <ary/idl/i_param.hxx> // PARAMETERS -#include <csi/prl/tsk_type.hxx> -#include <ary_i/uidl/gate.hxx> + +namespace ary +{ + namespace idl + { + class Function; + } +} namespace csi @@ -80,8 +88,6 @@ namespace csi namespace uidl { -class Interface; - class PE_Type; class PE_Variable; @@ -89,8 +95,8 @@ class PE_Function : public UnoIDL_PE, public ParseEnvState { public: - typedef ary::uidl::Gate::RInterface RInterface; - typedef ary::uidl::Gate::RFunction RFunction; + typedef ary::idl::Ce_id RInterface; + typedef ary::idl::Ce_id RFunction; PE_Function( RFunction & o_rResult, @@ -98,7 +104,7 @@ class PE_Function : public UnoIDL_PE, virtual void EstablishContacts( UnoIDL_PE * io_pParentPE, - ary::Repository & io_rRepository, + ary::n22::Repository & io_rRepository, TokenProcessing_Result & o_rResult ); virtual ~PE_Function(); @@ -151,21 +157,29 @@ class PE_Function : public UnoIDL_PE, virtual void TransferData(); virtual UnoIDL_PE & MyPE(); + // DATA E_State eState; - Function * pData; + + String sData_Name; + ary::idl::Type_id nData_ReturnType; + bool bData_Const; + bool bData_Oneway; + ary::idl::Function * + pCurFunction; + RFunction * pResult; const RInterface * pCurInterface; Dyn<PE_Type> pPE_Type; - csi::prl::RefType aCurParsedType; // ReturnType or Exception + ary::idl::Type_id nCurParsedType; // ReturnType or Exception - udmstri sName; + String sName; Dyn<PE_Variable> pPE_Variable; - E_ParameterDirection + ary::idl::E_ParameterDirection eCurParsedParam_Direction; - csi::prl::RefType aCurParsedParam_Type; - udmstri sCurParsedParam_Name; + ary::idl::Type_id nCurParsedParam_Type; + String sCurParsedParam_Name; }; diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_iface.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_iface.hxx index 2ada4ede5d5c..85ddba815a2f 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/pe_iface.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/pe_iface.hxx @@ -2,9 +2,9 @@ * * $RCSfile: pe_iface.hxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: np $ $Date: 2002-03-08 14:45:36 $ + * last change: $Author: np $ $Date: 2002-11-01 17:15:48 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -70,7 +70,6 @@ #include <s2_luidl/pestate.hxx> // COMPONENTS // PARAMETERS -#include <csi/prl/tsk_type.hxx> @@ -80,9 +79,9 @@ namespace uidl { -class Interface; -class Function; -class Attribute; +//class Interface; +//class Function; +//class Attribute; class PE_Function; class PE_Attribute; @@ -97,7 +96,7 @@ class PE_Interface : public UnoIDL_PE, virtual void EstablishContacts( UnoIDL_PE * io_pParentPE, - ary::Repository & io_rRepository, + ary::n22::Repository & io_rRepository, TokenProcessing_Result & o_rResult ); virtual void ProcessToken( @@ -164,6 +163,7 @@ class PE_Interface : public UnoIDL_PE, void On_need_name_Identifer(const char * i_sText); void On_wait_for_base_Punctuation(const char * i_sText); void On_need_curlbr_open_Punctuation(const char * i_sText); + void On_std_Metatype(const char * i_sText); void On_std_Punctuation(const char * i_sText); void On_std_Stereotype(const char * i_sText); void On_std_GotoFunction(const char * i_sText); @@ -180,25 +180,20 @@ class PE_Interface : public UnoIDL_PE, virtual void ReceiveData(); virtual UnoIDL_PE & MyPE(); + void store_Interface(); + // DATA static F_TOK aDispatcher[e_STATES_MAX][tt_MAX]; E_State eState; - Interface * pData; + String sData_Name; bool bIsPreDeclaration; - udm::IRef< Interface > - pCurInterface; + ary::idl::Ce_id nCurInterface; Dyn<PE_Function> pPE_Function; - udm::IRef< Function > - aCurParsed_Function; - Dyn<PE_Attribute> pPE_Attribute; - udm::IRef< Attribute > - aCurParsed_Attribute; Dyn<PE_Type> pPE_Type; - csi::prl::RefType aCurParsed_Base; - char cUik[37]; - unsigned nUikCharCounter; + ary::idl::Type_id nCurParsed_Base; + Dyn<PE_Attribute> pPE_Attribute; }; diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_selem.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_selem.hxx index 3a10d523c4d2..3d90916c71d5 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/pe_selem.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/pe_selem.hxx @@ -2,9 +2,9 @@ * * $RCSfile: pe_selem.hxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: np $ $Date: 2002-03-08 14:45:36 $ + * last change: $Author: np $ $Date: 2002-11-01 17:15:48 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -70,8 +70,7 @@ #include <s2_luidl/pestate.hxx> // COMPONENTS // PARAMETERS -#include <csi/prl/tsk_type.hxx> -#include <ary_i/uidl/gate.hxx> +#include <ary/idl/i_gate.hxx> namespace udm { @@ -92,15 +91,16 @@ class PE_StructElement : public UnoIDL_PE, public ParseEnvState { public: - typedef ary::uidl::Gate::RStructElement RStructElement; - typedef ary::uidl::Gate::RStruct RStruct; + typedef ary::idl::Ce_id RStructElement; + typedef ary::idl::Ce_id RStruct; PE_StructElement( RStructElement & o_rResult, - const RStruct & i_rCurStruct ); + const RStruct & i_rCurStruct, + bool i_IsExceptionElement ); virtual void EstablishContacts( UnoIDL_PE * io_pParentPE, - ary::Repository & io_rRepository, + ary::n22::Repository & io_rRepository, TokenProcessing_Result & o_rResult ); ~PE_StructElement(); @@ -129,12 +129,14 @@ class PE_StructElement : public UnoIDL_PE, virtual void TransferData(); virtual UnoIDL_PE & MyPE(); + // DATA E_State eState; RStructElement * pResult; const RStruct * pCurStruct; + bool bIsExceptionElement; Dyn<PE_Type> pPE_Type; - csi::prl::RefType pType; + ary::idl::Type_id nType; udmstri sName; }; diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_servi.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_servi.hxx index 5507ddc8502b..f240e7081f0d 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/pe_servi.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/pe_servi.hxx @@ -2,9 +2,9 @@ * * $RCSfile: pe_servi.hxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: np $ $Date: 2002-03-08 14:45:36 $ + * last change: $Author: np $ $Date: 2002-11-01 17:15:49 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -70,19 +70,20 @@ #include <s2_luidl/pestate.hxx> // COMPONENTS // PARAMETERS -#include <csi/prl/tsk_type.hxx> - +namespace ary +{ + namespace idl + { + class Service; + } +} namespace csi { namespace uidl { -class Service; -class Interface; -class Attribute; - class PE_Attribute; class PE_Type; @@ -95,7 +96,7 @@ class PE_Service : public UnoIDL_PE, virtual void EstablishContacts( UnoIDL_PE * io_pParentPE, - ary::Repository & io_rRepository, + ary::n22::Repository & io_rRepository, TokenProcessing_Result & o_rResult ); virtual void ProcessToken( @@ -145,17 +146,16 @@ class PE_Service : public UnoIDL_PE, // DATA E_State eState; - Service * pData; + String sData_Name; bool bIsPreDeclaration; - udm::IRef< Service > - pCurService; + ary::idl::Service * pCurService; + ary::idl::Ce_id nCurService; // Needed for PE_Attribute. Dyn<PE_Attribute> pPE_Property; - udm::IRef< Attribute > - aCurParsed_Property; + ary::idl::Ce_id nCurParsed_Property; Dyn<PE_Type> pPE_Type; - csi::prl::RefType aCurParsed_Type; + ary::idl::Type_id nCurParsed_Type; bool bOptionalMember; }; diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_singl.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_singl.hxx new file mode 100644 index 000000000000..81aac918b29d --- /dev/null +++ b/autodoc/source/parser_i/inc/s2_luidl/pe_singl.hxx @@ -0,0 +1,180 @@ +/************************************************************************* + * + * $RCSfile: pe_singl.hxx,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: np $ $Date: 2002-11-01 17:15:49 $ + * + * 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): _______________________________________ + * + * + ************************************************************************/ + +#ifndef LUIDL_PE_SINGL_HXX +#define LUIDL_PE_SINGL_HXX + + + +// USED SERVICES + // BASE CLASSES +#include <s2_luidl/parsenv2.hxx> +#include <s2_luidl/pestate.hxx> + // COMPONENTS + // PARAMETERS + +namespace ary +{ + namespace idl + { + class Singleton; + } +} + + +namespace csi +{ +namespace uidl +{ + +class PE_Type; + + +class PE_Singleton : public UnoIDL_PE, + public ParseEnvState +{ + public: + PE_Singleton(); + virtual ~PE_Singleton(); + + virtual void EstablishContacts( + UnoIDL_PE * io_pParentPE, + ary::n22::Repository & io_rRepository, + TokenProcessing_Result & + o_rResult ); + virtual void ProcessToken( + const Token & i_rToken ); + + virtual void Process_MetaType( + const TokMetaType & i_rToken ); + virtual void Process_Identifier( + const TokIdentifier & + i_rToken ); + virtual void Process_Punctuation( + const TokPunctuation & + i_rToken ); + virtual void Process_Default(); + + private: + enum E_State + { + e_none = 0, + need_name, + need_curlbr_open, + e_std, + in_service, + need_finish, + e_STATES_MAX + }; + + +#if 0 + enum E_TokenType /// @ATTENTION Do not change existing values (except of tt_MAX) !!! Else array-indices will break. + { + tt_metatype = 0, + tt_identifier = 1, + tt_punctuation = 2, + tt_startoftype = 3, + tt_MAX + }; + typedef void (PE_Singleton::*F_TOK)(const char *); + + + void On_need_singleton_MetaType(const char * i_sText); + void On_need_name_Identifer(const char * i_sText); + void On_need_curlbr_open_Punctuation(const char * i_sText); + void On_std_GotoService(const char * i_sText); + void On_std_Punctuation(const char * i_sText); + void On_need_finish_Punctuation(const char * i_sText); + + void CallHandler( + const char * i_sTokenText, + E_TokenType i_eTokenType ); +#endif // 0 + + void On_Default(); + + virtual void InitData(); + virtual void TransferData(); + virtual void ReceiveData(); + virtual UnoIDL_PE & MyPE(); + + // DATA +// static F_TOK aDispatcher[e_STATES_MAX][tt_MAX]; + + E_State eState; + String sData_Name; + bool bIsPreDeclaration; + ary::idl::Singleton * + pCurSingleton; + + Dyn<PE_Type> pPE_Type; + ary::idl::Type_id nCurParsed_Service; +}; + + +} // namespace uidl +} // namespace csi + + + +#endif + diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_struc.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_struc.hxx index 4b2bf36349f3..0433c7149de7 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/pe_struc.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/pe_struc.hxx @@ -2,9 +2,9 @@ * * $RCSfile: pe_struc.hxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: np $ $Date: 2002-03-08 14:45:36 $ + * last change: $Author: np $ $Date: 2002-11-01 17:15:50 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -70,9 +70,8 @@ #include <s2_luidl/pestate.hxx> // COMPONENTS #include <s2_luidl/semnode.hxx> -#include <csi/prl/quname2.hxx> +#include <ary/qualiname.hxx> // PARAMETERS -#include <csi/prl/tsk_type.hxx> @@ -104,7 +103,7 @@ class PE_Struct : public UnoIDL_PE PE_Struct(); virtual void EstablishContacts( UnoIDL_PE * io_pParentPE, - ary::Repository & io_rRepository, + ary::n22::Repository & io_rRepository, TokenProcessing_Result & o_rResult ); ~PE_Struct(); @@ -121,18 +120,16 @@ class PE_Struct : public UnoIDL_PE void Prepare_PE_Element(); void Data_Set_Name( const char * i_sName ); - void Data_Add_CurParsed_ElementRef(); - Struct * pData; + String sData_Name; bool bIsPreDeclaration; - udm::IRef< Struct > pCurStruct; + ary::idl::Ce_id nCurStruct; Dyn<PE_StructElement> pPE_Element; - udm::IRef< StructElement > - aCurParsed_ElementRef; + ary::idl::Ce_id nCurParsed_ElementRef; Dyn<PE_Type> pPE_Type; - csi::prl::RefType aCurParsed_Base; + ary::idl::Type_id nCurParsed_Base; }; struct S_Stati; @@ -231,7 +228,6 @@ class PE_Struct : public UnoIDL_PE virtual void Process_Punctuation( const TokPunctuation & i_rToken ); - virtual void On_SubPE_Left(); }; class State_WaitForFinish : public PE_StructState { // -> ; @@ -268,6 +264,8 @@ class PE_Struct : public UnoIDL_PE virtual void TransferData(); virtual void ReceiveData(); + public: void store_Struct(); private: + friend class PE_StructState; S_Stati & Stati() { return *pStati; } diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_tydf2.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_tydf2.hxx index 8b0d12d1e75f..5c553437d525 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/pe_tydf2.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/pe_tydf2.hxx @@ -2,9 +2,9 @@ * * $RCSfile: pe_tydf2.hxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: np $ $Date: 2002-03-08 14:45:36 $ + * last change: $Author: np $ $Date: 2002-11-01 17:15:50 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -70,7 +70,6 @@ #include <s2_luidl/pestate.hxx> // COMPONENTS // PARAMETERS -#include <csi/prl/tsk_type.hxx> @@ -90,7 +89,7 @@ class PE_Typedef : public UnoIDL_PE, PE_Typedef(); virtual void EstablishContacts( UnoIDL_PE * io_pParentPE, - ary::Repository & io_rRepository, + ary::n22::Repository & io_rRepository, TokenProcessing_Result & o_rResult ); ~PE_Typedef(); @@ -139,12 +138,13 @@ class PE_Typedef : public UnoIDL_PE, virtual void TransferData(); virtual UnoIDL_PE & MyPE(); + // DATA static F_TOK aDispatcher[e_STATES_MAX][tt_MAX]; E_State eState; Dyn<PE_Type> pPE_Type; - csi::prl::RefType pType; - udmstri sName; + ary::idl::Type_id nType; + String sName; }; diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_type2.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_type2.hxx index 2309868deb9b..c765ccfe3eee 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/pe_type2.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/pe_type2.hxx @@ -2,9 +2,9 @@ * * $RCSfile: pe_type2.hxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: np $ $Date: 2002-03-08 14:45:36 $ + * last change: $Author: np $ $Date: 2002-11-01 17:15:50 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -69,9 +69,8 @@ #include<s2_luidl/parsenv2.hxx> #include<s2_luidl/pestate.hxx> // COMPONENTS -#include<csi/prl/quname2.hxx> +#include<ary/qualiname.hxx> // PARAMETERS -#include<csi/prl/tsk_type.hxx> namespace csi @@ -85,7 +84,7 @@ class PE_Type : public UnoIDL_PE, { public: PE_Type( - csi::prl::RefType & o_rResult ); + ary::idl::Type_id & o_rResult ); ~PE_Type(); virtual void ProcessToken( @@ -122,14 +121,14 @@ class PE_Type : public UnoIDL_PE, virtual UnoIDL_PE & MyPE(); // DATA - csi::prl::RefType * pResult; + ary::idl::Type_id * pResult; uintt nIsSequenceCounter; bool bIsUnsigned; - QuName sFullType; + ary::QualifiedName sFullType; E_State eState; - udmstri sLastPart; + String sLastPart; }; diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_vari2.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_vari2.hxx index a6ad1562e877..260d5c1b254d 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/pe_vari2.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/pe_vari2.hxx @@ -2,9 +2,9 @@ * * $RCSfile: pe_vari2.hxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: np $ $Date: 2002-03-08 14:45:36 $ + * last change: $Author: np $ $Date: 2002-11-01 17:15:51 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -70,7 +70,6 @@ #include <s2_luidl/pestate.hxx> // COMPONENTS // PARAMETERS -#include <csi/prl/tsk_type.hxx> namespace csi @@ -87,11 +86,12 @@ class PE_Variable : public UnoIDL_PE, { public: PE_Variable( - csi::prl::RefType & i_rResult_Type, - udmstri & i_rResult_Name ); + ary::idl::Type_id & i_rResult_Type, + String & i_rResult_Name ); virtual void EstablishContacts( UnoIDL_PE * io_pParentPE, - ary::Repository & io_rRepository, + ary::n22::Repository & + io_rRepository, TokenProcessing_Result & o_rResult ); virtual ~PE_Variable(); @@ -121,9 +121,10 @@ class PE_Variable : public UnoIDL_PE, virtual void TransferData(); virtual UnoIDL_PE & MyPE(); + // DATA E_State eState; - csi::prl::RefType * pResult_Type; - udmstri * pResult_Name; + ary::idl::Type_id * pResult_Type; + String * pResult_Name; Dyn<PE_Type> pPE_Type; }; diff --git a/autodoc/source/parser_i/inc/s2_luidl/semnode.hxx b/autodoc/source/parser_i/inc/s2_luidl/semnode.hxx index e151e5b82dcc..9b3da30fbbb3 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/semnode.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/semnode.hxx @@ -2,9 +2,9 @@ * * $RCSfile: semnode.hxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: np $ $Date: 2002-03-08 14:45:36 $ + * last change: $Author: np $ $Date: 2002-11-01 17:15:51 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -69,17 +69,23 @@ #include <s2_luidl/tokproct.hxx> // COMPONENTS // PARAMETERS -#include <csi/prl/quname2.hxx> -#include <udm/ref.hxx> +#include <ary/qualiname.hxx> +// #include <udm/ref.hxx> + namespace ary { +class QualifiedName; + +namespace n22 +{ class Repository; -namespace uidl +} +namespace idl { class Gate; -class CeNamespace; -} // namespace uidl +class Module; +} // namespace idl } // namespace ary @@ -90,7 +96,6 @@ namespace uidl class Struct; -class QualifiedName; class Token; @@ -102,26 +107,29 @@ class SemanticNode : private TokenProcessing_Types SemanticNode(); void EstablishContacts( UnoIDL_PE * io_pParentPE, - ary::Repository & io_rRepository, + ary::n22::Repository & + io_rRepository, TokenProcessing_Result & o_rResult ); ~SemanticNode(); +/* udm::IRef< Struct > GetStructRef( const QuName & i_rText, ary::uidl::CeNamespace & i_rCurNamespace ); +*/ void SetTokenResult( E_TokenDone i_eDone, E_EnvStackAction i_eWhat2DoWithEnvStack, UnoIDL_PE * i_pParseEnv2Push = 0 ); UnoIDL_PE * Parent() const { return pParentPE; } - ary::uidl::Gate & AryGate() const { return *pAryGate; } + ary::idl::Gate & AryGate() const { return *pAryGate; } private: // DATA UnoIDL_PE * pParentPE; - ary::uidl::Gate * pAryGate; + ary::idl::Gate * pAryGate; TokenProcessing_Result * pTokenResult; }; diff --git a/autodoc/source/parser_i/inc/s2_luidl/tk_keyw.hxx b/autodoc/source/parser_i/inc/s2_luidl/tk_keyw.hxx index 79e864b8316a..f05ab5a90874 100644 --- a/autodoc/source/parser_i/inc/s2_luidl/tk_keyw.hxx +++ b/autodoc/source/parser_i/inc/s2_luidl/tk_keyw.hxx @@ -2,9 +2,9 @@ * * $RCSfile: tk_keyw.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: np $ $Date: 2002-05-14 09:02:21 $ + * last change: $Author: np $ $Date: 2002-11-01 17:15:51 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -154,6 +154,7 @@ class TokMetaType : public TokKeyword mt_module, mt_property, mt_service, + mt_singleton, mt_struct, mt_typedef, mt_uik @@ -183,12 +184,20 @@ class TokStereotype : public TokKeyword enum E_TokenId { e_none = 0, - ste_const = 1, + ste_bound = 1, + ste_const, + ste_constrained, + ste_maybeambiguous, + ste_maybedefault, + ste_maybevoid, ste_oneway, ste_optional, ste_readonly, - ste_virtual + ste_removable, + ste_virtual, + ste_transient }; + typedef lux::Enum<E_TokenId> EV_TokenId; TokStereotype( |