Changeset 12422 for trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Grammars/SymbolicExpressionGrammar.cs
- Timestamp:
- 06/10/15 11:29:34 (9 years ago)
- Location:
- trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding
-
trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Grammars/SymbolicExpressionGrammar.cs
r12012 r12422 177 177 } 178 178 179 protected override sealed void AddSymbol(ISymbol symbol) { 179 public override sealed void AddSymbol(ISymbol symbol) { 180 if (ReadOnly) throw new InvalidOperationException(); 180 181 base.AddSymbol(symbol); 181 182 RegisterSymbolEvents(symbol); 182 183 OnChanged(); 183 184 } 184 protected override sealed void RemoveSymbol(ISymbol symbol) { 185 public override sealed void RemoveSymbol(ISymbol symbol) { 186 if (ReadOnly) throw new InvalidOperationException(); 185 187 DeregisterSymbolEvents(symbol); 186 188 base.RemoveSymbol(symbol); … … 204 206 #endregion 205 207 206 #region ISymbolicExpressionGrammar methods 207 void ISymbolicExpressionGrammar.AddSymbol(ISymbol symbol) { 208 if (ReadOnly) throw new InvalidOperationException(); 209 AddSymbol(symbol); 210 } 211 void ISymbolicExpressionGrammar.RemoveSymbol(ISymbol symbol) { 212 if (ReadOnly) throw new InvalidOperationException(); 213 RemoveSymbol(symbol); 214 } 215 216 void ISymbolicExpressionGrammar.AddAllowedChildSymbol(ISymbol parent, ISymbol child) { 208 public sealed override void AddAllowedChildSymbol(ISymbol parent, ISymbol child) { 217 209 if (ReadOnly) throw new InvalidOperationException(); 218 210 base.AddAllowedChildSymbol(parent, child); 219 211 } 220 void ISymbolicExpressionGrammar.AddAllowedChildSymbol(ISymbol parent, ISymbol child, int argumentIndex) {212 public sealed override void AddAllowedChildSymbol(ISymbol parent, ISymbol child, int argumentIndex) { 221 213 if (ReadOnly) throw new InvalidOperationException(); 222 214 base.AddAllowedChildSymbol(parent, child, argumentIndex); 223 215 } 224 void ISymbolicExpressionGrammar.RemoveAllowedChildSymbol(ISymbol parent, ISymbol child) {216 public sealed override void RemoveAllowedChildSymbol(ISymbol parent, ISymbol child) { 225 217 if (ReadOnly) throw new InvalidOperationException(); 226 218 base.RemoveAllowedChildSymbol(parent, child); 227 219 } 228 void ISymbolicExpressionGrammar.RemoveAllowedChildSymbol(ISymbol parent, ISymbol child, int argumentIndex) {220 public sealed override void RemoveAllowedChildSymbol(ISymbol parent, ISymbol child, int argumentIndex) { 229 221 if (ReadOnly) throw new InvalidOperationException(); 230 222 base.RemoveAllowedChildSymbol(parent, child, argumentIndex); 231 223 } 232 224 233 void ISymbolicExpressionGrammar.SetSubtreeCount(ISymbol symbol, int minimumSubtreeCount, int maximumSubtreeCount) {225 public sealed override void SetSubtreeCount(ISymbol symbol, int minimumSubtreeCount, int maximumSubtreeCount) { 234 226 if (ReadOnly) throw new InvalidOperationException(); 235 227 base.SetSubtreeCount(symbol, minimumSubtreeCount, maximumSubtreeCount); … … 237 229 238 230 private bool suppressEvents = false; 239 void ISymbolicExpressionGrammar.StartGrammarManipulation() {231 public void StartGrammarManipulation() { 240 232 suppressEvents = true; 241 233 } 242 void ISymbolicExpressionGrammar.FinishedGrammarManipulation() {234 public void FinishedGrammarManipulation() { 243 235 suppressEvents = false; 244 236 OnChanged(); 245 237 } 246 238 247 protected override void OnChanged() {239 protected sealed override void OnChanged() { 248 240 if (suppressEvents) return; 249 241 base.OnChanged(); 250 242 } 251 #endregion252 243 253 244 #region symbol events … … 305 296 private void Symbol_NameChanged(object sender, EventArgs e) { 306 297 ISymbol symbol = (ISymbol)sender; 307 string oldName = symbols. Where(x => x.Value == symbol).First().Key;298 string oldName = symbols.First(x => x.Value == symbol).Key; 308 299 string newName = symbol.Name; 309 300
Note: See TracChangeset
for help on using the changeset viewer.