2 using System.Collections;
3 using System.Collections.Generic;
5 namespace Microsoft.Build.Internal
10 public ILocation Location { get; set; }
13 partial class ExpressionList : ILocation, IEnumerable<Expression>
15 public ExpressionList ()
19 public ExpressionList (Expression entry)
25 // get { return list.Count == 0 ? 0 : list [0].Line; }
28 get { return list.Count == 0 ? 0 : list [0].Column; }
30 //public string File {
31 // get { return list.Count == 0 ? null : list [0].File; }
33 public string ToLocationString ()
35 return list.Count == 0 ? null : list [0].Location.ToLocationString ();
38 public IEnumerator<Expression> GetEnumerator ()
40 return list.GetEnumerator ();
43 IEnumerator IEnumerable.GetEnumerator ()
45 return list.GetEnumerator ();
48 List<Expression> list = new List<Expression> ();
50 public ExpressionList Add (Expression expr)
56 public ExpressionList Insert (int pos, Expression expr)
58 list.Insert (pos, expr);
63 abstract partial class Expression : Locatable, ILocation
66 // get { return Location.Line; }
69 get { return Location.Column; }
71 //public string File {
72 // get { return Location.File; }
74 public string ToLocationString ()
76 return Location.ToLocationString ();
80 partial class BooleanLiteral : Expression
82 public bool Value { get; set; }
85 partial class NotExpression : Expression
87 public Expression Negated { get; set; }
90 partial class PropertyAccessExpression : Expression
92 public PropertyAccess Access { get; set; }
95 enum PropertyTargetType
101 class PropertyAccess : Locatable
103 public NameToken Name { get; set; }
104 public Expression Target { get; set; }
105 public PropertyTargetType TargetType { get; set; }
108 partial class ItemAccessExpression : Expression
110 public ItemApplication Application { get; set; }
113 class ItemApplication : Locatable
115 public NameToken Name { get; set; }
116 public ExpressionList Expressions { get; set; }
119 partial class MetadataAccessExpression : Expression
121 public MetadataAccess Access { get; set; }
124 class MetadataAccess : Locatable
126 public NameToken Metadata { get; set; }
127 public NameToken Item { get; set; }
130 partial class StringLiteralExpression : Expression
132 public ExpressionList Contents { get; set; }
135 partial class RawStringLiteral : Expression
137 public NameToken Value { get; set; }
140 partial class FunctionCallExpression : Expression
142 public NameToken Name { get; set; }
143 public ExpressionList Arguments { get; set; }