[ Index ] |
|
Code source de eGroupWare 1.2.106-2 |
1 #!/usr/bin/perl 2 #Created by Jason Wies (Zone, zone@users.sourceforge.net) 3 #Copyright 2001 Jason Wies 4 #Released under GNU Public License 5 6 #Converts HeaderDoc style inline comments to LyX style LaTeX 7 #Usage: ./inline2lyx.pl file Title Author Date Abstract 8 9 if (!@ARGV[0]) 10 { 11 print "Usage: ./inline2lyx.pl file Title Author Date Abstract\n"; 12 exit; 13 } 14 15 $output .= '\lyxformat 2.16 16 \textclass linuxdoc 17 \language default 18 \inputencoding latin1 19 \fontscheme default 20 \graphics default 21 \paperfontsize default 22 \spacing single 23 \papersize Default 24 \paperpackage a4 25 \use_geometry 0 26 \use_amsmath 0 27 \paperorientation portrait 28 \secnumdepth 2 29 \tocdepth 2 30 \paragraph_separation indent 31 \defskip medskip 32 \quotes_language english 33 \quotes_times 2 34 \papercolumns 1 35 \papersides 1 36 \paperpagestyle default 37 38 \layout Title 39 \added_space_top vfill \added_space_bottom vfill 40 ' . @ARGV[1] . ' 41 \layout Author 42 43 ' . @ARGV[2] . ' 44 45 \layout Date 46 47 ' . @ARGV[3] . ' 48 49 \layout Abstract 50 51 ' . @ARGV[4] . ' 52 53 \layout Section 54 55 ' . @ARGV[1]; 56 57 $file = `cat @ARGV[0]`; 58 59 @lines = split ('\n', $file); 60 61 foreach $line (@lines) 62 { 63 undef $start; 64 undef $class; 65 undef $function; 66 undef $abstract; 67 undef $param; 68 undef $result; 69 undef $discussion; 70 undef $end; 71 undef $layout; 72 73 if ($line =~ /\/\*\!/) 74 { 75 $in = 1; 76 $start = 1; 77 } 78 79 if ($looking && $line =~ /function/) 80 { 81 $layout = "verbatim"; 82 undef $looking; 83 } 84 elsif (!$in) 85 { 86 goto next; 87 } 88 89 if ($line =~ /\@(class)/) 90 { 91 $layout = "subsection"; 92 $name = $1; 93 $class = 1; 94 } 95 if ($line =~ /\@(function)/) 96 { 97 $layout = "subsection"; 98 $name = $1; 99 $function = 1; 100 } 101 if ($line =~ /\@(abstract)/) 102 { 103 $layout = "standard"; 104 $name = $1; 105 $abstract = 1; 106 } 107 if ($line =~ /\@(description)/) 108 { 109 $layout = "standard"; 110 $name = $1; 111 $description = 1; 112 } 113 if ($line =~ /\@(param)/) 114 { 115 $layout = "standard"; 116 $name = $1; 117 $param = 1; 118 } 119 if ($line =~ /\@(result)/) 120 { 121 $layout = "standard"; 122 $name = $1; 123 $result = 1; 124 } 125 if ($line =~ /\@(discussion)/) 126 { 127 $layout = "standard"; 128 $name = $1; 129 $discussion = 1; 130 } 131 if ($line =~ /\*\// && $in) 132 { 133 undef $in; 134 $looking = 1; 135 $end = 1; 136 } 137 138 if ($layout) 139 { 140 $output .= "\n\n" . '\layout ' . ucfirst ($layout); 141 $line =~ s/\@function//; 142 $line =~ s/\@//; 143 $data = ucfirst ($line); 144 if (!$function && !$class) 145 { 146 $data =~ s/$name/$name:/; 147 } 148 $output .= "\n$data"; 149 if ($function || $class) 150 { 151 $output .= "\n" . '\begin_inset LatexCommand \label{sec:' . "$data" . '}' . "\n\n" . '\end_inset'; 152 } 153 } 154 elsif ($in && !$start) 155 { 156 $output .= '\layout Standard' . "\n$line"; 157 } 158 159 next: 160 } 161 162 $output .= "\n" . '\the_end'; 163 164 print $output;
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 17:20:01 2007 | par Balluche grâce à PHPXref 0.7 |