From b86a6b97490eaaf4b919c10a68a7229235f7030f Mon Sep 17 00:00:00 2001 From: cuz Date: Sun, 18 Mar 2001 17:55:36 +0000 Subject: [PATCH] Some more debuginfo implementation git-svn-id: svn://svn.cc65.org/cc65/trunk@626 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- src/ca65/dbginfo.c | 28 +++++++++++++++++++++++++++- src/ca65/filetab.h | 3 +++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/ca65/dbginfo.c b/src/ca65/dbginfo.c index 90b25c218..b921f7af8 100644 --- a/src/ca65/dbginfo.c +++ b/src/ca65/dbginfo.c @@ -86,7 +86,33 @@ void DbgInfoFile (void) void DbgInfoLine (void) /* Parse and handle LINE subcommand of the .dbg pseudo instruction */ { - ErrorSkip (ERR_NOT_IMPLEMENTED); + unsigned Index; + long LineNum; + + /* The name of the file follows */ + if (Tok != TOK_STRCON) { + ErrorSkip (ERR_STRCON_EXPECTED); + return; + } + + /* Get the index in the file table for the name */ + Index = GetFileIndex (SVal); + + /* Skip the name */ + NextTok (); + + /* Comma expected */ + ConsumeComma (); + + /* Line number */ + LineNum = ConstExpression (); + if (LineNum < 0) { + ErrorSkip (ERR_RANGE); + return; + } + + /* ## Remember the line info */ + } diff --git a/src/ca65/filetab.h b/src/ca65/filetab.h index aa331f874..22f2554bf 100644 --- a/src/ca65/filetab.h +++ b/src/ca65/filetab.h @@ -47,6 +47,9 @@ const char* GetFileName (unsigned Name); /* Get the name of a file where the name index is known */ +unsigned GetFileIndex (const char* Name); +/* Return the file index for the given file name. */ + unsigned AddFile (const char* Name, unsigned long Size, unsigned long MTime); /* Add a new file to the list of input files. Return the index of the file in * the table.