public void addCommands(Object o) {
        try {
            interpreter.set("current_interpreter", interpreter);
            evaluations = "import graphtea.graph.graph.*;" + evaluations;
            evaluations = "import graphtea.ui.lang.*;" + evaluations;
        } catch (EvalError evalError) {
            evalError.printStackTrace();
        }
        Class clazz = o.getClass();
        for (Method m : clazz.getMethods()) {
            CommandAttitude cm = m.getAnnotation(CommandAttitude.class);
            if (cm != null) {
                commands.put(cm.name(), m);
                abbrs.put(cm.abbreviation(), cm.name());
                methodObjects.put(m, o);

                String evaluation = cm.name() + "(";

                String temp = "";
                if (m.getParameterTypes().length != 0)
                    temp = "Object[] o = new Object[" + m.getParameterTypes().length + "];";

                int i = 0;
                for (Class c : m.getParameterTypes()) {
                    i++;
                    evaluation += c.getSimpleName() + " x" + i + "  ,";
                    temp += "o[" + (i - 1) + "] = x" + i + ";";
                }

                evaluation = (m.getParameterTypes().length == 0 ?
                        evaluation : evaluation.substring(0, evaluation.length() - 1))
                        + ")";

                if (m.getParameterTypes().length == 0)
                    evaluation += "{" + temp + "me.parseShell(\"" + cm.name() + "\"" + ",null,current_interpreter);}";
                else
                    evaluation += "{" + temp + "me.parseShell(\"" + cm.name() + "\"" + ",o,current_interpreter);}";
                evaluations += evaluation + "\n";
            }
        }
        try {
            interpreter.eval(evaluations);
        } catch (EvalError evalError) {
            evalError.printStackTrace();
        }
    }