//
//  EXPCompoundElement.m
//  dde
//
//  Created by ashley on 20/10/2007.
//  Copyright 2007 __MyCompanyName__. All rights reserved.
//

#import "EXPCompoundElement.h"
#import "EXPStatementBlockElement.h"

@implementation EXPCompoundElement

- (id) init
{
	self = [super init];
	if (self!=nil) {
		_header = nil;
//		_statements = [[NSMutableArray alloc] init];
		_block = nil;
	}
	return self;

}

- (void) setHeader:(id)header
{
	[header retain];
	[_header release];
	_header = header;
}

- (id) header
{
	return _header;
}

/*- (void) setStatements:(id) statements
{
	[statements retain];
	[_statements release];
	_statements = statements;
}

- (id) statements
{
	return _statements;
}

- (void) addStatement:(id) statement
{
	[[self statements] addObject:statement];
} */

- (void) setBlock:(id)block
{
	[block retain];
	[_block release];
	_block = block;
}

- (id) block
{
	return _block;
}

- (id) symbolTable
{
	return [[self model] symbolTable];
}

/* - (BOOL) compileHeader:(EXPVirtualMachine *)machine error:(EXPError *)error
{
	BOOL success = YES;
	EXPExpression *header = [self header];
	[header compile:machine error:error];
	return success;
} */

/* - (BOOL) compileStatements:(EXPVirtualMachine *)machine error:(EXPError *)error
{
	BOOL success = YES;

// What about initialisers?? Check & disallow?	
	int i;
	NSArray *statements = [self statements];
	for(i=0; i<[statements count]; i++) {
		EXPElement *statement = [statements objectAtIndex:i];
		[statement compile:machine error:error];
	}
	
	return success;
} */

- (void) dealloc
{
	[_header release];
	[_block release];
	[super dealloc];
}

@end