[PDD] Add docs for the Parrot_PMC_push_* and Parrot_PMC_pop_* functions
[parrot.git] / compilers / pirc / t / basic.t
blobf9c06fc09c1657eeb48d16d0f850ab90cc518681
1 #!perl
2 # Copyright (C) 2008-2009, Parrot Foundation.
3 # $Id$
5 use strict;
6 use warnings;
8 use lib qw(lib);
9 use Parrot::Test tests => 6;
11 pirc_2_pasm_is(<<'CODE', <<'OUTPUT', "a local, a reg and an if-stat");
12 .sub main
13     .local int i
14     i = 1
15     $I0 = 1
16     if i == $I0 goto ok
17     say "nok"
18     .return()
19   ok:
20     say "ok"
21 .end
22 CODE
24 OUTPUT
26 pirc_2_pasm_is(<<'CODE', <<'OUTPUT', "tale of a local, a reg and an unless-stat");
27 .sub main
28     .local int i
29     i = 1
30     $I0 = 2
31     unless i == $I0 goto ok
32     say "nok"
33     .return()
34   ok:
35     say "ok"
36 .end
37 CODE
39 OUTPUT
42 pirc_2_pasm_is(<<'CODE', <<'OUTPUT', "comparison, if, unless");
43 .sub main
44     .local int i,j
45     i = 1
46     j = 2
47     if i == j goto L1
48     say "ok"
49     goto L2
50   L1:
51     say "nok"
52   L2:
53     if i != j goto L3
54     say "nok"
55     goto L4
56   L3:
57     say "ok"
58   L4:
59     unless i == j goto L5
60     say "nok"
61     goto L6
62   L5:
63     say "ok"
64   L6:
65 .end
66 CODE
70 OUTPUT
73 pirc_2_pasm_is(<<'CODE', <<'OUTPUT', "indexing an array");
74 .sub main
75     .local pmc p
76     p = new "ResizableIntegerArray"
77     p[0] = 42
78     p[1] = 43
79     $I0 = p[0]
80     say $I0
81     $I1 = p[1]
82     say $I1
83 .end
84 CODE
87 OUTPUT
90 pirc_2_pasm_is(<<'CODE', <<'OUTPUT', "indexing a hash with a string constant");
91 .sub main
92     .local pmc p
93     p = new "Hash"
94     p["hello"] = 42
95     $I0 = p["hello"]
96     say $I0
97     p["bye"] = 3.3
98     $N1 = p["bye"]
99     say $N1
100 .end
101 CODE
104 OUTPUT
106 pirc_2_pasm_is(<<'CODE', <<'OUTPUT', "indexing a hash with a string register");
107 .sub main
108     .local pmc p
109     p = new "Hash"
110     $S0 = "hello"
111     p[$S0] = 42
112     $I0 = p[$S0]
113     say $I0
114     # and combine indexing with string constant and register
115     $S1 = "bye"
116     p["bye"] = 3.3
117     $N1 = p["bye"]
118     say $N1
119 .end
120 CODE
123 OUTPUT
127 # Local Variables:
128 #   mode: cperl
129 #   cperl-indent-level: 4
130 #   fill-column: 100
131 # End:
132 # vim: expandtab shiftwidth=4: