internal BinaryExpression(PreprocessorExpression leftOperand, PreprocessorExpression rightOperand) : base(leftOperand.SourceLocation.SourceDocument.GetSourceLocation(leftOperand.SourceLocation.StartIndex, rightOperand.SourceLocation.StartIndex + rightOperand.SourceLocation.Length - leftOperand.SourceLocation.StartIndex)) { this.leftOperand = leftOperand; this.rightOperand = rightOperand; }
internal OrExpression(PreprocessorExpression leftOperand, PreprocessorExpression rightOperand) : base(leftOperand, rightOperand) { }
internal NotExpression(PreprocessorExpression operand, ISourceLocation sourceLocation) : base(sourceLocation) { this.operand = operand; }
/// <summary> /// Allocates an object that models an #if-#elif-#else-#endif directive. /// </summary> /// <param name="condition">An expression that evaluates to either defined or undefined.</param> /// <param name="sourceLocation">The location in the source document where the #if-#elif-#else-#endif directive appears.</param> internal IfDirective(PreprocessorExpression condition, ISourceLocation sourceLocation) : base(sourceLocation) { this.condition = condition; }
/// <summary> /// Allocates an object that models an #elif part of an #if-#elif-#else-#endif directive. /// </summary> /// <param name="condition">An expression that evaluates to either defined or undefined.</param> /// <param name="sourceLocation">The location in the source document where the #elif part appears.</param> internal ElifPart(PreprocessorExpression condition, ISourceLocation sourceLocation) : base(sourceLocation) { this.condition = condition; }