token : Updated the "Match" function so it can check the variable id

This commit is contained in:
Daniel Marjamäki 2008-12-09 07:25:44 +00:00
parent 20e28bb687
commit f839b11c11
2 changed files with 11 additions and 2 deletions

View File

@ -141,7 +141,7 @@ int TOKEN::multiCompare( const char *needle, const char *haystack )
} }
bool TOKEN::Match(const TOKEN *tok, const char pattern[], const char *varname1[], const char *varname2[]) bool TOKEN::Match(const TOKEN *tok, const char pattern[], const char *varname1[], const char *varname2[], unsigned int varid)
{ {
if (!tok) if (!tok)
return false; return false;
@ -209,6 +209,12 @@ bool TOKEN::Match(const TOKEN *tok, const char pattern[], const char *varname1[]
} }
} }
else if (strcmp(str,"%varid%")==0)
{
if ( tok->varId() != varid )
return false;
}
else if (strcmp(str,"%num%")==0) else if (strcmp(str,"%num%")==0)
{ {
if ( ! tok->isNumber() ) if ( ! tok->isNumber() )

View File

@ -69,6 +69,9 @@ public:
* "%var%" any token which is a name or type e.g. "hello" or "int" * "%var%" any token which is a name or type e.g. "hello" or "int"
* "%num%" Any numeric token, e.g. "23" * "%num%" Any numeric token, e.g. "23"
* "%str%" Any token starting with "-character (C-string). * "%str%" Any token starting with "-character (C-string).
* "%var1%" Match with parameter varname1
* "%var2%" Match with parameter varname2
* "%varid%" Match with parameter varid
* "[abc]" Any of the characters 'a' or 'b' or 'c' * "[abc]" Any of the characters 'a' or 'b' or 'c'
* "int|void|char" Any of the strings, int, void or char * "int|void|char" Any of the strings, int, void or char
* "int|void|char|" Any of the strings, int, void or char or empty string * "int|void|char|" Any of the strings, int, void or char or empty string
@ -88,7 +91,7 @@ public:
* @return true if given token matches with given pattern * @return true if given token matches with given pattern
* false if given token does not match with given pattern * false if given token does not match with given pattern
*/ */
static bool Match(const TOKEN *tok, const char pattern[], const char *varname1[]=0, const char *varname2[]=0); static bool Match(const TOKEN *tok, const char pattern[], const char *varname1[]=0, const char *varname2[]=0, unsigned int varid=0);
bool isName() const; bool isName() const;
bool isNumber() const; bool isNumber() const;