Ejemplo n.º 1
0
        public string VisitPrefixOperation(PrefixOperation prefixOperation)
        {
            var @operator = GeneratePrefixOperator(prefixOperation.Operator.Node);
            var operand   = GenerateExpression(prefixOperation.Operand);

            return($"{@operator}{operand}");
        }
Ejemplo n.º 2
0
        public bool VisitPrefixOperation(PrefixOperation prefixOperation)
        {
            if (!IsExpressionValid(prefixOperation.Operand))
            {
                return(false);
            }

            var operandType = Typer.GetExpressionType(
                _context,
                _environment,
                prefixOperation.Operand);

            if (operandType == null ||
                operandType.GetPrefixOperationResultType(prefixOperation.Operator.Node) != null)
            {
                return(true);
            }

            _context.Error(
                prefixOperation.Span,
                "cannot apply unary operator " +
                $"{prefixOperation.Operator.Node.GetDescription()} to type \"{operandType}\"");
            return(false);
        }
Ejemplo n.º 3
0
Archivo: Typer.cs Proyecto: Daouki/wire
 public IType VisitPrefixOperation(PrefixOperation prefixOperation) =>
 GetExpressionType(prefixOperation.Operand)
 .GetPrefixOperationResultType(prefixOperation.Operator.Node);