Example #1
0
 public IEnumerable <Operation> VisitExpression(Expression expression)
 {
     return(expression switch
     {
         BinaryExpression binaryExpression => VisitBinaryExpression(binaryExpression),
         MagicExpression magicExpression => VisitMagicExpression(magicExpression),
         NameExpression nameExpression => VisitNameExpression(nameExpression),
         UnaryExpression unaryExpression => VisitUnaryExpression(unaryExpression),
         GetFieldExpression getFieldExpression => VisitGetFieldExpression(getFieldExpression),
         _ => throw new ArgumentOutOfRangeException(nameof(expression) + $"was {expression}"),
     });
Example #2
0
 public string VisitMagicExpression(MagicExpression magicExpression)
 => $"{magicExpression.Name}";
Example #3
0
 public IEnumerable <Operation> VisitMagicExpression(MagicExpression magicExpression)
 => new[] { Operation.Mov(NewRegister(8), new NameOperand(magicExpression.Name)) };