tagged release 0.6.4
[parrot.git] / t / compilers / imcc / syn / symbols.t
blob34cb1477707a44f65d45190582960093801622c2
1 #!perl
2 # Copyright (C) 2007, The Perl Foundation.
3 # $Id$
5 use strict;
6 use warnings;
7 use lib qw( . lib ../lib ../../lib );
8 use Test::More;
9 use Parrot::Config;
10 use Parrot::Test tests => 6;
12 # 1 ##########################
13 pir_error_output_like( <<'CODE', <<'OUT', "register names with one letter only are invalid" );
14 .sub main :main
15     print $S
16 .end
17 CODE
18 /^error:imcc:'\$S' is not a valid register name.*\n.*in file .*? line 2.*\n/
19 OUT
21 # 2 ##########################
22 pir_error_output_like( <<'CODE', <<'OUT', "register names with one letter only are invalid" );
23 .sub main :main
24     $I = 5
25 .end
26 CODE
27 /^error:imcc:'\$I' is not a valid register name.*\n.*in file .*? line 2.*\n/
28 OUT
30 # 3 ##########################
31 pir_error_output_like( <<'CODE', <<'OUT', "register names with numbers only are invalid" );
32 .sub main :main
33     print $2
34 .end
35 CODE
36 /^error:imcc:'\$2' is not a valid register name.*\n.*in file .*? line 2.*\n/
37 OUT
39 # 4 ##########################
40 pir_error_output_like( <<'CODE', <<'OUT', "register names with more than letter are invalid" );
41 .sub main :main
42     print $str
43 .end
44 CODE
45 /^error:imcc:'\$str' is not a valid register name.*\n.*in file .*? line 2.*\n/
46 OUT
48 # 5 ##########################
49 pir_output_is( <<'CODE', <<'OUT', "RT#42769 register name 'object' is valid" );
50 .sub main :main
51     .local int object
52     object = 1
53     say object
54 .end
55 CODE
57 OUT
59 # 6 ##########################
60 pasm_error_output_like(<<'CODE', <<'OUT', q|#52858: "$" vars in PASM don't work, but aren't disallowed either| );
61     say $S0
62 CODE
63 /error:imcc:'\$S0' is not a valid register name in pasm mode/
64 OUT
67 # Local Variables:
68 #   mode: cperl
69 #   cperl-indent-level: 4
70 #   fill-column: 100
71 # End:
72 # vim: expandtab shiftwidth=4: