Changeset 18220 for trunk/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Importer/InfixExpressionParser.cs
- Timestamp:
- 02/24/22 20:33:45 (2 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
-
trunk/HeuristicLab.Problems.DataAnalysis.Symbolic
- Property svn:mergeinfo changed
-
trunk/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Importer/InfixExpressionParser.cs
r18171 r18220 82 82 internal static readonly BidirectionalLookup<string, ISymbol> 83 83 knownSymbols = new BidirectionalLookup<string, ISymbol>(StringComparer.InvariantCulture, new SymbolComparer()); 84 internal static readonly SubFunctionSymbol subFunctionSymbol = new SubFunctionSymbol(); 84 85 85 86 private Number number = new Number(); … … 328 329 329 330 private ISymbol GetSymbol(string tok) { 330 var symb = knownSymbols.GetByFirst(tok).FirstOrDefault(); 331 if (symb == null) throw new ArgumentException(string.Format("Unknown token {0} found.", tok)); 332 return symb; 331 if (knownSymbols.ContainsFirst(tok)) 332 return knownSymbols.GetByFirst(tok).FirstOrDefault(); 333 else 334 return subFunctionSymbol; 333 335 } 334 336 … … 581 583 if (funcNode.Symbol is LaggedVariable) { 582 584 ParseLaggedVariable(tokens, funcNode); 585 } else if (funcNode.Symbol is SubFunctionSymbol) { // SubFunction 586 var subFunction = funcNode as SubFunctionTreeNode; 587 subFunction.Name = idTok.strVal; 588 // input arguments 589 var args = ParseArgList(tokens); 590 IList<string> arguments = new List<string>(); 591 foreach (var arg in args) 592 if (arg is VariableTreeNode varTreeNode) 593 arguments.Add(varTreeNode.VariableName); 594 subFunction.Arguments = arguments; 583 595 } else { 584 596 // functions
Note: See TracChangeset
for help on using the changeset viewer.