1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef ADC_SEMNODE_HXX 25 #define ADC_SEMNODE_HXX 26 27 28 29 // USED SERVICES 30 // BASE CLASSES 31 #include <s2_luidl/tokproct.hxx> 32 // COMPONENTS 33 // PARAMETERS 34 #include <ary/qualiname.hxx> 35 // #include <udm/ref.hxx> 36 37 38 namespace ary 39 { 40 class QualifiedName; 41 class Repository; 42 43 namespace idl 44 { 45 class Gate; 46 class Module; 47 } // namespace idl 48 } // namespace ary 49 50 51 namespace csi 52 { 53 namespace uidl 54 { 55 56 57 class Struct; 58 class Token; 59 60 61 /** is an implementation class for UnoIDL_PE s 62 */ 63 class SemanticNode : private TokenProcessing_Types 64 { 65 public: 66 SemanticNode(); 67 void EstablishContacts( 68 UnoIDL_PE * io_pParentPE, 69 ary::idl::Gate & io_rRepository, 70 TokenProcessing_Result & 71 o_rResult ); 72 ~SemanticNode(); 73 74 void SetTokenResult( 75 E_TokenDone i_eDone, 76 E_EnvStackAction i_eWhat2DoWithEnvStack, 77 UnoIDL_PE * i_pParseEnv2Push = 0 ); Parent() const78 UnoIDL_PE * Parent() const { return pParentPE; } AryGate() const79 ary::idl::Gate & AryGate() const { return *pAryGate; } 80 TokenProcessing_Result & TokenResult() const81 TokenResult() const { return *pTokenResult; } 82 83 private: 84 // DATA 85 UnoIDL_PE * pParentPE; 86 ary::idl::Gate * pAryGate; 87 TokenProcessing_Result * 88 pTokenResult; 89 }; 90 91 92 /* 93 class Trying_PE 94 { 95 public: 96 virtual ~Trying_PE() {} 97 98 protected: 99 Trying_PE(); 100 101 virtual void ProcessToken( 102 const Token & i_rToken ); 103 104 void StartTry( 105 UnoIDL_PE & i_rFirstTry ); 106 void Add2Try( 107 UnoIDL_PE & i_rTry ); 108 bool AmITrying() const; 109 UnoIDL_PE * NextTry() const; 110 void FinishTry(); 111 112 private: 113 std::vector<UnoIDL_PE*> 114 aTryableSubEnvironments; 115 uintt nTryCounter; 116 }; 117 118 */ 119 120 121 // IMPLEMENTATION 122 123 124 } // namespace uidl 125 } // namespace csi 126 127 #endif 128 129