Started to generalize line info handling. Remove separate FilePos fields and

try to manage all and everything with LineInfos.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4914 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz
2011-01-24 22:38:22 +00:00
parent 0f9ced267e
commit 06e3152035
11 changed files with 446 additions and 141 deletions

View File

@@ -6,10 +6,10 @@
/* */
/* */
/* */
/* (C) 1998-2003 Ullrich von Bassewitz */
/* R<EFBFBD>merstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* (C) 1998-2011, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
@@ -40,27 +40,29 @@
/* common */
#include "exprdefs.h"
#include "filepos.h"
#include "coll.h"
/* ca65 */
#include "lineinfo.h"
/*****************************************************************************/
/* struct Fragment */
/* struct Fragment */
/*****************************************************************************/
typedef struct Fragment Fragment;
struct Fragment {
Fragment* Next; /* Pointer to next fragment in segment */
Fragment* LineList; /* List of fragments for one src line */
FilePos Pos; /* File position for this fragment */
struct LineInfo* LI; /* Extra line info */
unsigned short Len; /* Length for this fragment */
unsigned char Type; /* Fragment type */
Fragment* Next; /* Pointer to next fragment in segment */
Fragment* LineList; /* List of fragments for one src line */
Collection LI; /* Line info for this fragment */
unsigned short Len; /* Length for this fragment */
unsigned char Type; /* Fragment type */
union {
unsigned char Data[4]; /* Literal values */
ExprNode* Expr; /* Expression */
unsigned char Data[4]; /* Literal values */
ExprNode* Expr; /* Expression */
} V;
};