Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: bb04611623
Fetching contributors…

Cannot retrieve contributors at this time

148 lines (127 sloc) 4.95 kb
//
// TDToken.h
// TDParseKit
//
// Created by Todd Ditchendorf on 1/20/06.
// Copyright 2008 Todd Ditchendorf. All rights reserved.
//
#import <Foundation/Foundation.h>
/*!
@typedef enum TDTokenType
@brief Indicates the type of a <tt>TDToken</tt>
@var TDTokenTypeEOF A constant indicating that the endo fo the stream has been read.
@var TDTokenTypeNumber A constant indicating that a token is a number, like <tt>3.14</tt>.
@var TDTokenTypeQuotedString A constant indicating that a token is a quoted string, like <tt>"Launch Mi"</tt>.
@var TDTokenTypeSymbol A constant indicating that a token is a symbol, like <tt>"&lt;="</tt>.
@var TDTokenTypeWord A constant indicating that a token is a word, like <tt>cat</tt>.
*/
typedef enum {
TDTokenTypeEOF,
TDTokenTypeNumber,
TDTokenTypeQuotedString,
TDTokenTypeSymbol,
TDTokenTypeWord,
TDTokenTypeWhitespace,
TDTokenTypeComment
} TDTokenType;
/*!
@class TDToken
@brief A token represents a logical chunk of a string.
@details For example, a typical tokenizer would break the string <tt>"1.23 &lt;= 12.3"</tt> into three tokens: the number <tt>1.23</tt>, a less-than-or-equal symbol, and the number <tt>12.3</tt>. A token is a receptacle, and relies on a tokenizer to decide precisely how to divide a string into tokens.
*/
@interface TDToken : NSObject {
CGFloat floatValue;
NSString *stringValue;
TDTokenType tokenType;
BOOL number;
BOOL quotedString;
BOOL symbol;
BOOL word;
BOOL whitespace;
BOOL comment;
id value;
}
/*!
@brief Factory method for creating a singleton <tt>TDToken</tt> used to indicate that there are no more tokens.
@result A singleton used to indicate that there are no more tokens.
*/
+ (TDToken *)EOFToken;
/*!
@brief Factory convenience method for creating an autoreleased token.
@param t the type of this token.
@param s the string value of this token.
@param n the number falue of this token.
@result an autoreleased initialized token.
*/
+ (id)tokenWithTokenType:(TDTokenType)t stringValue:(NSString *)s floatValue:(CGFloat)n;
/*!
@brief Designated initializer. Constructs a token of the indicated type and associated string or numeric values.
@param t the type of this token.
@param s the string value of this token.
@param n the number falue of this token.
@result an autoreleased initialized token.
*/
- (id)initWithTokenType:(TDTokenType)t stringValue:(NSString *)s floatValue:(CGFloat)n;
/*!
@brief Returns true if the supplied object is an equivalent <tt>TDToken</tt>, ignoring differences in case.
@param obj the object to compare this token to.
@result true if <tt>obj</tt> is an equivalent <tt>TDToken</tt>, ignoring differences in case.
*/
- (BOOL)isEqualIgnoringCase:(id)obj;
/*!
@brief Returns more descriptive textual representation than <tt>-description</tt> which may be useful for debugging puposes only.
@details Usually of format similar to: <tt>&lt;QuotedString "Launch Mi"></tt>, <tt>&lt;Word cat></tt>, or <tt>&lt;Num 3.14></tt>
@result A textual representation including more descriptive information than <tt>-description</tt>.
*/
- (NSString *)debugDescription;
/*!
@property number
@brief True if this token is a number. getter=isNumber
*/
@property (nonatomic, readonly, getter=isNumber) BOOL number;
/*!
@property quotedString
@brief True if this token is a quoted string. getter=isQuotedString
*/
@property (nonatomic, readonly, getter=isQuotedString) BOOL quotedString;
/*!
@property symbol
@brief True if this token is a symbol. getter=isSymbol
*/
@property (nonatomic, readonly, getter=isSymbol) BOOL symbol;
/*!
@property word
@brief True if this token is a word. getter=isWord
*/
@property (nonatomic, readonly, getter=isWord) BOOL word;
/*!
@property whitespace
@brief True if this token is whitespace. getter=isWhitespace
*/
@property (nonatomic, readonly, getter=isWhitespace) BOOL whitespace;
/*!
@property comment
@brief True if this token is a comment. getter=isComment
*/
@property (nonatomic, readonly, getter=isComment) BOOL comment;
/*!
@property tokenType
@brief The type of this token.
*/
@property (nonatomic, readonly) TDTokenType tokenType;
/*!
@property floatValue
@brief The numeric value of this token.
*/
@property (nonatomic, readonly) CGFloat floatValue;
/*!
@property stringValue
@brief The string value of this token.
*/
@property (nonatomic, readonly, copy) NSString *stringValue;
/*!
@property value
@brief Returns an object that represents the value of this token.
*/
@property (nonatomic, readonly, copy) id value;
@end
Jump to Line
Something went wrong with that request. Please try again.