// UnaryOperatorExpression = UnaryOperator, UnaryExpression private IParsingProduct ParseUnaryOperatorExpression(ISourceCode src) { using var ctx = src.GetFurtherContext(); ctx.ParseWhiteSpace(); var operFragment = ParseTerm(ctx, _repository.UnaryOperators, out var oper); if (operFragment == null) { return(null); } var exp = ParseUnaryExpression(ctx); if (exp == null) { return(null); } var opExp = _grammarProductsFactory.CreateOperatorNode(operFragment, oper, exp); if (opExp == null) { ctx.SetError(ParsingErrors.UnexpectedSymbol); return(null); } ctx.Accept(); return(opExp); }