* USE OR PERFORMANCE OF THIS SOFTWARE.
*
*/
+/**
+ * \file ccltoken.c
+ * \brief Implements CCL lexical analyzer (scanner)
+ */
/* CCL - lexical analysis
* Europagate, 1995
*
- * $Id: ccltoken.c,v 1.2 2004-08-11 11:44:30 adam Exp $
+ * $Id: ccltoken.c,v 1.5 2004-10-15 00:19:00 adam Exp $
*
* Old Europagate Log:
*
struct ccl_token *ccl_parser_tokenize (CCL_parser cclp, const char *command)
{
const char *aliases;
- const unsigned char *cp = command;
+ const unsigned char *cp = (const unsigned char *) command;
struct ccl_token *first = NULL;
struct ccl_token *last = NULL;
last = last->next;
}
last->next = NULL;
- last->name = cp;
+ last->name = (const char *) cp;
last->len = 1;
switch (*cp++)
{
break;
case '\"':
last->kind = CCL_TOK_TERM;
- last->name = cp;
+ last->name = (const char *) cp;
last->len = 0;
while (*cp && *cp != '\"')
{
return first;
}
+struct ccl_token *ccl_token_add (struct ccl_token *at)
+{
+ struct ccl_token *n = (struct ccl_token *)xmalloc (sizeof(*n));
+ ccl_assert(n);
+ n->next = at->next;
+ n->prev = at;
+ at->next = n;
+ if (n->next)
+ n->next->prev = n;
+
+ n->kind = CCL_TOK_TERM;
+ n->name = 0;
+ n->len = 0;
+ return n;
+}
+
struct ccl_token *ccl_tokenize (const char *command)
{
CCL_parser cclp = ccl_parser_create ();