Esempio n. 1
0
        private void CGUnaryExp(FuncInfo funcInfo, UnaryExpNode node, int a)
        {
            int b = funcInfo.AllocReg();

            CGExp(funcInfo, node.Exp, b, 1);
            funcInfo.EmitUnaryOp(a, b, node.OpType);
            funcInfo.FreeReg();
        }
Esempio n. 2
0
 public override void Generate(ILProcessor il, SemanticEnvironment environment)
 {
     switch (UnaryOperator.Operator.Type)
     {
     case OperatorType.MULT:
         UnaryExpNode.Generate(il, environment);
         if (UnaryExpNode.GetType(ref environment) is PointerType {
             PointerToType : StructType structType
         })
         {
             il.Emit(OpCodes.Ldobj, structType.TypeReference);
         }
Esempio n. 3
0
 public override string ToString(string indent, bool last)
 {
     return
         (indent + NodePrefix(last) + $"{UnaryOperator.Operator.Type}" + "\r\n" +
          UnaryExpNode.ToString(indent + ChildrenPrefix(last), true));
 }