//
//  EXPParser.h
//  ParserTest
//
//  Created by Ashley on 29/05/2007.
//  Copyright 2007 __MyCompanyName__. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface EXPParser : NSObject {
	unichar _ch;
	NSString *_string;
	NSString *_symbol;
	int _symbolType;
	id _loader;
	
	int _count;
	int _length;
	BOOL _newLine;
	int _lineNumber;
	BOOL _readPastEol;
	BOOL _floatLiteral;
	
	BOOL _skipComments;
	BOOL _echo;
//	unsigned _comparisonMask;
	BOOL _isCaseSensitive;
	BOOL _recovering;
}

- (id) string;
- (void) setString:(id)string;
- (void) setEcho:(BOOL)echo;
- (BOOL) echo;
- (void) setIsCaseSensitive:(BOOL)caseSensitive;
- (BOOL) isCaseSensitive;
- (void) setIsRecovering:(BOOL)recovering;
- (BOOL) isRecovering;

- (void) setLoader:(id)loader;
- (id) loader;

- (void) readChar;
- (void) readSymbol;
- (BOOL) testSymbol:(NSString *)symbol;
- (BOOL) checkSymbol:(NSString *)symbol;
- (id) symbol;
- (int) lineNumber;

- (BOOL) isFloatLiteral;

- (BOOL) isBinaryOp;
- (BOOL) isLiteral;
- (BOOL) isStringLiteral;
- (BOOL) isIdentifier;
- (BOOL) isEndOfLine;
- (BOOL) isEndOfFile;

@end