internal PropertySymbol(string name, FrameworkType returnType, CodeGenerationInformation codeGenerationInfo) : base(name) { ReturnType = returnType; CodeGenerationInfo = codeGenerationInfo; }
internal ImplicitConversionSymbol(FrameworkType sourceType, FrameworkType returnType, CodeGenerationInformation codeGenerationInfo) { SourceType = sourceType; ReturnType = returnType; CodeGenerationInfo = codeGenerationInfo; }
public ImplicitConversionSymbolNode(TypeSymbolNode targetType, CodeGenerationInformation codeGenerationInfo, int lineNumber, int index) : base(string.Empty, lineNumber, index) { TargetTypeNode = targetType; CodeGenerationInfo = codeGenerationInfo; }
internal FrameworkFunctionSymbolNode(string name, IEnumerable <ParameterSymbolNode> parameters, TypeSymbolNode?returnType, CodeGenerationInformation codeGenerationInfo, int lineNumber, int index) : base(name, parameters, returnType, lineNumber, index) { CodeGenerationInfo = codeGenerationInfo; }
public PropertySymbolNode(string identifier, TypeSymbolNode type, CodeGenerationInformation codeGenerationInfo, int lineNumber, int index) : base(identifier, lineNumber, index) { TypeNode = type; CodeGenerationInfo = codeGenerationInfo; }
internal FunctionSymbol(string name, FrameworkType returnType, CodeGenerationInformation codeGenerationInfo, IList <ParameterSymbol>?parameters = null) : base(name) { ReturnType = returnType; CodeGenerationInfo = codeGenerationInfo; Parameters = parameters.MakeReadOnly(); }
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; }
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; }
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;