From fafbc8eb56bec97e0bf24acd220eada24aa93ea9 Mon Sep 17 00:00:00 2001 From: elliott_c Date: Thu, 31 Aug 2006 23:19:39 +0000 Subject: ChangeLogTag: Thu Aug 31 23:18:57 UTC 2006 Chad Elliott --- devtools/document_template.pl | 93 ++++++++++++++++++++++++++++--------------- 1 file changed, 61 insertions(+), 32 deletions(-) (limited to 'devtools') diff --git a/devtools/document_template.pl b/devtools/document_template.pl index 925f9352..7f37fdb7 100755 --- a/devtools/document_template.pl +++ b/devtools/document_template.pl @@ -5,7 +5,7 @@ eval '(exit $?0)' && eval 'exec perl -w -S $0 ${1+"$@"}' # ****************************************************************** # Author: Chad Elliott # Date: 7/12/2006 -# $Id: document_template.pl,v 1.1 2006/02/16 21:38:47 elliottc Exp $ +# $Id$ # ****************************************************************** # ****************************************************************** @@ -188,11 +188,12 @@ if (open($fh, $input)) { my($def) = undef; if ($key =~ /^([^\(]+)\((.*)\)/) { $name = $1; + my($vname) = $2; + if (defined $keywords{$name}) { $tvar = 1; if ($name eq 'foreach') { ++$findex; - my($vname) = $2; my($remove_s) = 1; if ($vname =~ /([^,]*),(.*)/) { @@ -211,56 +212,84 @@ if (open($fh, $input)) { } $vname = $n; } - $vname =~ s/\s.*//; - $key = $vname; $name = $vname; + + $key = $vname; + $vname =~ s/\s.*//; $vname =~ s/s$// if ($remove_s); $foreach[$findex] = $vname; $tvar = undef; } + elsif ($name eq 'if') { + $vname =~ s/(flag_overrides\(.*\)|!|&&|\|\|)//g; + if ($vname !~ /^\s*$/) { + $name = $vname; + $key = $vname; + $tvar = undef; + } + } } else { $def = $2; } } - if (defined $keywords{$key}) { - $tvar = 1; - if ($key eq 'endfor') { - $foreach[$findex] = undef; - --$findex; - } - } - else { - foreach my $ao (keys %arrow_op) { - if ($key =~ /^$ao/) { - $tvar = 1; - last; + my($otvar) = $tvar; + foreach my $k (split(/\s+/, $key)) { + $tvar = $otvar; + if (defined $keywords{$k}) { + $tvar = 1; + if ($k eq 'endfor') { + $foreach[$findex] = undef; + --$findex; } } - } - - if (!$tvar) { - for(my $index = 0; $index <= $findex; $index++) { - if ($foreach[$index] eq $key) { - $tvar = 1; - last; + else { + foreach my $ao (keys %arrow_op) { + if ($k =~ /^$ao/) { + $tvar = 1; + last; + } } } - } - if (!$tvar) { - if (defined $template_keys{$name}) { - if (defined $def) { - $template_keys{$name}->{$def} = 1; + if (!$tvar) { + for(my $index = 0; $index <= $findex; $index++) { + if ($foreach[$index] eq $k) { + $tvar = 1; + last; + } } } - else { - $template_keys{$name} = {}; - if (defined $def) { - $template_keys{$name}->{$def} = 1; + + if (!$tvar) { + foreach my $n (split(/\s+/, $name)) { + $tvar = undef; + if (defined $keywords{$n}) { + } + else { + foreach my $ao (keys %arrow_op) { + if ($n =~ /^$ao/) { + $tvar = 1; + last; + } + } + if (!$tvar) { + if (defined $template_keys{$n}) { + if (defined $def) { + $template_keys{$n}->{$def} = 1; + } + } + else { + $template_keys{$n} = {}; + if (defined $def) { + $template_keys{$n}->{$def} = 1; + } + } + } + } } } } -- cgit v1.2.1