Created
October 6, 2017 12:10
-
-
Save VladD2/e7f25b72b33cd216e1b5b8dc59b634ab to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Nitra.Ast.TopAst | |
public override void EvalProperties(DependentPropertyEvalContext context) | |
{ | |
if ((this._N_bitField_51532 & 32) == 0) | |
{ | |
if (context.Stage >= 1) | |
{ | |
if (this.IsOpeningInEvaluated) | |
{ | |
this.OpeningOut = this.OpeningIn; | |
context.CalculatedCountInc(); | |
} | |
else | |
{ | |
context.DeferredCountInc(); | |
} | |
} | |
} | |
if ((this._N_bitField_51532 & 2) == 0) | |
{ | |
if (this.IsDeclaredInEvaluated) | |
{ | |
this.ContainingTable = NamespaceMember.Eval-ContainingTable(this, context); | |
context.CalculatedCountInc(); | |
} | |
else | |
{ | |
context.DeferredCountInc(); | |
} | |
} | |
if ((this._N_bitField_51532 & 1) == 0) | |
{ | |
if (this.IsContainingTableEvaluated) | |
{ | |
this.Symbol = this.ContainingTable.Define<TopAstSymbol>(this, context, null); | |
context.CalculatedCountInc(); | |
} | |
else | |
{ | |
context.DeferredCountInc(); | |
} | |
} | |
if (!this.Members.IsParentEvaluated) | |
{ | |
if (this.IsSymbolEvaluated) | |
{ | |
this.Members.Parent = this.Symbol; | |
context.CalculatedCountInc(); | |
} | |
else | |
{ | |
context.DeferredCountInc(); | |
} | |
} | |
if ((this._N_bitField_51532 & 1) != 0 && !this.Symbol.IsScopeEvaluated) | |
{ | |
if (this.Symbol.IsBaseTypeSetEvaluated && context.Pass > this.Symbol.BaseTypeSet.CreatedOnPass) | |
{ | |
this.Symbol.Scope = Ast.Eval-Symbol.Scope(this, context); | |
context.CalculatedCountInc(); | |
} | |
else | |
{ | |
context.DeferredCountInc(); | |
} | |
} | |
if (!this.Members.IsScopeEvaluated) | |
{ | |
if (context.Stage >= 1) | |
{ | |
if (this.IsSymbolEvaluated && this.IsScopeEvaluated && this.Symbol.IsScopeEvaluated) | |
{ | |
this.Members.Scope = Ast.Eval-Members.Scope(this, context); | |
context.CalculatedCountInc(); | |
} | |
else | |
{ | |
context.DeferredCountInc(); | |
} | |
} | |
} | |
this.Members.EvalProperties(context); | |
this.Header.EvalProperties(context); | |
if ((this._N_bitField_51532 & 1) != 0 && !this.Symbol.IsIsDeclarationEvaluated) | |
{ | |
this.Symbol.IsDeclaration = Ast.Eval-Symbol.IsDeclaration(this, context); | |
context.CalculatedCountInc(); | |
} | |
if (!this.AssociatedSymbol.IsAssociatedDeclarationEvaluated) | |
{ | |
if (this.IsSymbolEvaluated && this.Symbol.IsIsDeclarationEvaluated) | |
{ | |
ValueOption<TopAstSymbol> associatedDeclaration = (!this.Symbol.IsDeclaration) ? ValueOptionStatic.VNone<TopAstSymbol>() : ValueOptionStatic.VSome<TopAstSymbol>(this.Symbol); | |
this.AssociatedSymbol.AssociatedDeclaration = associatedDeclaration; | |
context.CalculatedCountInc(); | |
} | |
else | |
{ | |
context.DeferredCountInc(); | |
} | |
} | |
if (!this.AssociatedSymbol.IsScopeEvaluated) | |
{ | |
if (context.Stage >= 1) | |
{ | |
if (this.IsScopeEvaluated) | |
{ | |
this.AssociatedSymbol.Scope = this.Scope; | |
context.CalculatedCountInc(); | |
} | |
else | |
{ | |
context.DeferredCountInc(); | |
} | |
} | |
} | |
this.AssociatedSymbol.EvalProperties(context); | |
if (!this.Header.Modifiers.IsIsAbstractInEvaluated) | |
{ | |
this.Header.Modifiers.IsAbstractIn = Ast.Eval-Header.Modifiers.IsAbstractIn(this, context); | |
context.CalculatedCountInc(); | |
} | |
if ((this._N_bitField_51532 & 1) != 0 && !this.Symbol.IsIsAbstractEvaluated) | |
{ | |
if (this.Header.Modifiers.IsIsAbstractOutEvaluated) | |
{ | |
this.Symbol.IsAbstract = Ast.Eval-Symbol.IsAbstract(this, context); | |
context.CalculatedCountInc(); | |
} | |
else | |
{ | |
context.DeferredCountInc(); | |
} | |
} | |
if (!this.Header.Modifiers.IsCardinalityInEvaluated) | |
{ | |
this.Header.Modifiers.CardinalityIn = Ast.Eval-Header.Modifiers.CardinalityIn(this, context); | |
context.CalculatedCountInc(); | |
} | |
if ((this._N_bitField_51532 & 1) != 0 && !this.Symbol.IsCardinalityEvaluated) | |
{ | |
if (this.Header.Modifiers.IsCardinalityOutEvaluated) | |
{ | |
this.Symbol.Cardinality = Ast.Eval-Symbol.Cardinality(this, context); | |
context.CalculatedCountInc(); | |
} | |
else | |
{ | |
context.DeferredCountInc(); | |
} | |
} | |
if (!this.TypeBase.IsScopeEvaluated) | |
{ | |
if (context.Stage >= 1) | |
{ | |
if (this.IsScopeEvaluated) | |
{ | |
this.TypeBase.Scope = Ast.Eval-TypeBase.Scope(this, context); | |
context.CalculatedCountInc(); | |
} | |
else | |
{ | |
context.DeferredCountInc(); | |
} | |
} | |
} | |
this.TypeBase.EvalProperties(context); | |
if ((this._N_bitField_51532 & 1) != 0 && !this.Symbol.IsDeclaredInEvaluated) | |
{ | |
if (this.IsDeclaredInEvaluated) | |
{ | |
this.Symbol.DeclaredIn = NamespaceMemberDeclaration.Eval-Symbol.DeclaredIn(this, context); | |
context.CalculatedCountInc(); | |
} | |
else | |
{ | |
context.DeferredCountInc(); | |
} | |
} | |
if ((this._N_bitField_51532 & 256) == 0) | |
{ | |
if (this.IsSymbolEvaluated) | |
{ | |
this.EmitSymbol(this.Symbol, context); | |
this._N_bitField_51532 |= 256; | |
} | |
} | |
if ((this._N_bitField_51532 & 512) == 0) | |
{ | |
if (this.IsSymbolEvaluated && this.TypeBase.IsRefEvaluated) | |
{ | |
if (!this.Symbol.IsBaseTypeSetEvaluated) | |
{ | |
this.Symbol.BaseTypeSet = new BaseTypeReferenceSet(context); | |
} | |
if (context.Pass == this.Symbol.BaseTypeSet.CreatedOnPass) | |
{ | |
Ast.Call-1(this, context); | |
this._N_bitField_51532 |= 512; | |
} | |
} | |
} | |
if ((this._N_bitField_51532 & 1024) == 0) | |
{ | |
if (this.TypeBase.IsRefEvaluated && this.IsSymbolEvaluated) | |
{ | |
if (!this.Symbol.IsBaseTypeSetEvaluated) | |
{ | |
this.Symbol.BaseTypeSet = new BaseTypeReferenceSet(context); | |
} | |
if (context.Pass == this.Symbol.BaseTypeSet.CreatedOnPass) | |
{ | |
Ast.Call-2(this, context); | |
this._N_bitField_51532 |= 1024; | |
} | |
} | |
} | |
this.Name.EvalProperties(context); | |
if ((this._N_bitField_51532 & 1) != 0) | |
{ | |
this.Symbol.EvalProperties(context); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment