From 570a6720a1647c29e93d99222161b0dd5c26af34 Mon Sep 17 00:00:00 2001 From: elliotth Date: Sun, 20 Apr 2008 23:21:35 +0000 Subject: [PATCH] trunk/eiffel.c: trunk/fortran.c: trunk/jscript.c: trunk/keyword.c: trunk/keyword.h: trunk/sql.c: trunk/vhdl.c: we only need one copy of analyzeToken. git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@658 c5d04d22-be80-434c-894e-aa346cc9e8e8 --- eiffel.c | 15 ++------------- fortran.c | 20 ++------------------ jscript.c | 12 +----------- keyword.c | 10 ++++++++++ keyword.h | 1 + sql.c | 12 +----------- vhdl.c | 12 +----------- 7 files changed, 18 insertions(+), 64 deletions(-) diff --git a/eiffel.c b/eiffel.c index 94a0e2b..37bd269 100644 --- a/eiffel.c +++ b/eiffel.c @@ -599,18 +599,6 @@ static void parseFreeOperator (vString *const string, const int firstChar) fileUngetc (c); /* unget non-identifier character */ } -static keywordId analyzeToken (vString *const name) -{ - vString *keyword = vStringNew (); - keywordId id; - - vStringCopyToLower (keyword, name); - id = (keywordId) lookupKeyword (vStringValue (keyword), Lang_eiffel); - vStringDelete (keyword); - - return id; -} - static void readToken (tokenInfo *const token) { int c; @@ -719,7 +707,8 @@ getNextChar: if (isalpha (c)) { parseIdentifier (token->string, c); - token->keyword = analyzeToken (token->string); + token->keyword = + analyzeToken (token->string, Lang_eiffel); if (isKeyword (token, KEYWORD_NONE)) token->type = TOKEN_IDENTIFIER; else diff --git a/fortran.c b/fortran.c index 97bcc99..fc43493 100644 --- a/fortran.c +++ b/fortran.c @@ -864,22 +864,6 @@ static void parseIdentifier (vString *const string, const int firstChar) ungetChar (c); /* unget non-identifier character */ } -/* Analyzes the identifier contained in a statement described by the - * statement structure and adjusts the structure according the significance - * of the identifier. - */ -static keywordId analyzeToken (vString *const name) -{ - vString *keyword = vStringNew (); - keywordId id; - - vStringCopyToLower (keyword, name); - id = (keywordId) lookupKeyword (vStringValue (keyword), Lang_fortran); - vStringDelete (keyword); - - return id; -} - static void checkForLabel (void) { tokenInfo* token = NULL; @@ -912,7 +896,7 @@ static void checkForLabel (void) static void readIdentifier (tokenInfo *const token, const int c) { parseIdentifier (token->string, c); - token->keyword = analyzeToken (token->string); + token->keyword = analyzeToken (token->string, Lang_fortran); if (! isKeyword (token, KEYWORD_NONE)) token->type = TOKEN_KEYWORD; else @@ -921,7 +905,7 @@ static void readIdentifier (tokenInfo *const token, const int c) if (strncmp (vStringValue (token->string), "end", 3) == 0) { vString *const sub = vStringNewInit (vStringValue (token->string) + 3); - const keywordId kw = analyzeToken (sub); + const keywordId kw = analyzeToken (sub, Lang_fortran); vStringDelete (sub); if (kw != KEYWORD_NONE) { diff --git a/jscript.c b/jscript.c index 7fb0bf3..11ce693 100644 --- a/jscript.c +++ b/jscript.c @@ -332,16 +332,6 @@ static void parseIdentifier (vString *const string, const int firstChar) fileUngetc (c); /* unget non-identifier character */ } -static keywordId analyzeToken (vString *const name) -{ - vString *keyword = vStringNew (); - keywordId result; - vStringCopyToLower (keyword, name); - result = (keywordId) lookupKeyword (vStringValue (keyword), Lang_js); - vStringDelete (keyword); - return result; -} - static void readToken (tokenInfo *const token) { int c; @@ -432,7 +422,7 @@ getNextChar: parseIdentifier (token->string, c); token->lineNumber = getSourceLineNumber (); token->filePosition = getInputFilePosition (); - token->keyword = analyzeToken (token->string); + token->keyword = analyzeToken (token->string, Lang_js); if (isKeyword (token, KEYWORD_NONE)) token->type = TOKEN_IDENTIFIER; else diff --git a/keyword.c b/keyword.c index bb0b849..120b6d9 100644 --- a/keyword.c +++ b/keyword.c @@ -192,6 +192,16 @@ extern void freeKeywordTable (void) } } +extern int analyzeToken (vString *const name, langType language) +{ + vString *keyword = vStringNew (); + int result; + vStringCopyToLower (keyword, name); + result = lookupKeyword (vStringValue (keyword), language); + vStringDelete (keyword); + return result; +} + #ifdef DEBUG static void printEntry (const hashEntry *const entry) diff --git a/keyword.h b/keyword.h index 33e6e0f..5fa2947 100644 --- a/keyword.h +++ b/keyword.h @@ -27,6 +27,7 @@ extern void freeKeywordTable (void); #ifdef DEBUG extern void printKeywordTable (void); #endif +extern int analyzeToken (vString *const name, langType language); #endif /* _KEYWORD_H */ diff --git a/sql.c b/sql.c index e4f8ddf..87510f5 100644 --- a/sql.c +++ b/sql.c @@ -511,16 +511,6 @@ static void parseIdentifier (vString *const string, const int firstChar) fileUngetc (c); /* unget non-identifier character */ } -static keywordId analyzeToken (vString *const name) -{ - vString *keyword = vStringNew (); - keywordId result; - vStringCopyToLower (keyword, name); - result = (keywordId) lookupKeyword (vStringValue (keyword), Lang_sql); - vStringDelete (keyword); - return result; -} - static void readToken (tokenInfo *const token) { int c; @@ -654,7 +644,7 @@ getNextChar: parseIdentifier (token->string, c); token->lineNumber = getSourceLineNumber (); token->filePosition = getInputFilePosition (); - token->keyword = analyzeToken (token->string); + token->keyword = analyzeToken (token->string, Lang_sql); if (isKeyword (token, KEYWORD_rem)) { vStringClear (token->string); diff --git a/vhdl.c b/vhdl.c index c58b312..b379f0e 100644 --- a/vhdl.c +++ b/vhdl.c @@ -410,16 +410,6 @@ static void parseIdentifier (vString * const string, const int firstChar) fileUngetc (c); /* unget non-identifier character */ } -static keywordId analyzeToken (vString * const name) -{ - vString *keyword = vStringNew (); - keywordId result; - vStringCopyToLower (keyword, name); - result = (keywordId) lookupKeyword (vStringValue (keyword), Lang_vhdl); - vStringDelete (keyword); - return result; -} - static void readToken (tokenInfo * const token) { int c; @@ -487,7 +477,7 @@ static void readToken (tokenInfo * const token) parseIdentifier (token->string, c); token->lineNumber = getSourceLineNumber (); token->filePosition = getInputFilePosition (); - token->keyword = analyzeToken (token->string); + token->keyword = analyzeToken (token->string, Lang_vhdl); if (isKeyword (token, KEYWORD_NONE)) token->type = TOKEN_IDENTIFIER; else