dlugolecki.net.pl
Dziennik
Polecane
Software
projects
/
gedcom-parse.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Documentation updates (gedcom_init() function, move of utf8 example code
[gedcom-parse.git]
/
gedcom
/
gedcom_lex_common.c
diff --git
a/gedcom/gedcom_lex_common.c
b/gedcom/gedcom_lex_common.c
index e1c17bb78b12dfb89b510a086d4cdc5d1282d7f4..6f7a1d3ca15252879dee6aa4259a55795727ad74 100644
(file)
--- a/
gedcom/gedcom_lex_common.c
+++ b/
gedcom/gedcom_lex_common.c
@@
-1,5
+1,5
@@
/* Common lexer code.
/* Common lexer code.
- Copyright (C) 2001 The Genes Development Team
+ Copyright (C) 2001
, 2002
The Genes Development Team
This file is part of the Gedcom parser library.
Contributed by Peter Verthez <Peter.Verthez@advalvas.be>, 2001.
This file is part of the Gedcom parser library.
Contributed by Peter Verthez <Peter.Verthez@advalvas.be>, 2001.
@@
-48,7
+48,7
@@
int gedcom_lex();
void message_handler(Gedcom_msg_type type, char *msg)
{
void message_handler(Gedcom_msg_type type, char *msg)
{
- fprintf(stderr, msg);
+ fprintf(stderr,
"(%d) %s\n", type,
msg);
}
int test_loop(ENCODING enc, char* code)
}
int test_loop(ENCODING enc, char* code)
@@
-73,8
+73,8
@@
int test_loop(ENCODING enc, char* code)
case DELIM: printf("DELIM "); break;
case ANYCHAR: printf("%s ", gedcom_lval.string); break;
case POINTER: printf("POINTER(%s) ", gedcom_lval.string); break;
case DELIM: printf("DELIM "); break;
case ANYCHAR: printf("%s ", gedcom_lval.string); break;
case POINTER: printf("POINTER(%s) ", gedcom_lval.string); break;
- case USERTAG: printf("USERTAG(%s) ", gedcom_lval.string); break;
- default: printf("TAG(%s) ", gedcom_lval.string); break;
+ case USERTAG: printf("USERTAG(%s) ", gedcom_lval.
tag.
string); break;
+ default: printf("TAG(%s) ", gedcom_lval.
tag.
string); break;
}
tok = gedcom_lex();
}
}
tok = gedcom_lex();
}
@@
-107,7
+107,8
@@
int test_loop(ENCODING enc, char* code)
#define MKTAGACTION(THETAG) \
{ CHECK_LINE_LEN; \
#define MKTAGACTION(THETAG) \
{ CHECK_LINE_LEN; \
- gedcom_lval.string = TO_INTERNAL(yytext, tag_buf); \
+ gedcom_lval.tag.string = TO_INTERNAL(yytext, tag_buf); \
+ gedcom_lval.tag.value = TAG_##THETAG; \
BEGIN(NORMAL); \
return TAG_##THETAG; \
}
BEGIN(NORMAL); \
return TAG_##THETAG; \
}
@@
-211,7
+212,8
@@
int test_loop(ENCODING enc, char* code)
return BADTOKEN; \
} \
CHECK_LINE_LEN; \
return BADTOKEN; \
} \
CHECK_LINE_LEN; \
- gedcom_lval.string = TO_INTERNAL(yytext, tag_buf); \
+ gedcom_lval.tag.string = TO_INTERNAL(yytext, tag_buf); \
+ gedcom_lval.tag.value = USERTAG; \
BEGIN(NORMAL); \
return USERTAG; \
}
BEGIN(NORMAL); \
return USERTAG; \
}
@@
-282,11
+284,15
@@
int test_loop(ENCODING enc, char* code)
return CLOSE; \
} \
else { \
return CLOSE; \
} \
else { \
+ char* ptr; int size; \
/* Reset our state */ \
current_level = -1; \
level_diff = MAXGEDCLEVEL; \
/* ... then terminate lex */ \
yyterminate(); \
/* Reset our state */ \
current_level = -1; \
level_diff = MAXGEDCLEVEL; \
/* ... then terminate lex */ \
yyterminate(); \
+ /* Get rid of f*cking compiler warning from lex generated code */ \
+ /* yyterminate does return(), so program will never come here */ \
+ yy_flex_realloc(ptr, size); \
} \
}
} \
}