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

📄 parseinc.pl

📁 神龙卡开发原代码
💻 PL
字号:
#!/usr/bin/perlif (scalar @ARGV != 1) {    print STDERR "usage: ./parseinc.pl file.inc\n";    exit 1;}my $inc_file = $ARGV[0];my $switch_file = `basename $inc_file`;chomp $switch_file;$switch_file =~ s/\.inc$/_switch.c/;my $h_file = `basename $inc_file`;chomp $h_file;$h_file =~ s/.inc$/_switch.h/;open FH, ">$h_file" || exit 1;open FC, ">$switch_file" || exit 1;print FC "// THIS IS AN AUTOMATICALLY GENERATED FILE --- DO NOT CHANGE\n";print FC "\n";print FC "#include \"common.h\"\n";print FC "#include \"${h_file}\"\n";print FC "\n";print FC "int kernel_setproperty(struct quasarprivate *pQ,kernelproperty *pKp)\n";print FC "{\n";print FC "\tint rc=-1;\n";print FC "\n";print FC "\tswitch (pKp->kernelpropid_value) {\n";my $prop_set;my $prop_subset;my $prop_id;while (<>) {    if (/^RM_DEFINE_FULL_PROPERTY\((\w+)\s*,\s*(\w+)\s*,\s*(\w+)\)/) {	$prop_set = $1;	$prop_subset = $2;	$prop_id = $3;	if ($prop_set =~ /KERNEL/) {	    push @subset_tab, $prop_subset;	    push @id_tab, $prop_id;	    print FH "int SetKernel${prop_subset}${prop_id}(struct quasarprivate *pQ, RMKERNEL${prop_subset}${prop_id}_type *prop);\n";	    print FH "int GetKernel${prop_subset}${prop_id}(struct quasarprivate *pQ, RMKERNEL${prop_subset}${prop_id}_type *prop);\n";	}    }}my $i = 0;foreach $prop_subset (@subset_tab) {    $prop_id = $id_tab[$i];    print FC "\tcase PROPID_KERNEL_${prop_subset}_${prop_id}:\n";    print FC "\t\trc = SetKernel${prop_subset}${prop_id}(pQ, pKp->pValue);\n";    print FC "\t\tbreak;\n";    print FC "\n";    $i ++;}print FC "\tdefault:\n";print FC "\t\tbreak;\n";print FC "\t}\n";print FC "\n";print FC "\treadablelog(pQ,\"kernel_setproperty: \",PROP_K,pKp,rc);\n";print FC "\n";print FC "\treturn rc;\n";print FC "}\n";print FC "\n";print FC "int kernel_getproperty(struct quasarprivate *pQ,kernelproperty *pKp)\n";print FC "{\n";print FC "\tint rc=-1;\n";print FC "\n";print FC "\tswitch (pKp->kernelpropid_value) {\n";while ($prop_subset = shift @subset_tab) {    $prop_id = shift @id_tab;    print FC "\tcase PROPID_KERNEL_${prop_subset}_${prop_id}:\n";    print FC "\t\trc = GetKernel${prop_subset}${prop_id}(pQ, pKp->pValue);\n";    print FC "\t\tbreak;\n";    print FC "\n";}print FC "\tdefault:\n";print FC "\t\tbreak;\n";print FC "\t}\n";print FC "\n";print FC "\treadablelog(pQ,\"kernel_getproperty: \",PROP_K,pKp,rc);\n";print FC "\n";print FC "\treturn rc;\n";print FC "}\n";close FH;close FC;

⌨️ 快捷键说明

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