aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core/Preprocess/IfContext.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Core/Preprocess/IfContext.cs')
-rw-r--r--src/WixToolset.Core/Preprocess/IfContext.cs56
1 files changed, 10 insertions, 46 deletions
diff --git a/src/WixToolset.Core/Preprocess/IfContext.cs b/src/WixToolset.Core/Preprocess/IfContext.cs
index 64b5bd91..e7c6e6f5 100644
--- a/src/WixToolset.Core/Preprocess/IfContext.cs
+++ b/src/WixToolset.Core/Preprocess/IfContext.cs
@@ -1,46 +1,21 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. 1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 2
3namespace WixToolset.Preprocess 3namespace WixToolset.Core.Preprocess
4{ 4{
5 using System;
6
7 /// <summary>
8 /// Current state of the if context.
9 /// </summary>
10 internal enum IfState
11 {
12 /// <summary>Context currently in unknown state.</summary>
13 Unknown,
14
15 /// <summary>Context currently inside if statement.</summary>
16 If,
17
18 /// <summary>Context currently inside elseif statement..</summary>
19 ElseIf,
20
21 /// <summary>Conext currently inside else statement.</summary>
22 Else,
23 }
24
25 /// <summary> 5 /// <summary>
26 /// Context for an if statement in the preprocessor. 6 /// Context for an if statement in the preprocessor.
27 /// </summary> 7 /// </summary>
28 internal sealed class IfContext 8 internal sealed class IfContext
29 { 9 {
30 private bool active;
31 private bool keep; 10 private bool keep;
32 private bool everKept;
33 private IfState state;
34 11
35 /// <summary> 12 /// <summary>
36 /// Creates a default if context object, which are used for if's within an inactive preprocessor block 13 /// Creates a default if context object, which are used for if's within an inactive preprocessor block
37 /// </summary> 14 /// </summary>
38 public IfContext() 15 public IfContext()
39 { 16 {
40 this.active = false; 17 this.WasEverTrue = true;
41 this.keep = false; 18 this.IfState = IfState.If;
42 this.everKept = true;
43 this.state = IfState.If;
44 } 19 }
45 20
46 /// <summary> 21 /// <summary>
@@ -51,21 +26,17 @@ namespace WixToolset.Preprocess
51 /// <param name="state">State of context to start in.</param> 26 /// <param name="state">State of context to start in.</param>
52 public IfContext(bool active, bool keep, IfState state) 27 public IfContext(bool active, bool keep, IfState state)
53 { 28 {
54 this.active = active; 29 this.Active = active;
55 this.keep = keep; 30 this.keep = keep;
56 this.everKept = keep; 31 this.WasEverTrue = keep;
57 this.state = state; 32 this.IfState = IfState.If;
58 } 33 }
59 34
60 /// <summary> 35 /// <summary>
61 /// Gets and sets if this if context is currently active. 36 /// Gets and sets if this if context is currently active.
62 /// </summary> 37 /// </summary>
63 /// <value>true if context is active.</value> 38 /// <value>true if context is active.</value>
64 public bool Active 39 public bool Active { get; set; }
65 {
66 get { return this.active; }
67 set { this.active = value; }
68 }
69 40
70 /// <summary> 41 /// <summary>
71 /// Gets and sets if context is current true. 42 /// Gets and sets if context is current true.
@@ -83,7 +54,7 @@ namespace WixToolset.Preprocess
83 this.keep = value; 54 this.keep = value;
84 if (this.keep) 55 if (this.keep)
85 { 56 {
86 this.everKept = true; 57 this.WasEverTrue = true;
87 } 58 }
88 } 59 }
89 } 60 }
@@ -92,19 +63,12 @@ namespace WixToolset.Preprocess
92 /// Gets if the context was ever true. 63 /// Gets if the context was ever true.
93 /// </summary> 64 /// </summary>
94 /// <value>True if context was ever true.</value> 65 /// <value>True if context was ever true.</value>
95 public bool WasEverTrue 66 public bool WasEverTrue { get; private set; }
96 {
97 get { return this.everKept; }
98 }
99 67
100 /// <summary> 68 /// <summary>
101 /// Gets the current state of the if context. 69 /// Gets the current state of the if context.
102 /// </summary> 70 /// </summary>
103 /// <value>Current state of context.</value> 71 /// <value>Current state of context.</value>
104 public IfState IfState 72 public IfState IfState { get; set; }
105 {
106 get { return this.state; }
107 set { this.state = value; }
108 }
109 } 73 }
110} 74}