Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/08/21 16:28:53 (3 years ago)
Author:
dpiringe
Message:

#3136

  • modified InfixExpressionParser to fully support SubFunctionSymbol
    • created a SubFunctionTreeNode to store the function arguments
  • modified StructureTemplateView to regenerate the content state
  • first implementation for the main tree build up logic
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3136_Structural_GP/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Importer/InfixExpressionParser.cs

    r18062 r18065  
    453453            laggedVarNode.Lag = (int)Math.Round(sign * lagToken.doubleVal);
    454454            laggedVarNode.Weight = 1.0;
     455          } else if (funcNode.Symbol is SubFunctionSymbol) {
     456            var subFunction = funcNode as SubFunctionTreeNode;
     457            // input arguments
     458            var args = ParseArgList(tokens);
     459            IList<string> functionArguments = new List<string>();
     460            foreach (var arg in args)
     461              if(arg is VariableTreeNode varTreeNode)
     462                functionArguments.Add(varTreeNode.VariableName);
     463            subFunction.FunctionArguments = functionArguments;
    455464          } else {
    456465            // functions
     
    458467            // check number of arguments
    459468            if (funcNode.Symbol.MinimumArity > args.Length || funcNode.Symbol.MaximumArity < args.Length) {
    460               throw new ArgumentException(string.Format("Symbol {0} requires between {1} and  {2} arguments.", funcId,
     469              throw new ArgumentException(string.Format("Symbol {0} requires between {1} and {2} arguments.", funcId,
    461470                funcNode.Symbol.MinimumArity, funcNode.Symbol.MaximumArity));
    462471            }
Note: See TracChangeset for help on using the changeset viewer.