public override string Gen()
        {
            string code = string.Empty;

            ScopeManager.FunctionEnter(name);
            ScopeManager.ScopeEnter();

            if (body != null)
            {
                code += $"${name}:\n";
                code += "push\trbp\n";
                code += "mov\trbp, rsp\n";
                code += $"sub\trsp, {SymbolTable.CurFunVarSize}\n";

                code += body.Gen();

                code += $"{name}_rtn:\n";
                code += "leave\n";
                code += "ret\n";
            }

            ScopeManager.ScopeLeave();
            ScopeManager.FunctionLeave();

            return(code);
        }