#include "property.h" char * property_composePropertyValue( char * propertyValue, struct property * propertyInstance ) { struct array * valueParts = text_split( propertyValue, " \t" ); int valuePartsLength = array_length( valueParts ); for (int i = 0; i < valuePartsLength; ++i) { char * valuePart = array_get( valueParts, i ); if( strcmp( valuePart, "new" ) == 0 ) { char * afterNew = array_get( valueParts, i + 1 ); int argumentOpenIndex = text_findFirstCharacterIndex( propertyValue, "(" ); int newKeywordIndex = text_findFirstCharacterIndex( propertyValue, "new" ) + 3; char * argumentText = text_removeWhiteSpaces( text_slice( propertyValue, argumentOpenIndex , strlen( propertyValue ) ) ); char * datatype = text_removeWhiteSpaces( text_slice( propertyValue, newKeywordIndex , argumentOpenIndex-1 ) ); struct text * newMethodDecleration = text_new( "" );//datatype text_append( newMethodDecleration, datatype ); text_append( newMethodDecleration, "_new" ); if( propertyInstance->isPointer == 1 ) { text_append( newMethodDecleration, "Pointer" ); } text_append( newMethodDecleration, argumentText ); return newMethodDecleration->value; } } //propertyInstance->value = propertyValue; return propertyValue; } char * property_extractPropertyDeclaration( struct array * propertyParts, struct property * propertyInstance ) { char * formattedDecleration = ""; int propertyPartsLength = array_length( propertyParts ); for ( int j = 0; j < propertyPartsLength; ++j ) { char * part = (char *) array_get( propertyParts, j ); if( strcmp( part, "const" ) == 0 ) { } else if( strcmp( part, "volatile" ) == 0 ) { } else if( strcmp( part, "*" ) == 0 ) { } else { if( j < propertyPartsLength - 1 ) { propertyInstance->datatype = part; } } if( j != 0 ){ formattedDecleration = text_concatenate( formattedDecleration, " " ); } formattedDecleration = text_concatenate( formattedDecleration, part ); } return formattedDecleration; } char * property_extractPropertyName( struct array * propertyParts ) { int propertyPartsLength = array_length( propertyParts ); return text_copy( array_get( propertyParts, propertyPartsLength - 1 ) ) ; }