blob: 6366064a15e5f5cde3eb39de209f7362b5c32663 (
plain) (
tree)
|
|
#ifndef __IRC_PARSE_H
#define __IRC_PARSE_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/syscall.h>
#include "util.h"
//points to one token in da string
#define IRC_TKT_NONE 0
#define IRC_TKT_HOST 1
#define IRC_TKT_CMD 2
#define IRC_TKT_PARAM 3
typedef struct irc_token_el
{
int type;
int size;
char *token;
} irc_token_el;
#define IRC_TK_MAX_SIZE 100
typedef struct irc_token
{
int size; //how many tokens
int max_size; //allocate token spaces
irc_token_el **tk_list;
} irc_token;
//create default token list, with prealocated, token structures
irc_token* token_create();
//create new string(with extra byte that have NULL at the end), for token andd to list
int token_add(irc_token *tk, char *s, char *e);
//compare token by index with string
int token_cmp(irc_token *tk, int idx, char *str);
//return new string that could be freed
char* token_new_str(irc_token *tk, int idx);
//number of tokens
int token_len(irc_token *tk);
//create new instance of token structure
irc_token* token_cpy_new(irc_token *tk);
//clean all tokens
void token_destroy(irc_token *tk);
//return number of parse tokens
irc_token* irc_parse(char *str, int sz);
#endif
|