!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: nginx/1.23.4. PHP/5.6.40-65+ubuntu20.04.1+deb.sury.org+1 

uname -a: Linux foro-restaurado-2 5.15.0-1040-oracle #46-Ubuntu SMP Fri Jul 14 21:47:21 UTC 2023
aarch64
 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/home/scripts/pba/phc-read-only/src/generated/   drwxrwxr-x
Free 83.21 GB of 96.73 GB (86.02%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     MICG_fold.h (10.62 KB)      -rw-rw-r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#include <iostream>
#include <sstream>
#include <iomanip>
#include "boost/lexical_cast.hpp"
#include "lib/error.h"
#include "lib/Object.h"
#include "lib/List.h"
#include "lib/String.h"
#include "lib/Boolean.h"
#include "lib/Integer.h"
#include "process_ir/IR.h"
#include <list>
#include <string>
#include <cstring>
#include <cassert>


#include "MICG.h"
namespace MICG{
template
<class _ATTR_NAME,
 class _All,
 class _Body,
 class _Body_part,
 class _C_CODE,
 class _Callback,
 class _Equals,
 class _Expr,
 class _Formal_parameter,
 class _Identifier,
 class _Interpolation,
 class _Lookup,
 class _MACRO_NAME,
 class _Macro,
 class _Macro_call,
 class _Node,
 class _PARAM_NAME,
 class _Param,
 class _Rule,
 class _STRING,
 class _Signature,
 class _TYPE_NAME,
 template <typename _Tp, typename _Alloc = typename List<_Tp>::allocator_type> class _List = List
>
class Fold
{
// Access this class from subclasses without copying out the template instantiation
public:
   typedef Fold<_ATTR_NAME, _All, _Body, _Body_part, _C_CODE, _Callback, _Equals, _Expr, _Formal_parameter, _Identifier, _Interpolation, _Lookup, _MACRO_NAME, _Macro, _Macro_call, _Node, _PARAM_NAME, _Param, _Rule, _STRING, _Signature, _TYPE_NAME, _List> parent;
// Recursively fold the children before folding the parent
// This methods form the client API for a fold, but should not be
// overridden unless you know what you are doing
public:
    virtual _All fold_all(All* in)
    {
        _List<_Macro>* macros = 0;
    
        {
            macros = new _List<_Macro>;
            typename _List<Macro*>::const_iterator i;
            for(i = in->macros->begin(); i != in->macros->end(); i++)
                if(*i != NULL) macros->push_back(fold_macro(*i));
                else macros->push_back(0);
        }
        return fold_impl_all(in, macros);
    }

    virtual _Macro fold_macro(Macro* in)
    {
        _Signature signature = 0;
        if(in->signature != NULL) signature = fold_signature(in->signature);
        _List<_Rule>* rules = 0;
    
        {
            rules = new _List<_Rule>;
            typename _List<Rule*>::const_iterator i;
            for(i = in->rules->begin(); i != in->rules->end(); i++)
                if(*i != NULL) rules->push_back(fold_rule(*i));
                else rules->push_back(0);
        }
        _Body body = 0;
        if(in->body != NULL) body = fold_body(in->body);
        return fold_impl_macro(in, signature, rules, body);
    }

    virtual _Signature fold_signature(Signature* in)
    {
        _MACRO_NAME macro_name = 0;
        if(in->macro_name != NULL) macro_name = fold_macro_name(in->macro_name);
        _List<_Formal_parameter>* formal_parameters = 0;
    
        {
            formal_parameters = new _List<_Formal_parameter>;
            typename _List<Formal_parameter*>::const_iterator i;
            for(i = in->formal_parameters->begin(); i != in->formal_parameters->end(); i++)
                if(*i != NULL) formal_parameters->push_back(fold_formal_parameter(*i));
                else formal_parameters->push_back(0);
        }
        return fold_impl_signature(in, macro_name, formal_parameters);
    }

    virtual _Formal_parameter fold_formal_parameter(Formal_parameter* in)
    {
        _TYPE_NAME type_name = 0;
        if(in->type_name != NULL) type_name = fold_type_name(in->type_name);
        _PARAM_NAME param_name = 0;
        if(in->param_name != NULL) param_name = fold_param_name(in->param_name);
        return fold_impl_formal_parameter(in, type_name, param_name);
    }

    virtual _Lookup fold_lookup(Lookup* in)
    {
        _PARAM_NAME param_name = 0;
        if(in->param_name != NULL) param_name = fold_param_name(in->param_name);
        _ATTR_NAME attr_name = 0;
        if(in->attr_name != NULL) attr_name = fold_attr_name(in->attr_name);
        return fold_impl_lookup(in, param_name, attr_name);
    }

    virtual _Equals fold_equals(Equals* in)
    {
        _Expr left = 0;
        if(in->left != NULL) left = fold_expr(in->left);
        _Expr right = 0;
        if(in->right != NULL) right = fold_expr(in->right);
        return fold_impl_equals(in, left, right);
    }

    virtual _Param fold_param(Param* in)
    {
        _PARAM_NAME param_name = 0;
        if(in->param_name != NULL) param_name = fold_param_name(in->param_name);
        _List<_ATTR_NAME>* attr_names = 0;
    
        {
            attr_names = new _List<_ATTR_NAME>;
            typename _List<ATTR_NAME*>::const_iterator i;
            for(i = in->attr_names->begin(); i != in->attr_names->end(); i++)
                if(*i != NULL) attr_names->push_back(fold_attr_name(*i));
                else attr_names->push_back(0);
        }
        return fold_impl_param(in, param_name, attr_names);
    }

    virtual _Body fold_body(Body* in)
    {
        _List<_Body_part>* body_parts = 0;
    
        {
            body_parts = new _List<_Body_part>;
            typename _List<Body_part*>::const_iterator i;
            for(i = in->body_parts->begin(); i != in->body_parts->end(); i++)
                if(*i != NULL) body_parts->push_back(fold_body_part(*i));
                else body_parts->push_back(0);
        }
        return fold_impl_body(in, body_parts);
    }

    virtual _Macro_call fold_macro_call(Macro_call* in)
    {
        _MACRO_NAME macro_name = 0;
        if(in->macro_name != NULL) macro_name = fold_macro_name(in->macro_name);
        _List<_Expr>* exprs = 0;
    
        {
            exprs = new _List<_Expr>;
            typename _List<Expr*>::const_iterator i;
            for(i = in->exprs->begin(); i != in->exprs->end(); i++)
                if(*i != NULL) exprs->push_back(fold_expr(*i));
                else exprs->push_back(0);
        }
        return fold_impl_macro_call(in, macro_name, exprs);
    }

    virtual _Callback fold_callback(Callback* in)
    {
        _MACRO_NAME macro_name = 0;
        if(in->macro_name != NULL) macro_name = fold_macro_name(in->macro_name);
        _List<_Expr>* exprs = 0;
    
        {
            exprs = new _List<_Expr>;
            typename _List<Expr*>::const_iterator i;
            for(i = in->exprs->begin(); i != in->exprs->end(); i++)
                if(*i != NULL) exprs->push_back(fold_expr(*i));
                else exprs->push_back(0);
        }
        return fold_impl_callback(in, macro_name, exprs);
    }



// The user-defined folds
// Override these methods to get specific functionality
public:
    virtual _All fold_impl_all(All* orig, _List<_Macro>* macros) { assert(0); };
    virtual _Macro fold_impl_macro(Macro* orig, _Signature signature, _List<_Rule>* rules, _Body body) { assert(0); };
    virtual _Signature fold_impl_signature(Signature* orig, _MACRO_NAME macro_name, _List<_Formal_parameter>* formal_parameters) { assert(0); };
    virtual _Formal_parameter fold_impl_formal_parameter(Formal_parameter* orig, _TYPE_NAME type_name, _PARAM_NAME param_name) { assert(0); };
    virtual _Lookup fold_impl_lookup(Lookup* orig, _PARAM_NAME param_name, _ATTR_NAME attr_name) { assert(0); };
    virtual _Equals fold_impl_equals(Equals* orig, _Expr left, _Expr right) { assert(0); };
    virtual _Param fold_impl_param(Param* orig, _PARAM_NAME param_name, _List<_ATTR_NAME>* attr_names) { assert(0); };
    virtual _Body fold_impl_body(Body* orig, _List<_Body_part>* body_parts) { assert(0); };
    virtual _Macro_call fold_impl_macro_call(Macro_call* orig, _MACRO_NAME macro_name, _List<_Expr>* exprs) { assert(0); };
    virtual _Callback fold_impl_callback(Callback* orig, _MACRO_NAME macro_name, _List<_Expr>* exprs) { assert(0); };

    virtual _MACRO_NAME fold_macro_name(MACRO_NAME* orig) { assert(0); };
    virtual _TYPE_NAME fold_type_name(TYPE_NAME* orig) { assert(0); };
    virtual _PARAM_NAME fold_param_name(PARAM_NAME* orig) { assert(0); };
    virtual _ATTR_NAME fold_attr_name(ATTR_NAME* orig) { assert(0); };
    virtual _STRING fold_string(STRING* orig) { assert(0); };
    virtual _C_CODE fold_c_code(C_CODE* orig) { assert(0); };


// Manual dispatching for abstract classes
// Override only if you know what you are doing!
    virtual _Node fold_node(Node* in)
    {
        switch(in->classid())
        {
            case All::ID:
                return fold_all(dynamic_cast<All*>(in));
            case Macro::ID:
                return fold_macro(dynamic_cast<Macro*>(in));
            case Signature::ID:
                return fold_signature(dynamic_cast<Signature*>(in));
            case Formal_parameter::ID:
                return fold_formal_parameter(dynamic_cast<Formal_parameter*>(in));
            case Equals::ID:
                return fold_equals(dynamic_cast<Equals*>(in));
            case Lookup::ID:
                return fold_lookup(dynamic_cast<Lookup*>(in));
            case Param::ID:
                return fold_param(dynamic_cast<Param*>(in));
            case STRING::ID:
                return fold_string(dynamic_cast<STRING*>(in));
            case Macro_call::ID:
                return fold_macro_call(dynamic_cast<Macro_call*>(in));
            case Callback::ID:
                return fold_callback(dynamic_cast<Callback*>(in));
            case Body::ID:
                return fold_body(dynamic_cast<Body*>(in));
            case C_CODE::ID:
                return fold_c_code(dynamic_cast<C_CODE*>(in));
            case PARAM_NAME::ID:
                return fold_param_name(dynamic_cast<PARAM_NAME*>(in));
            case MACRO_NAME::ID:
                return fold_macro_name(dynamic_cast<MACRO_NAME*>(in));
            case TYPE_NAME::ID:
                return fold_type_name(dynamic_cast<TYPE_NAME*>(in));
            case ATTR_NAME::ID:
                return fold_attr_name(dynamic_cast<ATTR_NAME*>(in));
        }
        assert(0);
    }

    virtual _Rule fold_rule(Rule* in)
    {
        switch(in->classid())
        {
            case Equals::ID:
                return fold_equals(dynamic_cast<Equals*>(in));
            case Lookup::ID:
                return fold_lookup(dynamic_cast<Lookup*>(in));
        }
        assert(0);
    }

    virtual _Expr fold_expr(Expr* in)
    {
        switch(in->classid())
        {
            case Param::ID:
                return fold_param(dynamic_cast<Param*>(in));
            case STRING::ID:
                return fold_string(dynamic_cast<STRING*>(in));
            case Lookup::ID:
                return fold_lookup(dynamic_cast<Lookup*>(in));
            case Macro_call::ID:
                return fold_macro_call(dynamic_cast<Macro_call*>(in));
            case Callback::ID:
                return fold_callback(dynamic_cast<Callback*>(in));
        }
        assert(0);
    }

    virtual _Body_part fold_body_part(Body_part* in)
    {
        switch(in->classid())
        {
            case C_CODE::ID:
                return fold_c_code(dynamic_cast<C_CODE*>(in));
            case Lookup::ID:
                return fold_lookup(dynamic_cast<Lookup*>(in));
            case PARAM_NAME::ID:
                return fold_param_name(dynamic_cast<PARAM_NAME*>(in));
            case Macro_call::ID:
                return fold_macro_call(dynamic_cast<Macro_call*>(in));
            case Callback::ID:
                return fold_callback(dynamic_cast<Callback*>(in));
        }
        assert(0);
    }

    virtual _Interpolation fold_interpolation(Interpolation* in)
    {
        switch(in->classid())
        {
            case Lookup::ID:
                return fold_lookup(dynamic_cast<Lookup*>(in));
            case PARAM_NAME::ID:
                return fold_param_name(dynamic_cast<PARAM_NAME*>(in));
        }
        assert(0);
    }

    virtual _Identifier fold_identifier(Identifier* in)
    {
        switch(in->classid())
        {
            case MACRO_NAME::ID:
                return fold_macro_name(dynamic_cast<MACRO_NAME*>(in));
            case TYPE_NAME::ID:
                return fold_type_name(dynamic_cast<TYPE_NAME*>(in));
            case PARAM_NAME::ID:
                return fold_param_name(dynamic_cast<PARAM_NAME*>(in));
            case ATTR_NAME::ID:
                return fold_attr_name(dynamic_cast<ATTR_NAME*>(in));
            case STRING::ID:
                return fold_string(dynamic_cast<STRING*>(in));
            case C_CODE::ID:
                return fold_c_code(dynamic_cast<C_CODE*>(in));
        }
        assert(0);
    }



// Virtual destructor to avoid compiler warnings
    virtual ~Fold() {}
};

template<class T, template <class _Tp, class _Alloc = typename List<_Tp>::allocator_type> class _List>
class Uniform_fold : public Fold<T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, _List> {};
}


:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by HackingTool | HackingTool | Generation time: 0.0047 ]--