1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 #ifndef ADC_SEMNODE_HXX 29 #define ADC_SEMNODE_HXX 30 31 32 33 // USED SERVICES 34 // BASE CLASSES 35 #include <s2_luidl/tokproct.hxx> 36 // COMPONENTS 37 // PARAMETERS 38 #include <ary/qualiname.hxx> 39 // #include <udm/ref.hxx> 40 41 42 namespace ary 43 { 44 class QualifiedName; 45 class Repository; 46 47 namespace idl 48 { 49 class Gate; 50 class Module; 51 } // namespace idl 52 } // namespace ary 53 54 55 namespace csi 56 { 57 namespace uidl 58 { 59 60 61 class Struct; 62 class Token; 63 64 65 /** is an implementation class for UnoIDL_PE s 66 */ 67 class SemanticNode : private TokenProcessing_Types 68 { 69 public: 70 SemanticNode(); 71 void EstablishContacts( 72 UnoIDL_PE * io_pParentPE, 73 ary::idl::Gate & io_rRepository, 74 TokenProcessing_Result & 75 o_rResult ); 76 ~SemanticNode(); 77 78 void SetTokenResult( 79 E_TokenDone i_eDone, 80 E_EnvStackAction i_eWhat2DoWithEnvStack, 81 UnoIDL_PE * i_pParseEnv2Push = 0 ); 82 UnoIDL_PE * Parent() const { return pParentPE; } 83 ary::idl::Gate & AryGate() const { return *pAryGate; } 84 TokenProcessing_Result & 85 TokenResult() const { return *pTokenResult; } 86 87 private: 88 // DATA 89 UnoIDL_PE * pParentPE; 90 ary::idl::Gate * pAryGate; 91 TokenProcessing_Result * 92 pTokenResult; 93 }; 94 95 96 /* 97 class Trying_PE 98 { 99 public: 100 virtual ~Trying_PE() {} 101 102 protected: 103 Trying_PE(); 104 105 virtual void ProcessToken( 106 const Token & i_rToken ); 107 108 void StartTry( 109 UnoIDL_PE & i_rFirstTry ); 110 void Add2Try( 111 UnoIDL_PE & i_rTry ); 112 bool AmITrying() const; 113 UnoIDL_PE * NextTry() const; 114 void FinishTry(); 115 116 private: 117 std::vector<UnoIDL_PE*> 118 aTryableSubEnvironments; 119 uintt nTryCounter; 120 }; 121 122 */ 123 124 125 // IMPLEMENTATION 126 127 128 } // namespace uidl 129 } // namespace csi 130 131 #endif 132 133