/**
 * Jason Luu
 * July 22, 2009
 * Tokenizer
 */

#ifndef TOKEN_H
#define TOKEN_H

enum e_token_type
{ TOKEN_NULL, TOKEN_STRING, TOKEN_INT, 
  TOKEN_OPEN_SQUARE_BRACKET, TOKEN_CLOSE_SQUARE_BRACKET, 
  TOKEN_OPEN_SQUIG_BRACKET, TOKEN_CLOSE_SQUIG_BRACKET,
  TOKEN_COLON, TOKEN_DOT };

struct s_token {
	enum e_token_type type;
	char *data;
};
typedef struct s_token t_token;

t_token *GetTokensFromString(INP const char* inString, OUTP int * num_tokens);

void freeTokens(INP t_token *tokens, INP int num_tokens);


boolean checkTokenType(INP t_token token, OUTP enum e_token_type token_type);

void my_atof_2D(INOUTP float **matrix, INP int max_i, INP int max_j, INP char *instring);

#endif

