⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checkapi.prl

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 PRL
字号:
## Released to public domain by Donald Anderson  dda@world.std.com# No warranties.## Perl script to check for matching of JNI interfaces to implementation.# We check all .cpp arguments and .h arguments and make sure that for# each .h declaration (marked by JNIEXPORT keyword), there is a .cpp# definition for the same function (also marked by JNIEXPORT keyword),# and vice versa.  Definitions and declarations are determined solely# by whether they are in a .h or .cpp file - we don't do any further# analysis.## Some additions made to help with Berkeley DB sources:##   Berkeley DB Java sources use JAVADB_*_ACCESS #defines#   to quickly define routine access functions.foreach $file (<@ARGV>) {      # glob allows direct use from Win* makefiles    open (FILE, $file) || die "$file: cannot open\n";    $dot_h = 0;    if ($file =~ /.*[hH]$/) {        $dot_h = 1;    }    $in_def = 0;nextline:    while (<FILE>) {        chop;        if (/JNIEXPORT/ || /^JAVADB_.*_ACCESS/) {            $in_def = 1;            $def = "";        }        if ($in_def == 1) {            $def .= " $_";        }        if (/\)/) {            $line = "";            $in_def = 0;            if ($def eq "") {                next nextline;            }            $_ = $def;            # remove comments            s@/\*[^*]*\*/@@g;            s@[ 	][ 	]*@ @g;            s@^[ 	]@@g;            s@[ 	]$@@g;            s@JNIEnv *\* *@JNIEnv @g;            s@([,*()]) @\1@g;            s@ ([,*()])@\1@g;            s/JAVADB_WO_ACCESS_METHOD/JAVADB_WO_ACCESS/;            if (/^JAVADB_.*_ACCESS/) {                s@  *@ @g;                s@_ACCESS_STRING\(([^,]*),@_ACCESS(\1,jstring,@;                s@_ACCESS_BEFORE_APPINIT@_ACCESS@;                s@_ACCESS\(@,normal,@;                s@JAVADB_@@;                s@\)@,@;                @vars = split(/,/);                $get = 0;                $set = 0;                if (@vars[0] eq "RW") {                    $get = 1;                    $set = 1;                }                if (@vars[0] eq "RO") {                    $get = 1;                }                if (@vars[0] eq "WO") {                    $set = 1;                }                if ($get == 0 && $set == 0) {                    print "Invalid use of JAVADB_ macro\n";                }                if ($set == 1) {                    $line = "JNIEXPORT void JNICALL Java_com_sleepycat_db_@vars[2]_set_1@vars[4](JNIEnv,jobject,@vars[3])";                }                if ($get == 1) {                    $line2 = "JNIEXPORT @vars[3] JNICALL Java_com_sleepycat_db_@vars[2]_get_1@vars[4](JNIEnv,jobject)";                }            }            else {                s@([,(][a-zA-Z0-9_]*) [a-zA-Z0-9_]*@\1@g;                s@;$@@g;                $line = $_;            }            $def = "";            if ($line ne "") {                if ($lines{$line} eq "") {                    $lines{$line} = 0;                }                if ($dot_h == 1) {                    $lines{$line} += 1;                }                else {                    $lines{$line} -= 1;                }                $line = "";            }            if ($line2 ne "") {                if ($lines{$line2} eq "") {                    $lines{$line2} = 0;                }                if ($dot_h == 1) {                    $lines{$line2} += 1;                }                else {                    $lines{$line2} -= 1;                }                $line2 = "";            }        }    }    close (FILE);}$status = 0;foreach $key (sort keys %lines) {    if ($lines{$key} != 0) {        if ($lines{$key} > 0) {            print "Missing .cpp implementation: $lines${key}\n";            $status = 1;        }        else {            print "Missing .h declaration: $lines${key}\n";            $status = 1;        }    }}exit ($status);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -