summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Moore <Robert.Moore@intel.com>2012-03-29 13:11:15 -0700
committerRobert Moore <Robert.Moore@intel.com>2012-03-29 13:11:15 -0700
commite97fd500e5edc81a94ba549b29b21bf1c963937b (patch)
tree4a58c297d3e8ab8c1370dfaa3346db329c834a8d
parent1522d692217c58207110390288d68c789a0b8f11 (diff)
iASL: Cleanup #line handling code.
Miscellaneous cleanup; Remove debug output code.
-rw-r--r--source/compiler/aslcompiler.l33
1 files changed, 16 insertions, 17 deletions
diff --git a/source/compiler/aslcompiler.l b/source/compiler/aslcompiler.l
index 1b8676b29..e08003143 100644
--- a/source/compiler/aslcompiler.l
+++ b/source/compiler/aslcompiler.l
@@ -135,7 +135,7 @@ YYSTYPE AslCompilerlval;
/* Local prototypes */
void
-AslDoLineDirective (char *Line);
+AslDoLineDirective (void);
char
comment (void);
char
@@ -190,9 +190,16 @@ NamePathTail [.]{NameSeg}
count (1); return (PARSEOP_INTEGER); }
"Include" { count (1); return (PARSEOP_INCLUDE); }
-"#line" { count (1); AslDoLineDirective ((char *) AslCompilertext);}
"External" { count (1); return (PARSEOP_EXTERNAL); }
+ /*
+ * The #line directive is emitted by the preprocessor and handled
+ * here in the main iASL lexer - simply set the line number and
+ * optionally the current filename.
+ */
+"#line" { AslDoLineDirective ();}
+
+
/****************************************************************************
*
* Main ASL operators
@@ -724,7 +731,7 @@ ASL_FILE_NODE *InputStack = NULL;
*
* FUNCTION: AslDoLineDirective
*
- * PARAMETERS: Line - Current input line
+ * PARAMETERS: None. Uses input() to access current source code line
*
* RETURN: Updates global line number and filename
*
@@ -739,7 +746,7 @@ ASL_FILE_NODE *InputStack = NULL;
void
AslDoLineDirective (
- char *Line)
+ void)
{
char c;
char *Token;
@@ -749,7 +756,6 @@ AslDoLineDirective (
/* Eat the entire line that contains the #line directive */
- ResetCurrentLineBuffer ();
while ((c = (char) input()) != '\n' && c != EOF)
{
InsertLineBuffer (c);
@@ -764,28 +770,24 @@ AslDoLineDirective (
goto ResetAndExit;
}
- /* Convert line number. (-1) to handle _this_ line */
+ /* Convert line number. Subtract one to handle _this_ line */
LineNumber = (UINT32) UtDoConstant (Token);
- LineNumber--;
- FlSetLineNumber (LineNumber);
- printf ("#line %6s %6u", Token, LineNumber);
+ FlSetLineNumber (LineNumber - 1);
- /* Second argument is the optional filename */
+ /* Second argument is the optional filename (in double quotes) */
Token = strtok (NULL, " \"");
if (Token)
{
- printf (" Filename: %s", Token);
Filename = ACPI_ALLOCATE_ZEROED (strlen (Token) + 1);
strcpy (Filename, Token);
FlSetFilename (Filename);
}
- /* Third argument is not supported */
+ /* Third argument is not supported at this time */
ResetAndExit:
- printf ("\n");
ResetCurrentLineBuffer ();
}
@@ -815,7 +817,6 @@ AslPopInputFileStack (
Fnode = InputStack;
DbgPrint (ASL_PARSE_OUTPUT, "\nPop InputFile Stack, Fnode %p\n\n", Fnode);
-
if (!Fnode)
{
return -1;
@@ -1132,7 +1133,7 @@ EarlyEOF:
/*******************************************************************************
*
- * FUNCTION: comment
+ * FUNCTION: comment2
*
* PARAMETERS: none
*
@@ -1440,5 +1441,3 @@ BufferOverflow:
Gbl_Files[ASL_FILE_INPUT].Filename, "Max length 4096");
return (FALSE);
}
-
-