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 */
+
}
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.