Fixed a problem with conditional assembly. The assembler did not check if end
of lined was reached after a .IF/.ELSE/... This could lead to invalid input accepted without an error message. git-svn-id: svn://svn.cc65.org/cc65/trunk@2947 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
/* */
|
||||
/* */
|
||||
/* */
|
||||
/* (C) 2000-2003 Ullrich von Bassewitz */
|
||||
/* (C) 2000-2004 Ullrich von Bassewitz */
|
||||
/* R<>merstra<72>e 52 */
|
||||
/* D-70794 Filderstadt */
|
||||
/* EMail: uz@cc65.org */
|
||||
@@ -419,15 +419,12 @@ void Consume (enum Token Expected, const char* ErrMsg)
|
||||
void ConsumeSep (void)
|
||||
/* Consume a separator token */
|
||||
{
|
||||
/* Accept an EOF as separator */
|
||||
if (Tok != TOK_EOF) {
|
||||
if (Tok != TOK_SEP) {
|
||||
Error ("Unexpected trailing garbage characters");
|
||||
SkipUntilSep ();
|
||||
}
|
||||
if (Tok == TOK_SEP) {
|
||||
NextTok ();
|
||||
}
|
||||
/* We expect a separator token */
|
||||
ExpectSep ();
|
||||
|
||||
/* If we have one, skip it */
|
||||
if (Tok == TOK_SEP) {
|
||||
NextTok ();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -467,6 +464,18 @@ void SkipUntilSep (void)
|
||||
|
||||
|
||||
|
||||
void ExpectSep (void)
|
||||
/* Check if we've reached a line separator, and output an error if not. Do
|
||||
* not skip the line separator.
|
||||
*/
|
||||
{
|
||||
if (!TokIsSep (Tok)) {
|
||||
ErrorSkip ("Unexpected trailing garbage characters");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void EnterRawTokenMode (void)
|
||||
/* Enter raw token mode. In raw mode, token handling functions are not
|
||||
* executed, but the function tokens are passed untouched to the upper
|
||||
|
||||
Reference in New Issue
Block a user