Changeset 34259 for trunk/psModules/src/objects/mksource.pl
- Timestamp:
- Jul 31, 2012, 3:59:03 PM (14 years ago)
- Location:
- trunk/psModules
- Files:
-
- 3 edited
-
. (modified) (1 prop)
-
src/objects (modified) (1 prop)
-
src/objects/mksource.pl (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules
- Property svn:mergeinfo changed
/branches/eam_branches/ipp-20120627/psModules (added) merged: 34133,34141,34144,34181-34183,34185-34188,34192,34246,34252,34255
- Property svn:mergeinfo changed
-
trunk/psModules/src/objects
- Property svn:ignore
-
old new 9 9 pmSourceIO_CMF_PS1_V3.c 10 10 pmSourceIO_CMF_PS1_V4.c 11 pmSourceIO_CMF_PS1_V3.v1.c 12 pmSourceIO_CMF_PS1_V1.v1.c 13 pmSourceIO_CMF_PS1_V2.v1.c 14 11 pmSourceIO_CMF_PS1_SV1.c 12 pmSourceIO_CMF_PS1_DV1.c 13 pmSourceIO_CMF_PS1_DV2.c
-
- Property svn:ignore
-
trunk/psModules/src/objects/mksource.pl
r32633 r34259 1 1 #!/usr/bin/env perl 2 $DEBUG = 0; 2 3 3 4 # this program takes the pmSourceIO_CMF.in.c template file and generates the .c version based on the given I/O format made … … 17 18 "PS1_V2", 2, 18 19 "PS1_V3", 3, 19 "PS1_V4", 4); 20 21 print "1: $cmfmodes{1}\n"; 22 print "PS1_V1: $cmfmodes{'PS1_V1'}\n"; 20 "PS1_V4", 4, 21 ); 23 22 24 23 open (FILE, "$template") || die "failed to open template $template\n"; … … 35 34 # @<MODE@ : remove and keep if cmfmode > MODE 36 35 36 # XXX need to add features: split @foo,bar,baz@ by commas 37 # treat each chunk as a rule 38 # add the following options: 39 # !MODE -- exclude the given entry (defaults to all, or is ALL required?) 40 # * and ? regexp 41 42 # some examples: 43 # @ALL,!PS1_V1@ 44 # @PS1_DV?@ 45 # @PS1_V?,!PS1_V1@ 46 37 47 foreach $line (@list) { 38 48 … … 40 50 $line =~ s|\@CMFMODE\@|$cmfmode|g; 41 51 42 if ($line =~ m|\@ALL\@|) { 43 $line =~ s|\@ALL\@\s*||; 52 # print and continue if we do not match @RULES@ 53 unless ($line =~ m|\@.*\@|) { 54 print "no rule\n" if $DEBUG; 55 print FILE $line; 56 next; 44 57 } 45 58 46 ($isMode) = ($line =~ m|\@=(\S*)\@|); 47 ($gtMode) = ($line =~ m|\@>(\S*)\@|); 48 ($ltMode) = ($line =~ m|\@<(\S*)\@|); 59 # grab the rules and the rest of the line 60 ($prefix,$rules,$content) = ($line =~ m|(.*)\@(.*)\@\s*(.*)|); 49 61 50 if ($isMode) { 51 if ($isMode ne $cmfmode) { next; } 52 $line =~ s|\@=\S*\@\s*||; 62 # split the rules into separate items 63 @rules = split (",", $rules); 64 65 $keepLine = 0; 66 # does $cmfmode match any of the rules? 67 foreach $rule (@rules) { 68 print "rule: $rule\n" if $DEBUG; 69 70 # special rule "ALL" 71 if ($rule eq "ALL") { 72 print "ALL match\n" if $DEBUG; 73 $keepLine = 1; 74 next; 75 } # look for other rules (esp !foo) 76 77 # pure match 78 if ($cmfmode eq $rule) { 79 print "simple match\n" if $DEBUG; 80 $keepLine = 1; 81 next; 82 } # skip to end? 83 84 # NOT match 85 if ($rule =~ m|^!|) { 86 print "NOT rule: $rule\n" if $DEBUG; 87 ($realrule) = ($rule =~ m|^!(.*)|); 88 if ($cmfmode eq $realrule) { $keepLine = 0; } # skip to end? 89 next; 90 } 91 92 # simple regexp: foo* 93 if ($rule =~ m|\*$|) { 94 print "regexp * rule: $rule\n" if $DEBUG; 95 ($realrule) = ($rule =~ m|(.*)\*$|); 96 if ($cmfmode =~ m|$realrule|) { $keepLine = 1; } # skip to end? 97 next; 98 } 99 100 # simple regexp: foo? 101 if ($rule =~ m|\?$|) { 102 print "regexp ? rule: $rule\n" if $DEBUG; 103 ($realrule) = ($rule =~ m|(.*)\?$|); 104 if (substr($cmfmode,0,-1) eq $realrule) { $keepLine = 1; } # skip to end? 105 next; 106 } 107 108 # rule: =FOO 109 if ($rule =~ m|^=|) { 110 print "= rule: $rule\n" if $DEBUG; 111 $realrule = substr($cmfmode,1); 112 if ($cmfmode eq $realrule) { $keepLine = 1; } # skip to end? 113 next; 114 } 115 116 # only apply the < > <= >= rules if cmfmode is one of cmfmodes 117 # rule: >=FOO 118 if ($rule =~ m|^>=|) { 119 print ">= rule: $rule\n" if $DEBUG; 120 if ($cmfmodes{$cmfmode} == 0) { next; } 121 $realrule = substr($rule,2); 122 $thisLevel = $cmfmodes{$realrule}; 123 $myLevel = $cmfmodes{$cmfmode}; 124 print "levels: $cmfmode, $realrule, $myLevel, $thisLevel\n" if $DEBUG; 125 if ($myLevel >= $thisLevel) { $keepLine = 1; } 126 next; 127 } 128 129 # rule: >FOO 130 if ($rule =~ m|^>|) { 131 print "> rule: $rule\n" if $DEBUG; 132 if ($cmfmodes{$cmfmode} == 0) { next; } 133 $realrule = substr($rule,1); 134 $thisLevel = $cmfmodes{$realrule}; 135 $myLevel = $cmfmodes{$cmfmode}; 136 print "levels: $cmfmode, $realrule, $myLevel, $thisLevel\n" if $DEBUG; 137 if ($myLevel > $thisLevel) { $keepLine = 1; } 138 next; 139 } 140 141 # rule: <=FOO 142 if ($rule =~ m|^<=|) { 143 print "<= rule: $rule\n" if $DEBUG; 144 if ($cmfmodes{$cmfmode} == 0) { next; } 145 $realrule = substr($rule,2); 146 $thisLevel = $cmfmodes{$realrule}; 147 $myLevel = $cmfmodes{$cmfmode}; 148 print "levels: $cmfmode, $realrule, $myLevel, $thisLevel\n" if $DEBUG; 149 if ($myLevel <= $thisLevel) { $keepLine = 1; } 150 next; 151 } 152 153 # rule: <FOO 154 if ($rule =~ m|^<|) { 155 print "< rule: $rule\n" if $DEBUG; 156 if ($cmfmodes{$cmfmode} == 0) { next; } 157 $realrule = substr($rule,1); 158 $thisLevel = $cmfmodes{$realrule}; 159 $myLevel = $cmfmodes{$cmfmode}; 160 print "levels: $cmfmode, $realrule, $myLevel, $thisLevel\n" if $DEBUG; 161 if ($myLevel < $thisLevel) { $keepLine = 1; } 162 next; 163 } 164 53 165 } 166 print "line: $line\n" if $DEBUG; 54 167 55 if ($gtMode) { 56 # print "gtMode : $line\n"; 57 $thisLevel = $cmfmodes{$gtMode}; 58 $myLevel = $cmfmodes{$cmfmode}; 59 print "gtMode : $gtMode vs $cmfmode, $thisLevel, $myLevel\n"; 60 if ($myLevel <= $thisLevel) { next; } 61 $line =~ s|\@>\S*\@\s*||; 168 if ($keepLine) { 169 print FILE "$prefix $content\n"; 62 170 } 63 64 if ($ltMode) {65 # print "ltMode : $line\n";66 $thisLevel = $cmfmodes{$ltMode};67 $myLevel = $cmfmodes{$cmfmode};68 print "ltMode : $ltMode vs $cmfmode, $thisLevel, $myLevel\n";69 if ($myLevel >= $thisLevel) { next; }70 $line =~ s|\@<\S*\@\s*||;71 }72 73 print FILE $line;74 171 } 75 172
Note:
See TracChangeset
for help on using the changeset viewer.
