//
//  EXPOutputElement.m
//  dde
//
//  Created by ashley on 13/10/2007.
//  Copyright 2007 __MyCompanyName__. All rights reserved.
//

#import "EXPOutputElement.h"
#import "EXPSymbolReference.h"
#import "EXPParser.h"

@implementation EXPOutputElement

- (id) init
{
	self = [super init];
	if (self!=nil) {
		_outputFilename = nil;
		_filetype = nil;
		_expressionList = [[NSMutableArray alloc] init];
		_indicesList = [[NSMutableArray alloc] init];
	}
	
	return self;
}


- (void)setFiletype:(id)filetype
{
	[filetype retain];
	[_filetype release];
	_filetype = filetype;
}

- (id) filetype
{
	return _filetype;
}

- (void) setOutputFilename:(id)filename
{
	[filename retain];
	[_outputFilename release];
	_outputFilename = filename;
}

- (id) outputFilename
{
	return _outputFilename;
}

- (id) expressionList
{
	return _expressionList;
}

- (void) setExpressionList:(id)expressionList
{
	[expressionList retain];
	[_expressionList release];
	_expressionList = expressionList;
}

 - (void) addItem:(id)item
{
	NSMutableArray *list = [self expressionList];
	[list  addObject:item];
} 

- (void) setIndicesList:(id)indicesList
{
	[indicesList retain];
	[_indicesList release];
	_indicesList = indicesList;
}

- (void) setIndices:(id)indices
{
	NSLog(@"EXPOutputElment setIndices.");
	NSMutableArray *indicesList = [self indicesList];
	NSMutableArray *list = [[NSMutableArray alloc] init];
	int i;
	for(i=0; i<[indices count]; i++) {
		[list addObject:[[indices objectAtIndex:i] element]];
	}
	[indicesList addObject:list];
	[list release];
}

- (id) indicesList
{
	return _indicesList;
}

/*- (BOOL) compilePrintHeader:(EXPVirtualMachine *)machine error:(EXPError *)err
{
	return YES;
}

- (BOOL) compilePrintFooter:(EXPVirtualMachine *)machine error:(EXPError *)err
{
	return YES;
}

- (BOOL) compile:(EXPVirtualMachine *)machine error:(EXPError *)err
{
	return NO;
} */

/*- (void) release
{
	[super release];
} */

- (void) dealloc
{
	[_outputFilename release];
	[_filetype release];
	[_indicesList release];
	[_expressionList release];
	[super dealloc];
}

@end