source: tests/zombies/scope.cfa @ fd54fef

arm-ehjacob/cs343-translationnew-ast-unique-expr
Last change on this file since fd54fef was fd54fef, checked in by Michael Brooks <mlbrooks@…>, 11 months ago

Converting the project to use the new syntax for otype, dtype and ttytpe.

Changed prelude (gen), libcfa and test suite to use it. Added a simple deprecation rule of the old syntax to the parser; we might wish to support both syntaxes "officially," like with an extra CLI switch, but this measure should serve as a simple reminder for our team to try the new syntax.

  • Property mode set to 100644
File size: 858 bytes
Line 
1int x;
2typedef double y;
3typedef float t;
4y z;
5//otype u = struct { int a; double b; };
6typedef struct { int a; double b; } u;
7int f( int y );
8y q;
9struct x { int x; };
10
11y w( y y, u v ) {
12//      otype x | { x t(u); };
13        void ?{}(struct x *);
14        void ^?{}(struct x *);
15        extern struct x t( u );
16        u u = y;
17        struct x z = t(u);
18}
19
20y p;
21
22trait has_u( z ) {
23        z u(z);
24};
25
26forall( t | has_u( t ) )
27y q( t the_t ) {
28        t y = u( the_t );
29}
30
31t f( y p ) {
32        int y;
33        typedef char x;
34        {
35                x y;
36                typedef x z;
37                {
38                        z x;
39                        typedef z y;
40                        y z = x;
41                }
42                z x = y;
43        }
44        x q = y;
45}
46
47void some_func() {}
48
49t g( void ) {
50        typedef char x;
51//      try {
52                some_func();
53//      } catch ( x x ) {
54//              t y = x;
55//      }
56        x z;
57}
58
59y q( i )                                                                                                /* K&R style */
60        int i;
61{
62        switch ( i ) {
63                y q = i;
64          case 0:
65                return q;
66          default:
67                return i;
68        }
69}
70
71// Local Variables: //
72// tab-width: 4 //
73// End: //
Note: See TracBrowser for help on using the repository browser.