Esempio n. 1
0
 internal PropertySymbol(string name,
                         FrameworkType returnType,
                         CodeGenerationInformation codeGenerationInfo) : base(name)
 {
     ReturnType         = returnType;
     CodeGenerationInfo = codeGenerationInfo;
 }
Esempio n. 2
0
 internal ImplicitConversionSymbol(FrameworkType sourceType,
                                   FrameworkType returnType,
                                   CodeGenerationInformation codeGenerationInfo)
 {
     SourceType         = sourceType;
     ReturnType         = returnType;
     CodeGenerationInfo = codeGenerationInfo;
 }
Esempio n. 3
0
 public ImplicitConversionSymbolNode(TypeSymbolNode targetType,
                                     CodeGenerationInformation codeGenerationInfo,
                                     int lineNumber,
                                     int index) : base(string.Empty, lineNumber, index)
 {
     TargetTypeNode     = targetType;
     CodeGenerationInfo = codeGenerationInfo;
 }
Esempio n. 4
0
 internal FrameworkFunctionSymbolNode(string name,
                                      IEnumerable <ParameterSymbolNode> parameters,
                                      TypeSymbolNode?returnType,
                                      CodeGenerationInformation codeGenerationInfo,
                                      int lineNumber,
                                      int index) : base(name, parameters, returnType, lineNumber, index)
 {
     CodeGenerationInfo = codeGenerationInfo;
 }
Esempio n. 5
0
 public PropertySymbolNode(string identifier,
                           TypeSymbolNode type,
                           CodeGenerationInformation codeGenerationInfo,
                           int lineNumber,
                           int index) : base(identifier, lineNumber, index)
 {
     TypeNode           = type;
     CodeGenerationInfo = codeGenerationInfo;
 }
Esempio n. 6
0
 internal FunctionSymbol(string name,
                         FrameworkType returnType,
                         CodeGenerationInformation codeGenerationInfo,
                         IList <ParameterSymbol>?parameters = null) : base(name)
 {
     ReturnType         = returnType;
     CodeGenerationInfo = codeGenerationInfo;
     Parameters         = parameters.MakeReadOnly();
 }
Esempio n. 7
0
 internal UnaryOperationSymbol(Operator @operator,
                               FrameworkType operandType,
                               FrameworkType returnType,
                               CodeGenerationInformation codeGenerationInfo)
 {
     Operator           = @operator;
     OperandType        = operandType;
     ReturnType         = returnType;
     CodeGenerationInfo = codeGenerationInfo;
 }
 internal UnaryOperationSymbolNode(Operator @operator,
                                   TypeSymbolNode operandType,
                                   TypeSymbolNode returnType,
                                   CodeGenerationInformation codeGenerationInfo,
                                   int lineNumber,
                                   int index) : base(string.Empty, lineNumber, index)
 {
     Operator           = @operator;
     OperandTypeNode    = operandType;
     ReturnTypeNode     = returnType;
     CodeGenerationInfo = codeGenerationInfo;
 }
Esempio n. 9
0
 internal BinaryOperationSymbol(Operator @operator,
                                FrameworkType leftType,
                                FrameworkType rightType,
                                FrameworkType returnType,
                                CodeGenerationInformation codeGenerationInfo)
 {
     Operator           = @operator;
     LeftType           = leftType;
     RightType          = rightType;
     ReturnType         = returnType;
     CodeGenerationInfo = codeGenerationInfo;
 }
 internal BinaryOperationSymbolNode(Operator @operator,
                                    TypeSymbolNode leftType,
                                    TypeSymbolNode rightType,
                                    TypeSymbolNode returnType,
                                    CodeGenerationInformation codeGenerationInfo,
                                    int lineNumber,
                                    int index) : base(identifier: string.Empty, lineNumber, index)
 {
     Operator             = @operator;
     LeftOperandTypeNode  = leftType;
     RightOperandTypeNode = rightType;
     ReturnTypeNode       = returnType;
     CodeGenerationInfo   = codeGenerationInfo;
 }
Esempio n. 11
0
        private void EmitExpression(ExpressionNode expression, bool considerConversion = true)
        {
            if (considerConversion && expression.ImplicitConversionNodeIfAny != null)
            {
                CodeGenerationInformation info = expression.ImplicitConversionNodeIfAny.CodeGenerationInfo;

                switch (info)
                {
                case IdentityCodeGenerationInformation:
                    break;

                case SpecialCodeGenerationInformation {
                        Kind: SpecialCodeGenerationKind.IntToRational
                } :
                    output.Append("new Rational(");
                    EmitExpression(expression, considerConversion: false);
                    output.Append(",1)");
                    return;