示例#1
0
 public override void VisitVariableReference(AstVariableReference variable)
 {
     if (variable.HasSymbol)
     {
         variable.Symbol.RemoveReference(variable);
     }
     base.VisitVariableReference(variable);
 }
示例#2
0
        public VariableDefinition ConvertReference(AstVariableReference variable, bool returnNullIfFailed = false)
        {
            var result = locals.GetValueOrDefault(variable.Variable);

            if (result == null && !returnNullIfFailed)
            {
                throw new NotImplementedException("CilCompilationContext: can not resolve " + variable + ".");
            }

            return(result);
        }
示例#3
0
        public override void VisitVariableReference(AstVariableReference variable)
        {
            if (!variable.HasDefinition)
            {
                var success = variable.TryResolveSymbol();

                if (!success &&
                    variable.ParentAs <AstAssignment>() is null)
                {
                    _context.UndefinedVariable(variable);
                }
            }
        }
示例#4
0
        public override void VisitVariableReference(AstVariableReference variable)
        {
            var expressionVisitor = new EmitExpression(Context.CodeBuilder.CsBuilder);

            expressionVisitor.VisitVariableReference(variable);
        }
示例#5
0
 protected override void AppendVariableReference(StringBuilder builder, AstVariableReference variable)
 {
     builder.Append("(local) ");
     AppendVariableDefinition(builder, variable.Variable);
 }
示例#6
0
 protected virtual void AppendVariableReference(StringBuilder builder, AstVariableReference variableReference)
 {
     builder.Append(variableReference);
 }
示例#7
0
 public override void VisitVariableReference(AstVariableReference variable)
 {
     variable.VisitChildren(this);
 }
示例#8
0
        public override void VisitVariableReference(AstVariableReference variable)
        {
            var name = variable.Identifier.SymbolName.CanonicalName.FullName;

            _builder.Append(name);
        }
示例#9
0
 public override void VisitVariableReference(AstVariableReference variable)
 {
     variable.Symbol.Should().NotBeNull();
     base.VisitVariableReference(variable);
 }
示例#10
0
 public virtual void VisitVariableReference(AstVariableReference variable)
 {
     variable.VisitChildren(this);
 }
示例#11
0
 public override void VisitVariableReference(AstVariableReference variable)
 {
     variable.Parent.Should().NotBeNull();
     variable.VisitChildren(this);
 }