// Expr public void Visit(Ast.Expr.VarRef vr) { if (vr.Item.Decl != null) { vr.ActualType = ((Ast.Stmt.Vardef)vr.Item.Decl.Value).Item.Formal.Type; } }
// Expr public void Visit(Ast.Expr.VarRef vr) { // Find the corresponding vardef in symbol table Option <Ast.Stmt> vd = this.m_symbolTable.Find(vr.Item.Name); vd.Match(v => vr.Item.Decl = v, () => this.m_errorList.Add("Symbol Error: No matching symbol table entry for variable " + vr.Item.Name)); //System.Console.WriteLine("Reference to " + vr.Item.Name + " " + vr.Item.Decl); }