File indexing completed on 2024-05-12 04:02:05

0001 #!/usr/bin/perl -w
0002 # This is a pseudo Perl file to test Kate's Perl syntax highlighting.
0003 # TODO: this is incomplete, add more syntax examples!
0004 
0005 sub prg($)
0006 <beginfold id='1'>{</beginfold id='1'>
0007     my $var = shift;
0008 
0009     $var =~ s<beginfold id='2'>/</beginfold id='2'>bla<endfold id='2'></endfold id='2'><beginfold id='3'>/</beginfold id='3'>foo<endfold id='3'>/igs</endfold id='3'>;
0010     $var =~ s<beginfold id='2'>!</beginfold id='2'>bla<endfold id='2'></endfold id='2'><beginfold id='3'>!</beginfold id='3'>foo<endfold id='3'>!igs</endfold id='3'>;
0011     $var =~ s<beginfold id='2'>#</beginfold id='2'>bla<endfold id='2'></endfold id='2'><beginfold id='3'>#</beginfold id='3'>foo<endfold id='3'>#igs</endfold id='3'>;
0012     $var =~ tr/a-z/A-Z/;
0013     ($match) = ($var =~ m<beginfold id='2'>/</beginfold id='2'>(.*?)<endfold id='2'>/igs</endfold id='2'>);
0014 
0015     $test = 2/453453.21;
0016     $test /= 2;
0017 
0018     print qq<beginfold id='4'>~</beginfold id='4'>d fsd fsdf sdfl sd<endfold id='4'>~</endfold id='4'>
0019     
0020     $" = <beginfold id='4'>'</beginfold id='4'>/<endfold id='4'>'</endfold id='4'>;
0021     
0022     $foo = <beginfold id='5'><<</beginfold id='5'>__EOF;
0023 d ahfdklf klsdfl sdf sd
0024 fsd sdf sdfsdlkf sd
0025 <endfold id='5'>__EOF</endfold id='5'>
0026 
0027     $x = <beginfold id='4'>"</beginfold id='4'>dasds<endfold id='4'>"</endfold id='4'>;
0028 
0029     next if( $match eq <beginfold id='4'>"</beginfold id='4'>two<endfold id='4'>"</endfold id='4'> );
0030     next if( $match =~ <beginfold id='2'>/</beginfold id='2'>go<endfold id='2'>/i</endfold id='2'> );
0031 
0032     @array = (1,2,3);       # a comment
0033     # Test qw versions with special ending characters
0034     @array = qw<beginfold id='6'>(</beginfold id='6'>apple foo bar<endfold id='6'>)</endfold id='6'>;
0035     @array = qw<beginfold id='6'>[</beginfold id='6'>apple foo bar<endfold id='6'>]</endfold id='6'>;
0036     @array = qw<beginfold id='6'>{</beginfold id='6'>apple foo bar<endfold id='6'>}</endfold id='6'>;
0037     @array = qw<beginfold id='6'><</beginfold id='6'>apple foo bar<endfold id='6'>></endfold id='6'>;
0038     @array = qw<beginfold id='6'>(</beginfold id='6'>
0039         multi
0040         line
0041         test
0042     <endfold id='6'>)</endfold id='6'>;
0043     # Test qw with non special ending characters;
0044     @array = qw<beginfold id='6'>/</beginfold id='6'>apple foo bar<endfold id='6'>/</endfold id='6'>;
0045     @array = qw<beginfold id='6'>|</beginfold id='6'>apple foo bar<endfold id='6'>|</endfold id='6'>;
0046     @array = qw<beginfold id='6'>@</beginfold id='6'>apple foo bar<endfold id='6'>@</endfold id='6'>;
0047     @array = qw<beginfold id='6'>!</beginfold id='6'>apple foo bar<endfold id='6'>!</endfold id='6'>;
0048     @array = qw<beginfold id='6'>"</beginfold id='6'>apple foo bar<endfold id='6'>"</endfold id='6'>;
0049     @array = qw<beginfold id='6'>'</beginfold id='6'>apple foo bar<endfold id='6'>'</endfold id='6'>;
0050     push(@array, 4);
0051     %hash = (red => <beginfold id='4'>'</beginfold id='4'>rot<endfold id='4'>'</endfold id='4'>,
0052         blue => <beginfold id='4'>'</beginfold id='4'>blau<endfold id='4'>'</endfold id='4'>);
0053     print keys(%hash);
0054 <endfold id='1'>}</endfold id='1'>
0055 
0056 sub blah <beginfold id='1'>{</beginfold id='1'>
0057     my $str = <beginfold id='5'><<</beginfold id='5'> '    EOS';
0058         this is my string
0059         and it's continuation
0060 <endfold id='5'>    EOS</endfold id='5'>
0061 
0062     $str = <beginfold id='4'>"</beginfold id='4'>hello world<endfold id='4'>"</endfold id='4'>;
0063 
0064     $str = <beginfold id='5'><<</beginfold id='5'> "    EOS";
0065         this is my string
0066         and it's continuation
0067 <endfold id='5'>    EOS</endfold id='5'>
0068 <endfold id='1'>}</endfold id='1'>
0069 
0070 &blah;
0071 prg(<beginfold id='4'>"</beginfold id='4'>test<endfold id='4'>"</endfold id='4'>);
0072 
0073 # Bracket closures in RegExp patterns (bug #364866)
0074 qr<beginfold id='2'>{</beginfold id='2'> ${var} aa{aa{a}a} aa*b?<endfold id='2'>}</endfold id='2'>;
0075 qr<beginfold id='2'>(</beginfold id='2'>aa(a(a(a(b|c)a)a)a)aa*b?<endfold id='2'>)</endfold id='2'>;
0076 s<beginfold id='2'>{</beginfold id='2'>aaa {aaa} a \x{A2} *b?<endfold id='2'>}</endfold id='2'><beginfold id='3'>{</beginfold id='3'>aa<endfold id='3'>}</endfold id='3'>;
0077 s<beginfold id='2'>(</beginfold id='2'>aa(a(a(a(b|c)a)a)a)aa<endfold id='2'>)</endfold id='2'><beginfold id='3'>(</beginfold id='3'>aa<endfold id='3'>)</endfold id='3'>;
0078 
0079 # Strings as scalar references (bug #348765)
0080 $x = \<beginfold id='4'>'</beginfold id='4'>Reference of a String<endfold id='4'>'</endfold id='4'>;
0081 $y = \<beginfold id='4'>"</beginfold id='4'>Reference of a String<endfold id='4'>"</endfold id='4'>;
0082 
0083 # Variables that start with underscore (bug #355300)
0084 $_variable
0085 $_ # Reserved var.
0086 
0087 for my $x ($hash-><beginfold id='1'>{</beginfold id='1'>arr<endfold id='1'>}</endfold id='1'>->@*) <beginfold id='1'>{</beginfold id='1'>
0088     for my $k (keys $k->%*) <beginfold id='1'>{</beginfold id='1'>
0089         ...
0090     <endfold id='1'>}</endfold id='1'>
0091 <endfold id='1'>}</endfold id='1'>
0092 
0093 # Highlight correctly operator // (bug #407327)
0094 $x = ns // <beginfold id='4'>"</beginfold id='4'><endfold id='4'>"</endfold id='4'>;
0095 print $x;