Hello,

 by executing the command "perl6 --tree" there is to seen the following
 error message:

[EMAIL PROTECTED] perl6]$ perl ./perl6 --tree -e 'print "alf"';
Can't call method "tree" on an undefined value at ./perl6 line 418.
[EMAIL PROTECTED] perl6]$

 The problem is that the function $parser->prog only returns a value
 if the function P6C::IMCC::init() is called first.

 So I fixed the program languages/perl6/perl6 that the modul
 P6C::IMCC is loaded and also the function P6C::IMCC::init is 
 called generally. There is no need not to call it when the
 option --tree is used. At the end of this mail I add my changes.


  Gerd




[EMAIL PROTECTED] perl6]$ diff -u perl6 perl6.parse_tree
--- perl6       2004-11-17 13:14:32.902467776 +0100
+++ perl6.parse_tree    2004-11-17 13:20:42.238320192 +0100
@@ -473,10 +473,9 @@
        $Data::Dumper::Indent = 1;
 END
        die $@ if $@;
-    } else {
-       eval 'use P6C::IMCC qw(:external)';
-       die $@ if $@;
     }
+    eval 'use P6C::IMCC qw(:external)';
+    die $@ if $@;
     if (!$OPT{'force-grammar'} && eval("require $OPT{grammar}")) {
        $parser = eval "new $OPT{grammar}" or die "$OPT{grammar}: $@";
     } else {
@@ -519,7 +518,7 @@
         close(IN);
     }
     verbose(2, "Parsing");
-    P6C::IMCC::init() unless $OPT{tree};
+    P6C::IMCC::init();
     my $result = run_pass('parse', sub {$parser->$::rule($in,0,$f)}, $fw);
     output_tree($result, $f, $fw);
 }
[EMAIL PROTECTED] perl6]$


Reply via email to