Complete redesign of line info generation. Uses spans instead of a fragment

list as before.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5162 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz
2011-08-14 19:23:16 +00:00
parent e67c802193
commit b8549f0af8
11 changed files with 375 additions and 279 deletions

View File

@@ -49,7 +49,18 @@
/*****************************************************************************/
/* Code */
/* Data */
/*****************************************************************************/
/* The current line info */
static LineInfo* CurLineInfo = 0;
/*****************************************************************************/
/* Code */
/*****************************************************************************/
@@ -99,11 +110,16 @@ void DbgInfoLine (void)
long Line;
FilePos Pos = STATIC_FILEPOS_INITIALIZER;
/* Any new line info terminates the last one */
if (CurLineInfo) {
EndLine (CurLineInfo);
CurLineInfo = 0;
}
/* If a parameters follow, this is actual line info. If no parameters
* follow, the last line info is terminated.
*/
if (CurTok.Tok == TOK_SEP) {
ClearLineInfo (LI_SLOT_EXT);
return;
}
@@ -133,8 +149,8 @@ void DbgInfoLine (void)
}
Pos.Line = Line;
/* Remember the line info */
GenLineInfo (LI_SLOT_EXT, &Pos);
/* Generate a new external line info */
CurLineInfo = StartLine (&Pos, LI_TYPE_EXT, 0);
}