Lines Matching refs:node

109     my ($node)= @_;
111 if ( $all{ $node->{name} } ) {
112 die "Duplicate item '$node->{name}' in regcomp.sym line $node->{line_num} "
113 . "previously defined on line $all{ $node->{name} }{line_num}\n";
114 } elsif (!$node->{optype}) {
115 die "must have an optype in node ", Dumper($node);
116 } elsif ($node->{optype} eq "op") {
117 push @ops, $node;
118 } elsif ($node->{optype} eq "state") {
119 push @states, $node;
121 die "Uknown optype '$node->{optype}' in ", Dumper($node);
123 $node->{id}= 0 + @all;
124 push @all, $node;
125 $all{ $node->{name} }= $node;
127 if ($node->{longj} && $node->{longj} != 1) {
128 die "longj field must be in [01] if present in ", Dumper($node);
145 my $node= {
154 @{$node}{qw(name desc comment)}= /^(\S+)\s+([^\t]+?)\s*;\s*(.*)/
158 @{$node}{qw(type code suffix flags longj)}= split /[,\s]\s*/, $node->{desc};
160 defined $node->{$_} or $node->{$_} = ""
163 register_node($node); # has to be before the type_alias code below
165 if ( !$all{ $node->{type} } and !$type_alias{ $node->{type} } ) {
170 $type_alias{ $node->{type} }= $node->{name};
173 $longest_name_length= length $node->{name}
174 if length $node->{name} > $longest_name_length;
218 my $node= {
225 register_node($node);
237 for my $node (@ops) {
238 my $set= $node->{flags} && $node->{flags} eq $flag ? 1 : 0;
244 ord substr $bitmap, ( $node->{id} >> 3 );
246 substr( $bitmap, ( $node->{id} >> 3 ), 1 )=
247 chr( $current | ( $set << ( $node->{id} & 7 ) ) );
249 push @selected, $node->{name} if $set;
286 for my $node (@ops) {
287 next unless $node->{type} eq 'EXACT';
288 my $name = $node->{name};
289 $base = $node->{id} if $name eq 'EXACT';
291 my $index = $node->{id} - $base;
379 for my $node ($ref->@*) {
380 my $len = length $node->{name};
399 for my $node (@ops) {
400 print_state_def_line($out, $node->{name}, $node->{id}, $node->{comment});
401 if ( defined( my $alias= $rev_type_alias{ $node->{name} } ) ) {
402 print_state_def_line($out, $alias, $node->{id}, $node->{comment});
407 for my $node (@states) {
408 print_state_def_line($out, $node->{name}, $node->{id}, $node->{comment});
497 foreach my $node (@ops) {
498 if ($node->{suffix} and $len < length($node->{suffix})) {
499 $len= length $node->{suffix};
506 foreach my $node (sort { $a->{name} cmp $b->{name} } @ops) {
508 if (my $suffix= $node->{suffix}) {
511 $node->{typedef}= $prefix . "_" . $node->{name};
512 printf $out "typedef %*s %s;\n", -$len, $struct_name, $node->{typedef};
538 my $node= $all[$node_idx];
541 $size= "EXTRA_SIZE($node->{typedef})" if $node->{suffix};
542 $node->{arg_len}= $size;
547 $varies= 1 if $node->{code} and $node->{code}=~"str";
548 $node->{arg_len_varies}= $varies;
550 $node->{off_by_arg}= $node->{longj} || 0;
552 print $out " /* #$node_idx $node->{optype} $node->{name} */\n";
555 printf $out " .%s = %s", $field, $node->{$field} // 0;
584 foreach my $node (@all) {
586 -3 - $base_name_width, qq("$node->{name}",), $node->{id} - $ofs;
587 if ( $node->{id} == $#ops and @ops != @all ) {
803 my $node;
832 $node= $n;
833 $code= "$node->{code} " . ( $node->{suffix} || "" );
834 $code .= " $node->{longj}" if $node->{longj};
835 if ( $node->{pod_comment} ||= "" ) {
838 $node->{pod_comment} =~ s/^\n\n+/\n/;
839 $node->{pod_comment} =~ s/\n\n+$/\n\n/;