public function GenerateArgInfo(
        \Peg\Lib\Definitions\Element\FunctionElement $function_object
    )
    {
        $namespace_name = $function_object->namespace->name;

        if($namespace_name == "\\")
            $namespace_name = "";

        $namespace_name_cpp = str_replace(
            "\\",
            "::",
            $namespace_name
        );

        $namespace_name_var = str_replace(
            "\\",
            "_",
            $namespace_name
        );

        $arginfo_code = "";

        $function_name = $function_object->name;

        // Get the amount of required parameters from the
        // overload which require less.
        $required_parameters = 1000;

        foreach($function_object->overloads as $overload=>$overload_object)
        {
            if($required_parameters > $overload_object->GetRequiredParametersCount())
                $required_parameters = $overload_object->GetRequiredParametersCount();
        }

        // Generate a list of argument objects from the overload
        // with the longest amount of parameters.
        $arguments_list = array();
        foreach($function_object->overloads as $overload=>$overload_object)
        {
            if($overload_object->HasParameters())
            {
                if(count($arguments_list) < count($overload_object->parameters))
                {
                    $index = 0;

                    foreach($overload_object->parameters as $parameter_object)
                    {
                        $arguments_list[$index] = $parameter_object;

                        $index++;
                    }
                }
            }
        }

        // Get Header
        ob_start();
            include($this->GetTemplatePath(
                $function_name,
                "arginfo",
                "header",
                "helpers",
                "arginfo",
                $namespace_name
            ));
            $arginfo_code .= ob_get_contents();
        ob_end_clean();

        foreach($arguments_list as $parameter_object)
        {
            $parameter_name = $parameter_object->name;

            // Generate the entry of arguments
            ob_start();
                include($this->GetParameterTemplate($parameter_object, "", "arginfo"));
                $arginfo_code .= $this->Indent(ob_get_contents(), 4);
            ob_end_clean();
        }

        // Get Header
        ob_start();
            include($this->GetTemplatePath(
                $function_name,
                "arginfo",
                "footer",
                "helpers",
                "arginfo",
                $namespace_name
            ));
            $arginfo_code .= ob_get_contents();
        ob_end_clean();

        return $arginfo_code;
    }
public function GenerateArgInfo(
        \Peg\Lib\Definitions\Element\FunctionElement $function_object
    )
    {
        $namespace_name = $function_object->namespace->name;

        if($namespace_name == "\\")
            $namespace_name = "";

        $namespace_name_cpp = str_replace(
            "\\",
            "::",
            $namespace_name
        );

        $namespace_name_var = str_replace(
            "\\",
            "_",
            $namespace_name
        );

        $arginfo_code = "";

        $function_name = $function_object->name;

        // Get the amount of required parameters from the
        // overload which require less.
        $required_parameters = 1000;

        foreach($function_object->overloads as $overload=>$overload_object)
        {
            if($required_parameters > $overload_object->GetRequiredParametersCount())
                $required_parameters = $overload_object->GetRequiredParametersCount();
        }

        // Generate a list of argument objects from the overload
        // with the longest amount of parameters.
        $arguments_list = array();
        foreach($function_object->overloads as $overload=>$overload_object)
        {
            if($overload_object->HasParameters())
            {
                if(count($arguments_list) < count($overload_object->parameters))
                {
                    $index = 0;

                    foreach($overload_object->parameters as $parameter_object)
                    {
                        $arguments_list[$index] = $parameter_object;

                        $index++;
                    }
                }
            }
        }

        // Get Header
        ob_start();
            include($this->GetTemplatePath(
                $function_name,
                "arginfo",
                "header",
                "helpers",
                "arginfo",
                $namespace_name
            ));
            $arginfo_code .= ob_get_contents();
        ob_end_clean();

        foreach($arguments_list as $parameter_object)
        {
            $parameter_name = $parameter_object->name;

            // Generate the entry of arguments
            ob_start();
                include($this->GetParameterTemplate($parameter_object, "", "arginfo"));
                $arginfo_code .= $this->Indent(ob_get_contents(), 4);
            ob_end_clean();
        }

        // Get Header
        ob_start();
            include($this->GetTemplatePath(
                $function_name,
                "arginfo",
                "footer",
                "helpers",
                "arginfo",
                $namespace_name
            ));
            $arginfo_code .= ob_get_contents();
        ob_end_clean();

        return $arginfo_code;
    }
public function GenerateArgInfo ( \ Peg \ Lib \ Definitions \ Element \ FunctionElement $ function_object ) { $ namespace_name = $ function_object -> namespace -> name ; if ( $ namespace_name == "\\" ) $ namespace_name = "" ; $ namespace_name_cpp = str_replace ( "\\" , "::" , $ namespace_name ) ; $ namespace_name_var = str_replace ( "\\" , "_" , $ namespace_name ) ; $ arginfo_code = "" ; $ function_name = $ function_object -> name ; // Get the amount of required parameters from the // overload which require less. $ required_parameters = 1000 ; foreach ( $ function_object -> overloads as $ overload => $ overload_object ) { if ( $ required_parameters > $ overload_object -> GetRequiredParametersCount ( ) ) $ required_parameters = $ overload_object -> GetRequiredParametersCount ( ) ; } // Generate a list of argument objects from the overload // with the longest amount of parameters. $ arguments_list = array ( ) ; foreach ( $ function_object -> overloads as $ overload => $ overload_object ) { if ( $ overload_object -> HasParameters ( ) ) { if ( count ( $ arguments_list ) < count ( $ overload_object -> parameters ) ) { $ index = 0 ; foreach ( $ overload_object -> parameters as $ parameter_object ) { $ arguments_list [ $ index ] = $ parameter_object ; $ index ++ ; } } } } // Get Header ob_start ( ) ; include ( $ this -> GetTemplatePath ( $ function_name , "arginfo" , "header" , "helpers" , "arginfo" , $ namespace_name ) ) ; $ arginfo_code .= ob_get_contents ( ) ; ob_end_clean ( ) ; foreach ( $ arguments_list as $ parameter_object ) { $ parameter_name = $ parameter_object -> name ; // Generate the entry of arguments ob_start ( ) ; include ( $ this -> GetParameterTemplate ( $ parameter_object , "" , "arginfo" ) ) ; $ arginfo_code .= $ this -> Indent ( ob_get_contents ( ) , 4 ) ; ob_end_clean ( ) ; } // Get Header ob_start ( ) ; include ( $ this -> GetTemplatePath ( $ function_name , "arginfo" , "footer" , "helpers" , "arginfo" , $ namespace_name ) ) ; $ arginfo_code .= ob_get_contents ( ) ; ob_end_clean ( ) ; return $ arginfo_code ; }
Generates an arginfo php C structure which is basically used for
reflection to work properly.
@param \Peg\Lib\Definitions\Element\FunctionElement $function_object
Generates an arginfo php C structure which is basically used for reflection to work properly .