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 -
trunk/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Importer/SymbolicExpressionImporter.cs
r18143 r18220 172 172 Expect(Token.EQ, tokens); 173 173 var initValToken = tokens.Dequeue(); 174 if (initValToken.Symbol == TokenSymbol.CONSTANT) {174 if (initValToken.Symbol == TokenSymbol.CONSTANT) { 175 175 t.Value = initValToken.DoubleValue; 176 176 } else { … … 289 289 if (token.Symbol != TokenSymbol.SYMB && 290 290 token.Symbol != TokenSymbol.LBRACKET && // LBRACKET and RBRACKET are used for <num=..> and as LT, GT operators 291 token.Symbol != TokenSymbol.RBRACKET 291 token.Symbol != TokenSymbol.RBRACKET 292 292 ) throw new FormatException("Expected function symbol, but got: " + token.StringValue); 293 293 return knownSymbols[token.StringValue].CreateTreeNode();
Note: See TracChangeset
for help on using the changeset viewer.