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

📄 mkpod

📁 关于Berkelay数据库的共享源码
💻
字号:
#!/usr/local/bin/perl5# Filename: mkpod## Author:	Paul Marquess# File types##    Macro files end with .M#    Tagged source files end with .T#    Output from the code ends with .O#    Pre-Pod file ends with .P#    # Tags##    ## BEGIN tagname#     ...#    ## END tagname##    ## 0#    ## 1## Constants$TOKEN = '##' ;$Verbose = 1 if $ARGV[0] =~ /^-v/i ;# Macros files firstforeach $file (glob("*.M")){    open (F, "<$file") or die "Cannot open '$file':$!\n" ;    print "    Processing Macro file $file\n"  ;    while (<F>)    {        # Skip blank & comment lines        next if /^\s*$/ || /^\s*#/ ;		# 	($name, $expand) = split (/\t+/, $_, 2) ;	$expand =~ s/^\s*// ;        $expand =~ s/\s*$// ;	if ($expand =~ /\[#/ )	{	}	$Macros{$name} = $expand ;    }    close F ;}# Suck up all the code filesforeach $file (glob("t/*.T")){    ($newfile = $file) =~ s/\.T$// ;    open (F, "<$file") or die "Cannot open '$file':$!\n" ;    open (N, ">$newfile") or die "Cannot open '$newfile':$!\n" ;    print "    Processing $file -> $newfile\n"  ;    while ($line = <F>)    {        if ($line =~ /^$TOKEN\s*BEGIN\s+(\w+)\s*$/ or            $line =~ m[\s*/\*$TOKEN\s*BEGIN\s+(\w+)\s*$] )        {	    print "    Section $1 begins\n" if $Verbose ;	    $InSection{$1} ++ ;	    $Section{$1} = '' unless $Section{$1} ;        }        elsif ($line =~ /^$TOKEN\s*END\s+(\w+)\s*$/ or               $line =~ m[^\s*/\*$TOKEN\s*END\s+(\w+)\s*$] )        {	    warn "Encountered END without a begin [$line]\n"		unless $InSection{$1} ;	    delete $InSection{$1}  ;	    print "    Section $1 ends\n" if $Verbose ;        }        else        {	    print N $line ;	    chop $line ;	    $line =~ s/\s*$// ;	    # Save the current line in each of the sections	    foreach( keys %InSection)	    {		if ($line !~ /^\s*$/ )	          #{ $Section{$_} .= "    $line" }	          { $Section{$_} .= $line }	        $Section{$_} .= "\n" ;	    }        }    }    if (%InSection)    {        # Check for unclosed sections	print "The following Sections are not terminated\n" ;        foreach (sort keys %InSection)          { print "\t$_\n" }	exit 1 ;    }    close F ;    close N ;}print "\n\nCreating pod file(s)\n\n" if $Verbose ;@ppods = glob('*.P') ;#$ppod = $ARGV[0] ;#$pod = $ARGV[1] ;# Now process the pre-pod fileforeach $ppod (@ppods){    ($pod = $ppod) =~ s/\.P$// ;    open (PPOD, "<$ppod") or die "Cannot open file '$ppod': $!\n" ;    open (POD, ">$pod") or die "Cannot open file '$pod': $!\n" ;    print "    $ppod -> $pod\n" ;    while ($line = <PPOD>)    {        if ( $line =~ /^\s*$TOKEN\s*(\w+)\s*$/)        {            warn "No code insert '$1' available\n"	        unless $Section{$1} ;    	    print "Expanding section $1\n" if $Verbose ;	    print POD $Section{$1} ;        }        else        {#	    $line =~ s/\[#([^\]])]/$Macros{$1}/ge ;	    print POD $line ;        }    }        close PPOD ;    close POD ;}

⌨️ 快捷键说明

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