From 8e1f81110a3d469fb4b223d21018ccd5fb614927 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Fri, 17 Apr 2009 14:20:44 -0700 Subject: [PATCH] preproc: make $ and $$ TOKEN_OTHER Recognize $ and $$ as TOKEN_OTHER; they aren't really either TOK_NUMBER nor TOK_ID, even though we have traditionally considered them TOK_NUMBER. Signed-off-by: H. Peter Anvin --- preproc.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/preproc.c b/preproc.c index 9a03f02d..c6e0fb60 100644 --- a/preproc.c +++ b/preproc.c @@ -874,7 +874,7 @@ static Token *tokenize(char *line) /* type = -1; */ } } else if (p[0] == '$' && p[1] == '$') { - type = TOK_NUMBER; + type = TOK_OTHER; /* TOKEN_BASE */ p += 2; } else if (isnumstart(*p)) { bool is_hex = false; @@ -935,12 +935,16 @@ static Token *tokenize(char *line) } p--; /* Point to first character beyond number */ - if (has_e && !is_hex) { - /* 1e13 is floating-point, but 1e13h is not */ - is_float = true; + if (p == line+1 && *line == '$') { + type = TOK_OTHER; /* TOKEN_HERE */ + } else { + if (has_e && !is_hex) { + /* 1e13 is floating-point, but 1e13h is not */ + is_float = true; + } + + type = is_float ? TOK_FLOAT : TOK_NUMBER; } - - type = is_float ? TOK_FLOAT : TOK_NUMBER; } else if (nasm_isspace(*p)) { type = TOK_WHITESPACE; p++; -- 2.11.4.GIT