1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: parsenv2.hxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef LUIDL_PARSENV2_HXX
32 #define LUIDL_PARSENV2_HXX
37 #include <s2_luidl/tokproct.hxx>
39 #include <s2_luidl/semnode.hxx>
41 #include <ary/idl/i_types4idl.hxx>
42 #include <ary/idl/i_module.hxx>
76 class UnoIDL_PE
: virtual protected TokenProcessing_Types
81 virtual void EstablishContacts(
82 UnoIDL_PE
* io_pParentPE
,
85 TokenProcessing_Result
&
87 // virtual void EstablishContacts(
88 // UnoIDL_PE * io_pParentPE,
91 // TokenProcessing_Result &
94 E_EnvStackAction i_eWayOfEntering
);
96 E_EnvStackAction i_eWayOfLeaving
);
97 virtual void ProcessToken(
98 const Token
& i_rToken
) = 0;
101 DYN
ary::doc::OldIdlDocu
*
106 ary::idl::CodeEntity
&
109 UnoIDL_PE
* Parent() const { return aMyNode
.Parent(); }
113 E_EnvStackAction i_eWhat2DoWithEnvStack
,
114 UnoIDL_PE
* i_pParseEnv2Push
= 0 )
115 { aMyNode
.SetTokenResult( i_eDone
, i_eWhat2DoWithEnvStack
, i_pParseEnv2Push
); }
116 virtual const ary::idl::Module
&
117 CurNamespace() const;
118 virtual const ParserInfo
&
120 ary::idl::Gate
& Gate() const { return aMyNode
.AryGate(); }
121 TokenProcessing_Result
&
122 TokenResult() const { return aMyNode
.TokenResult(); }
123 DYN
ary::doc::OldIdlDocu
*
124 ReleaseDocu() { return pDocu
.Release(); }
127 ary::Repository
& MyRepository() { csv_assert(pRepository
!= 0);
128 return *pRepository
; }
130 virtual void InitData();
131 virtual void TransferData() = 0;
132 virtual void ReceiveData();
134 SemanticNode aMyNode
;
135 Dyn
<ary::doc::OldIdlDocu
>
137 ary::Repository
* pRepository
;