mirror of
https://github.com/ZuneDev/MicrosoftIris.git
synced 2026-07-27 13:13:29 -07:00
Add project files.
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Microsoft.Iris.Markup.Validation.ValidateStatementScopedLocal
|
||||
// Assembly: UIX, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
|
||||
// MVID: A56C6C9D-B7F6-46A9-8BDE-B3D9B8D60B11
|
||||
// Assembly location: C:\Program Files\Zune\UIX.dll
|
||||
|
||||
using Microsoft.Iris.Library;
|
||||
|
||||
namespace Microsoft.Iris.Markup.Validation
|
||||
{
|
||||
internal class ValidateStatementScopedLocal : ValidateStatement
|
||||
{
|
||||
private string _name;
|
||||
private ValidateTypeIdentifier _typeIdentifier;
|
||||
private bool _hasInitialAssignment;
|
||||
private TypeSchema _foundType;
|
||||
private int _foundTypeIndex;
|
||||
private int _foundSymbolIndex;
|
||||
|
||||
public ValidateStatementScopedLocal(
|
||||
SourceMarkupLoader owner,
|
||||
string name,
|
||||
ValidateTypeIdentifier typeIdentifier,
|
||||
int line,
|
||||
int column)
|
||||
: base(owner, line, column, StatementType.ScopedLocal)
|
||||
{
|
||||
_name = name;
|
||||
_typeIdentifier = typeIdentifier;
|
||||
}
|
||||
|
||||
public string Name => _name;
|
||||
|
||||
public ValidateTypeIdentifier TypeIdentifier => _typeIdentifier;
|
||||
|
||||
public override void Validate(ValidateCode container, ValidateContext context)
|
||||
{
|
||||
if (context.CurrentPass >= LoadPass.PopulatePublicModel && !_typeIdentifier.Validated)
|
||||
{
|
||||
_typeIdentifier.Validate();
|
||||
if (_typeIdentifier.HasErrors)
|
||||
{
|
||||
MarkHasErrors();
|
||||
return;
|
||||
}
|
||||
_foundType = _typeIdentifier.FoundType;
|
||||
_foundTypeIndex = _typeIdentifier.FoundTypeIndex;
|
||||
}
|
||||
if (context.CurrentPass != LoadPass.Full)
|
||||
return;
|
||||
Result result = context.NotifyScopedLocal(_name, _foundType);
|
||||
if (result.Failed)
|
||||
ReportError(result.Error);
|
||||
else
|
||||
_foundSymbolIndex = context.TrackSymbolUsage(_name, SymbolOrigin.ScopedLocal);
|
||||
}
|
||||
|
||||
public bool HasInitialAssignment
|
||||
{
|
||||
get => _hasInitialAssignment;
|
||||
set => _hasInitialAssignment = value;
|
||||
}
|
||||
|
||||
public TypeSchema FoundType => _foundType;
|
||||
|
||||
public int FoundTypeIndex => _foundTypeIndex;
|
||||
|
||||
public int FoundSymbolIndex => _foundSymbolIndex;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user