 
 
 
 
 
 
 
 
 
 










 
 
 { $r{H} = $NUM{VAL} }   
 { $expr{T} = $r{T} } 
 
 { $r_1{H} = $r{H}." ".$NUM{VAL}." - " }  
 { $r{T} = $r_1{T} }
 
 { $r{T} = $r{H} }
es posible construir un APDR que ejecuta las acciones semánticas en los puntos indicados por el esquema de traducción. El atributo heredado se convierte en un parámetro de entrada a la subrutina asociada con la variable sintáctica:
sub expression() {
  my $r = $value." "; #accion intermedia
  match('NUM'); 
  return rest($r); # accion final $expr{T} = $r{T}
}
sub rest($) {
  my $v = shift;
  if ($lookahead eq '-') {
    match('-');
    my $r = "$v $value -"; # accion intermedia
    match('NUM');
    return rest($r); # accion final $r{t} = $r_1{t}
  }
  elsif ($lookahead ne 'EOI') {
    error("Se esperaba un operador");
  }
  else { return $v; } # r -> epsilon { $r{t} = $r{h} }
}
 
 
 
 
 
 
 
 
 
 










