Skip to content

Instantly share code, notes, and snippets.

@VladD2
Created October 6, 2017 12:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save VladD2/e7f25b72b33cd216e1b5b8dc59b634ab to your computer and use it in GitHub Desktop.
Save VladD2/e7f25b72b33cd216e1b5b8dc59b634ab to your computer and use it in GitHub Desktop.
// 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