#include <stdio.h>
#include <stdlib.h>
//#include <fstream.hfa>

enum color { red, blue, green };
//enum color c1 = 0;
//enum color c2 = 1;
enum color c3 = 2;
int c = red;

static const int one = 0 + 1;
static const void * NIL = NULL;
static const double PI = 3.14159;
static const char Plus = '+';
static const char * Fred = "Fred";
static const int Mon = 0, Tue = Mon + 1, Wed = Tue + 1, Thu = Wed + 1, Fri = Thu + 1,
					Sat = Fri + 1, Sun = Sat + 1;

void foo() {
	const int r = random() % 100;
	int va[r];
}

struct Person { char * name; int age, height; };

//enum E { A, B, C };

enum { X = 10, Y = 9, Z = -5 };
enum { A, B, C = 10, D, E = 10 };

enum { Size = 20, Max = 10, MaxPlus10 = Max + 10, Max10PlusOne };

//enum( Person ) friends { Liz = { "ELIZABETH", 22, 170 }, Beth = Liz,
//						 Jon = { "JONATHAN", 35, 190 } };

void www( int p ) {}

int main() {
	printf( "%d\n", Size );
	struct /* unnamed */ { int i; } x, y, z;
	x.i = 3;
	www( x.i );

	struct S {
		union /* unnamed */ { // unscoped fields
			int i; double d ; char ch;
		};
	};

	struct S s;
	s.i = 3;
	s.d = 3.5;

	const int r = random();
	int sa[Sun];

	enum Week { Mon, Tue, Wed, Thu = 10, Fri, Sat, Sun };
	enum Week week;
	switch ( week ) {
	  case Mon: case Tue: case Wed: case Thu: case Fri:
		printf( "weekday\n" );
	  case Sat: case Sun:
		printf( "weekedn\n" );
	}
	for ( enum Week day = Mon; day <= Sun; day = (enum Week)(day + 1) ) {
	}

	// int jane_pos = posnE( Mon );
	// char * jane_value = valueE( Jane );
	// char * jane_label = labelE( Names.Jane );
	// sout | labelE( Names.Jane ) | valueE( Names.Jane );
}
