Index: libcfa/src/parseconfig.cfa
===================================================================
--- libcfa/src/parseconfig.cfa	(revision e22c841901dad8e0a285ecbc20fc912df8456894)
+++ libcfa/src/parseconfig.cfa	(revision 4a1bc44c98359d4d1bcc9795f8081a9ecadd2d3f)
@@ -12,10 +12,10 @@
 static vtable(Missing_Config_Entries) Missing_Config_Entries_vt;
 
-void ?{}( Missing_Config_Entries & this, unsigned int num_missing ) {
+[ void ] ?{}( & Missing_Config_Entries this, unsigned int num_missing ) {
 	this.virtual_table = &Missing_Config_Entries_vt;
 	this.num_missing = num_missing;
 }
 
-void msg( Missing_Config_Entries * ex ) {
+[ void ] msg( * Missing_Config_Entries ex ) {
 	serr | nlOff;
 	serr | "The config file is missing " | ex->num_missing;
@@ -31,5 +31,5 @@
 static vtable(Parse_Failure) Parse_Failure_vt;
 
-void ?{}( Parse_Failure & this, char * failed_key, char * failed_value ) {
+[ void ] ?{}( & Parse_Failure this, [] char failed_key, [] char failed_value ) {
 	this.virtual_table = &Parse_Failure_vt;
 
@@ -40,10 +40,10 @@
 }
 
-void ^?{}( Parse_Failure & this ) with ( this ) {
+[ void ] ^?{}( & Parse_Failure this ) with ( this ) {
 	free( failed_key );
 	free( failed_value );
 }
 
-void msg( Parse_Failure * ex ) {
+[ void ] msg( * Parse_Failure ex ) {
 	serr | "Config entry " | ex->failed_key | " could not be parsed. It has value " | ex->failed_value | ".";
 }
@@ -52,5 +52,5 @@
 static vtable(Validation_Failure) Validation_Failure_vt;
 
-void ?{}( Validation_Failure & this, char * failed_key, char * failed_value ) {
+[ void ] ?{}( & Validation_Failure this, [] char failed_key, [] char failed_value ) {
 	this.virtual_table = &Validation_Failure_vt;
 
@@ -61,10 +61,10 @@
 }
 
-void ^?{}( Validation_Failure & this ) with ( this ) {
+[ void ] ^?{}( & Validation_Failure this ) with ( this ) {
 	free( failed_key );
 	free( failed_value );
 }
 
-void msg( Validation_Failure * ex ) {
+[ void ] msg( * Validation_Failure ex ) {
 	serr | "Config entry " | ex->failed_key | " could not be validated. It has value " | ex->failed_value | ".";
 }
@@ -77,17 +77,17 @@
 struct KVPairs {
 	size_t size, max_size;
-	* [ char *, char * ] data;
+	* [ * char, * char ] data;
 };
 
-void ?{}( KVPairs & kvp ) with ( kvp ) {				// default constructor
+[ void ] ?{}( & KVPairs kvp ) with ( kvp ) {				// default constructor
 	size = 0; max_size = 0; data = 0p;
 }
 
-void ?{}( KVPairs & kvp, size_t size ) { 				// initialization
+[ void ] ?{}( & KVPairs kvp, size_t size ) { 				// initialization
 	kvp.[ size, max_size ] = [ 0, size ];
 	kvp.data = alloc( size );
 }
 
-void ^?{}( KVPairs & kvp ) with ( kvp ) {				// destructor
+[ void ] ^?{}( & KVPairs kvp ) with ( kvp ) {				// destructor
 	for ( i; size ) free( data[i] );
 	free( data );
@@ -95,5 +95,5 @@
 }
 
-void add_kv_pair( KVPairs & kv_pairs, char * k, char * v ) with ( kv_pairs ) {
+[ void ] add_kv_pair( & KVPairs kv_pairs, [] char key, [] char value ) with ( kv_pairs ) {
 	if ( max_size == 0 ) {
 		max_size = 1;
@@ -104,13 +104,13 @@
 	}
 
-	data[size].0 = alloc( strlen( k ) );
-	data[size].1 = alloc( strlen( v ) );
-	strcpy( data[size].0, k );
-	strcpy( data[size].1, v );
+	data[size].0 = alloc( strlen( key ) );
+	data[size].1 = alloc( strlen( value ) );
+	strcpy( data[size].0, key );
+	strcpy( data[size].1, value );
 	++size;
 }
 
 
-bool comments( ifstream & in, char name[] ) {
+[ bool ] comments( & ifstream in, [] char name ) {
 	while () {
 		in | name;
@@ -122,5 +122,5 @@
 
 // Parse configuration from a file formatted in tabular (CS 343) style
-KVPairs * parse_tabular_config_format( const char * config_file, size_t num_entries ) {
+[ * KVPairs ] parse_tabular_config_format( * const char config_file, size_t num_entries ) {
 	// TODO: Change this to a unique_ptr when we fully support returning them (move semantics)
 	* KVPairs kv_pairs = new( num_entries );
@@ -130,6 +130,6 @@
 		open( in, config_file );					// open the configuration file for input
 
-		char key[64];
-		char value[256];
+		[64] char key;
+		[256] char value;
 
 		while () {									// parameter names can appear in any order
@@ -154,5 +154,5 @@
 
 // Parse configuration values from intermediate format
-void parse_config( const char * config_file, config_entry entries[], size_t num_entries, config_format format ) {
+[ void ] parse_config( [] const char config_file, [] config_entry entries, size_t num_entries, config_format format ) {
 	* KVPairs kv_pairs = 0p;
 	choose ( format ) {
@@ -172,5 +172,5 @@
 		  	// Parse the data
 		  	if ( !entries[j].parse( src_value, entries[j].variable ) ) {
-				Parse_Failure * ex = new( src_key, src_value );
+				* Parse_Failure ex = new( src_key, src_value );
 				delete( kv_pairs );
 				throw *ex;
@@ -179,5 +179,5 @@
 			// Validate the data
 			if ( !entries[j].validate( entries[j].variable ) ) {
-				Validation_Failure * ex = new( src_key, src_value );
+				* Validation_Failure ex = new( src_key, src_value );
 				delete( kv_pairs );
 				throw *ex;
@@ -203,5 +203,5 @@
 
 forall(T | Relational( T ))
-bool is_nonnegative( T & value ) {
+[ bool ] is_nonnegative( & T value ) {
 	T zero_val = 0;
 	return value >= zero_val;
@@ -209,5 +209,5 @@
 
 forall(T | Relational( T ))
-bool is_positive( T & value ) {
+[ bool ] is_positive( & T value ) {
 	T zero_val = 0;
 	return value > zero_val;
@@ -215,5 +215,5 @@
 
 forall(T | Relational( T ))
-bool is_nonpositive( T & value ) {
+[ bool ] is_nonpositive( & T value ) {
 	T zero_val = 0;
 	return value <= zero_val;
@@ -221,5 +221,5 @@
 
 forall(T | Relational( T ))
-bool is_negative( T & value ) {
+[ bool ] is_negative( & T value ) {
 	T zero_val = 0;
 	return value < zero_val;
