Forcing the filename to be set upon token creation
This commit is contained in:
parent
245e6fcc8c
commit
3204205845
15
src/token.c
15
src/token.c
|
@ -33,6 +33,7 @@ struct _Token
|
|||
{
|
||||
TokenCode code;
|
||||
char * string;
|
||||
char * filename;
|
||||
unsigned int line;
|
||||
unsigned int col;
|
||||
};
|
||||
|
@ -40,8 +41,9 @@ struct _Token
|
|||
|
||||
/* protected */
|
||||
/* functions */
|
||||
/* token_new */
|
||||
Token * token_new(unsigned int line, unsigned int col)
|
||||
/* token_new
|
||||
* PRE filename must be non-NULL */
|
||||
Token * token_new(char const * filename, unsigned int line, unsigned int col)
|
||||
{
|
||||
Token * token;
|
||||
|
||||
|
@ -51,9 +53,16 @@ Token * token_new(unsigned int line, unsigned int col)
|
|||
if((token = object_new(sizeof(*token))) == NULL)
|
||||
return NULL;
|
||||
token->code = 0;
|
||||
token->string = NULL;
|
||||
token->filename = strdup(filename);
|
||||
token->line = line;
|
||||
token->col = col;
|
||||
token->string = NULL;
|
||||
if(token->filename == NULL)
|
||||
{
|
||||
error_set_code(1, "%s", strerror(errno));
|
||||
object_delete(token);
|
||||
return NULL;
|
||||
}
|
||||
return token;
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,6 @@
|
|||
|
||||
/* Token */
|
||||
/* functions */
|
||||
Token * token_new(unsigned int line, unsigned int col);
|
||||
Token * token_new(char const * filename, unsigned int line, unsigned int col);
|
||||
|
||||
#endif /* !_LIBSYSTEM_TOKEN_H */
|
||||
|
|
Loading…
Reference in New Issue
Block a user