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
RevLine 
[51b7345]1int x;
2typedef double y;
3typedef float t;
4y z;
[10dc7491]5//otype u = struct { int a; double b; };
6typedef struct { int a; double b; } u;
[51b7345]7int f( int y );
8y q;
[10dc7491]9struct x { int x; };
[51b7345]10
[0b2961f]11y w( y y, u v ) {
[10dc7491]12//      otype x | { x t(u); };
13        void ?{}(struct x *);
14        void ^?{}(struct x *);
15        extern struct x t( u );
[a65d92e]16        u u = y;
[10dc7491]17        struct x z = t(u);
[51b7345]18}
19
20y p;
21
[fd54fef]22trait has_u( z ) {
[a65d92e]23        z u(z);
[51b7345]24};
25
[fd54fef]26forall( t | has_u( t ) )
[0b2961f]27y q( t the_t ) {
[a65d92e]28        t y = u( the_t );
[51b7345]29}
30
31t f( y p ) {
[a65d92e]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;
[51b7345]45}
46
[10dc7491]47void some_func() {}
48
[51b7345]49t g( void ) {
[a65d92e]50        typedef char x;
[10dc7491]51//      try {
[a65d92e]52                some_func();
[10dc7491]53//      } catch ( x x ) {
54//              t y = x;
55//      }
[a65d92e]56        x z;
[51b7345]57}
58
[0b2961f]59y q( i )                                                                                                /* K&R style */
60        int i;
[51b7345]61{
[a65d92e]62        switch ( i ) {
63                y q = i;
64          case 0:
65                return q;
66          default:
67                return i;
68        }
[51b7345]69}
70
[a65d92e]71// Local Variables: //
72// tab-width: 4 //
73// End: //
Note: See TracBrowser for help on using the repository browser.