System\Xml\Xsl\Xslt\CompilerScopeManager.cs (37)
33public ScopeFlags flags;
39public bool IsVariable { get { return (flags & ScopeFlags.Variable) != 0; } }
40public bool IsNamespace { get { return (flags & ScopeFlags.NsDecl ) != 0; } }
57records[0].flags = ScopeFlags.NsDecl;
63records[0].flags = ScopeFlags.NsDecl;
126private void AddRecord(ScopeFlags flag, string ncName, string uri, V value) {
127Debug.Assert(flag == (flag & ScopeFlags.ExclusiveFlags) && (flag & (flag - 1)) == 0 && flag != 0, "One exclusive flag");
130ScopeFlags flags = records[lastRecord].flags;
131bool canReuseLastRecord = (lastScopes == 0) && (flags & ScopeFlags.ExclusiveFlags) == 0;
134flags &= ScopeFlags.InheritedFlags;
143private void SetFlag(ScopeFlags flag, bool value) {
144Debug.Assert(flag == (flag & ScopeFlags.InheritedFlags) && (flag & (flag - 1)) == 0 && flag != 0, "one inherited flag");
145ScopeFlags flags = records[lastRecord].flags;
151flags &= ScopeFlags.InheritedFlags;
153if (flag == ScopeFlags.CanHaveApplyImports) {
156flags &= ~ScopeFlags.CompatibilityFlags;
163Debug.Assert((records[lastRecord].flags & ScopeFlags.CompatibilityFlags) != ScopeFlags.CompatibilityFlags,
171AddRecord(ScopeFlags.Variable, varName.LocalName, varName.NamespaceUri, value);
180ScopeFlags flags = GetName(ref records[record], out recPrefix, out recNsUri);
182(flags & ScopeFlags.NsDecl) != 0 &&
195private static ScopeFlags GetName(ref ScopeRecord re, out string prefix, out string nsUri) {
202AddRecord(ScopeFlags.NsDecl, prefix, nsUri, default(V));
206AddRecord(ScopeFlags.NsExcl, null, nsUri, default(V));
214ScopeFlags flags = GetName(ref records[record], out recPrefix, out recNsUri);
215if ((flags & ScopeFlags.NsExcl) != 0) {
225(flags & ScopeFlags.NsDecl) != 0 &&
232ScopeFlags prevFlags = GetName(ref records[prev], out prevPrefix, out prevNsUri);
234(flags & ScopeFlags.NsDecl) != 0 &&
255ScopeFlags flags = GetName(ref records[record], out recLocal, out recNsUri);
257(flags & ScopeFlags.Variable) != 0 &&
283get { return (records[lastRecord].flags & ScopeFlags.ForwardCompatibility) != 0; }
284set { SetFlag(ScopeFlags.ForwardCompatibility, value); }
288get { return (records[lastRecord].flags & ScopeFlags.BackwardCompatibility) != 0; }
289set { SetFlag(ScopeFlags.BackwardCompatibility, value); }
293get { return (records[lastRecord].flags & ScopeFlags.CanHaveApplyImports) != 0; }
294set { SetFlag(ScopeFlags.CanHaveApplyImports, value); }