1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef LUIDL_PARSENV2_HXX
21 #define LUIDL_PARSENV2_HXX
26 #include <s2_luidl/tokproct.hxx>
28 #include <s2_luidl/semnode.hxx>
30 #include <ary/idl/i_types4idl.hxx>
31 #include <ary/idl/i_module.hxx>
64 class UnoIDL_PE
: virtual protected TokenProcessing_Types
69 virtual void EstablishContacts(
70 UnoIDL_PE
* io_pParentPE
,
73 TokenProcessing_Result
&
75 // virtual void EstablishContacts(
76 // UnoIDL_PE * io_pParentPE,
79 // TokenProcessing_Result &
82 E_EnvStackAction i_eWayOfEntering
);
84 E_EnvStackAction i_eWayOfLeaving
);
85 virtual void ProcessToken(
86 const Token
& i_rToken
) = 0;
89 DYN
ary::doc::OldIdlDocu
*
94 ary::idl::CodeEntity
&
97 UnoIDL_PE
* Parent() const { return aMyNode
.Parent(); }
101 E_EnvStackAction i_eWhat2DoWithEnvStack
,
102 UnoIDL_PE
* i_pParseEnv2Push
= 0 )
103 { aMyNode
.SetTokenResult( i_eDone
, i_eWhat2DoWithEnvStack
, i_pParseEnv2Push
); }
104 virtual const ary::idl::Module
&
105 CurNamespace() const;
106 virtual const ParserInfo
&
108 ary::idl::Gate
& Gate() const { return aMyNode
.AryGate(); }
109 TokenProcessing_Result
&
110 TokenResult() const { return aMyNode
.TokenResult(); }
111 DYN
ary::doc::OldIdlDocu
*
112 ReleaseDocu() { return pDocu
.Release(); }
115 ary::Repository
& MyRepository() { csv_assert(pRepository
!= 0);
116 return *pRepository
; }
118 virtual void InitData();
119 virtual void TransferData() = 0;
120 virtual void ReceiveData();
122 SemanticNode aMyNode
;
123 Dyn
<ary::doc::OldIdlDocu
>
125 ary::Repository
* pRepository
;
135 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */