2 * (c) Oleg Puchinin 2006
3 * graycardinalster@gmail.com
10 char * try_name (char * ptr
)
18 while (*ptr
== '*' || *ptr
== '&')
24 while (end
> ptr
&& (*end
== '&' || *end
== '*'))
32 struct hash_t
* parse_variable (char *OP
)
48 words
= Dsplit (op
, " ");
52 size
= words
->get_size();
57 S
= words
->get (size
-1);
76 Ret
= hash (var
, type
);
80 words
->foreach (free
);
88 * äÏÐÕÓËÁÀ ÞÔÏ × ËÏÄÅ ÚÁÐÉÓÅÊ ×ÉÄÁ
89 * function (char *S = "HELLO, FILE d = NULL") {
93 int fdecl_parse (char * d_out
, DArray
* d_vars
)
105 * 1. Arguments check.
106 * 2. Function declaration parse.
107 * 3. Function arguments parse.
111 if (d_out
== NULL
|| d_vars
== NULL
)
114 ptr
= Dstrmid (d_out
, "(", ")");
120 words
= Dsplit (ptr
, ",");
124 size
= words
->get_size ();
128 for (i
= 0; i
< size
; i
++) {
129 one
= parse_variable (words
->get (i
));
131 d_vars
->add (LPCHAR(one
));
138 char * sstrkill (char *OP
)
144 * Kill all strings. Very special function.
152 if (*S
== '\"' || *S
== '\'') {
157 if (*tail
== '\0' ||*(++tail
) == '\0') {