File: generate-doxygenlua.pl

package info (click to toggle)
kf6-syntax-highlighting 6.13.0-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 47,568 kB
  • sloc: xml: 197,750; cpp: 12,850; python: 3,023; sh: 955; perl: 546; ruby: 488; pascal: 393; javascript: 161; php: 150; jsp: 132; lisp: 131; haskell: 124; ada: 119; ansic: 107; makefile: 96; f90: 94; ml: 85; cobol: 81; yacc: 71; csh: 62; erlang: 54; sql: 51; java: 47; objc: 37; awk: 31; asm: 30; tcl: 29; fortran: 18; cs: 10
file content (42 lines) | stat: -rwxr-xr-x 1,657 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env perl
# SPDX-FileCopyrightText: 2020 Jonathan Poelen <jonathan.poelen@gmail.com>
# SPDX-License-Identifier: MIT

my $file = "";

open(my $input, '<:encoding(UTF-8)', $ARGV[0])
  or die "Could not open file '$ARGV[0]': $!";

open(my $output, '>:encoding(UTF-8)', $ARGV[1])
  or die "Could not open file '$ARGV[1]': $!";

while (<$input>)
{
  $file .= $_;
}

$warning = "\n\n<!-- ***** THIS FILE WAS GENERATED BY A SCRIPT - DO NOT EDIT ***** -->\n";
$first_context = "      <context attribute=\"Normal Text\" lineEndContext=\"#stay\" name=\"Normal\">
        <RegExpr attribute=\"Comment\" context=\"LineComment\" String=\"--(?:!|(?:-(?=[^-]|\$)))\"/>
        <RegExpr attribute=\"Region\" context=\"#stay\" String=\"--\\s*\@\\{\\s*\$\" beginRegion=\"MemberGroup\" />
        <RegExpr attribute=\"Region\" context=\"#stay\" String=\"--\\s*\@\\}\\s*\$\"   endRegion=\"MemberGroup\" />
      </context>";

$file =~ s/\n\s*<context [^\n]*?(?:name="ML_|name="BlockComment").*?<\/context>//gs;
$file =~ s/\n\s*<context [^\n]*?name="Normal".*?<\/context>/\n$first_context/s;
$file =~ s/\n[^\n]*?(?: ml_word|LineContinue)[^\n]+//gs;
$file =~ s/\/\/\//---/gs;
$file =~ s/\/\/!/--!/gs;

$language = $file =~ s/.*?(<language[^>]+?>).*/$1/sr;
$language =~ s/ name="[^"]+/ name="DoxygenLua/s;
$language =~ s/ extensions="[^"]+/ extensions="/s;
$language =~ s/ mimetype="[^"]+/ mimetype="/s;
$language =~ s/ priority="[^"]+"//s;
$version = $language =~ s/.*? version="([^"]+).*/$1/sr;
$version = $version+2;
$language =~ s/ version="[^"]+/ version="$version/s;
$file =~ s/<language[^>]+?>/$warning\n$language/s;

print $output $file;
print $output $warning;