private DataNode DataExpression() { var result = DataFactor(); while (Tokens.Accept(TokenEnum.ConcatData)) { result = new DataConcator(result, DataFactor()); } return(result); }
private Data Evaluate(DataNode node) { return(node switch { DataConcator dataConcator => Evaluate(dataConcator.Left).Concat(Evaluate(dataConcator.Right)), DataFactor dataFactor => Evaluate(dataFactor), TextDataPrimary dataPrimary => Evaluate(dataPrimary), RandDataPrimary randDataPrimary => Evaluate(randDataPrimary), PipeDataPrimary pipeDataPrimary => Evaluate(pipeDataPrimary), _ => throw new EvaluateException(nameof(DataNode)), });