annotate c/regexParser/word.cc @ 118:31b0ba0050fa testcode

text
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Thu, 26 Nov 2015 17:19:00 +0900
parents c/regexParser/word.c@166136236891
children 5d29b6a1b50f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
113
ffef79514d3c add getWord
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include <ctype.h>
ffef79514d3c add getWord
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #include <string.h>
ffef79514d3c add getWord
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 #include <stdio.h>
ffef79514d3c add getWord
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #include <stdlib.h>
117
166136236891 add header files
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 115
diff changeset
5 #include "word.h"
113
ffef79514d3c add getWord
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
118
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
7 WordPtr getWord(unsigned char *string) {
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
8
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
9 WordPtr w = (WordPtr)malloc(sizeof(Word));
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
10
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
11 int i = 0;
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
12 while (isalnum(string[i])) {
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
13 i++;
113
ffef79514d3c add getWord
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 }
ffef79514d3c add getWord
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
118
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
16 int allocateWordSize, wordLength;
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
17
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
18 unsigned char *word = NULL;
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
19 if (string[i] == '*') {
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
20 wordLength = i-1;
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
21 allocateWordSize = i;
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
22 word = (unsigned char*)malloc(sizeof(unsigned char)*allocateWordSize);
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
23 strncpy((char*)word, (char*)string, allocateWordSize);
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
24 word[allocateWordSize-1] = '\0';
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
25 } else {
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
26 wordLength = i;
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
27 allocateWordSize = i+1;
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
28 word = (unsigned char*)malloc(sizeof(unsigned char)*allocateWordSize);
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
29 strncpy((char*)word, (char*)string, allocateWordSize);
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
30 word[allocateWordSize] = '\0';
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
31 }
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
32
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
33 w->word = word;
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
34 w->length = wordLength;
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
35 return w;
113
ffef79514d3c add getWord
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 }