On 3/14/07, Nuno Carvalho via RT <[EMAIL PROTECTED]> wrote:
Greetings,

here are some examples running the changed lexer:

$ cat 1.pir
.sub main :main
    .macro SpinForever (Count)
        .local $LOOP: dec .COUNT    # ".local $LOOP" defines a local label.
         branch .$LOOP # Jump to said label.
    .endm
.end
$ ./parrot 1.pir
$
$ cat 2.pir
.sub main :main
    print $AA
.end
$ ./parrot 2.pir
error:imcc:'$AA' is not a valid register name
        in file '2.pir' line 2
$ cat 3.pir
.sub main :main
    $I = 5
.end
$ ./parrot 3.pir
error:imcc:'$I' is not a valid register name
        in file '3.pir' line 2
$ cat 4.pir
.sub main :main
    print "$A"
.end
$ ./parrot 4.pir
$A
$ cat 5.pir
.sub main :main
    print $2
.end
$ ./parrot 5.pir
error:imcc:'$2' is not a valid register name
        in file '5.pir' line 2

With the new lexer the result of running 'make test' is the same, except
for 't/compilers/imcc/syn/errors.t' because now we have a different
error message. I attached a patch with the new lexer and the corrected test.

More tests/comments welcome!

the above examples should be converted to tests. please place them in
t/compilers/imcc/syn/macro.t, and resubmit. that should allow us to do
a partial apply (tests only), see the failures, then apply the source,
rebuild, test, and see the failures disappear, with no other failures.
~jerry

Reply via email to