internaltesting: IF
This commit is contained in:
parent
7f98039631
commit
a21ca7e6f6
|
@ -12,3 +12,6 @@ hydfc internaltesting\testnew.out internaltesting\testnew.msg
|
||||||
|
|
||||||
cppcheck --debug internaltesting\testuse.cpp > internaltesting\testuse.msg
|
cppcheck --debug internaltesting\testuse.cpp > internaltesting\testuse.msg
|
||||||
hydfc internaltesting\testuse.out internaltesting\testuse.msg
|
hydfc internaltesting\testuse.out internaltesting\testuse.msg
|
||||||
|
|
||||||
|
cppcheck --debug internaltesting\testif.cpp > internaltesting\testif.msg
|
||||||
|
hydfc internaltesting\testif.out internaltesting\testif.msg
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
|
||||||
|
|
||||||
|
void f()
|
||||||
|
{
|
||||||
|
if (ab)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (cd)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
4 : {
|
||||||
|
5 : if
|
||||||
|
5 : use ab
|
||||||
|
6 : {
|
||||||
|
8 : }
|
||||||
|
9 : elseif
|
||||||
|
9 : use cd
|
||||||
|
10 : {
|
||||||
|
12 : }
|
||||||
|
13 : else
|
||||||
|
14 : {
|
||||||
|
16 : }
|
||||||
|
17 : }
|
31
main.cpp
31
main.cpp
|
@ -649,7 +649,7 @@ void CreateStatementList()
|
||||||
bool decl = IsName(str1) || str1[0]=='*';
|
bool decl = IsName(str1) || str1[0]=='*';
|
||||||
for (TOKEN *tok2 = decl ? tok->next : NULL; tok2; tok2 = tok2->next)
|
for (TOKEN *tok2 = decl ? tok->next : NULL; tok2; tok2 = tok2->next)
|
||||||
{
|
{
|
||||||
if (tok2->str[0] == ';' || tok2->str[0] == '.')
|
if (strchr("{};.", tok2->str[0]))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
const char *str1 = getstr(tok2, 1);
|
const char *str1 = getstr(tok2, 1);
|
||||||
|
@ -668,7 +668,7 @@ void CreateStatementList()
|
||||||
// Assign..
|
// Assign..
|
||||||
for (TOKEN *tok2 = tok; tok2; tok2 = tok2->next)
|
for (TOKEN *tok2 = tok; tok2; tok2 = tok2->next)
|
||||||
{
|
{
|
||||||
if (tok2->str[0]==';')
|
if (strchr("{};", tok2->str[0]))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
TOKEN *eq = tok2;
|
TOKEN *eq = tok2;
|
||||||
|
@ -712,7 +712,7 @@ void CreateStatementList()
|
||||||
// Delete..
|
// Delete..
|
||||||
for (TOKEN *tok2 = tok; tok2; tok2 = tok2->next)
|
for (TOKEN *tok2 = tok; tok2; tok2 = tok2->next)
|
||||||
{
|
{
|
||||||
if (tok2->str[0]==';')
|
if (strchr("{};", tok2->str[0]))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (match(tok2, "free ( var ) ;"))
|
if (match(tok2, "free ( var ) ;"))
|
||||||
|
@ -730,7 +730,7 @@ void CreateStatementList()
|
||||||
int parlevel = 0;
|
int parlevel = 0;
|
||||||
for (TOKEN *tok2 = tok; tok2; tok2 = tok2->next)
|
for (TOKEN *tok2 = tok; tok2; tok2 = tok2->next)
|
||||||
{
|
{
|
||||||
if (tok2->str[0]==';')
|
if (strchr("{};", tok2->str[0]))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (tok2->str[0] == '(')
|
if (tok2->str[0] == '(')
|
||||||
|
@ -758,7 +758,7 @@ void CreateStatementList()
|
||||||
// Return..
|
// Return..
|
||||||
for (TOKEN *tok2 = tok; tok2; tok2 = tok2->next)
|
for (TOKEN *tok2 = tok; tok2; tok2 = tok2->next)
|
||||||
{
|
{
|
||||||
if (strcmp(tok2->str,";")==0)
|
if (strchr("{};", tok2->str[0]))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (strcmp(tok2->str,"return")==0 &&
|
if (strcmp(tok2->str,"return")==0 &&
|
||||||
|
@ -796,6 +796,14 @@ void CreateStatementList()
|
||||||
std::cout << "assign " << VariableNames[s.VarIndex];
|
std::cout << "assign " << VariableNames[s.VarIndex];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case STATEMENT::MALLOC:
|
||||||
|
std::cout << "malloc " << VariableNames[s.VarIndex];
|
||||||
|
break;
|
||||||
|
|
||||||
|
case STATEMENT::FREE:
|
||||||
|
std::cout << "free " << VariableNames[s.VarIndex];
|
||||||
|
break;
|
||||||
|
|
||||||
case STATEMENT::NEW:
|
case STATEMENT::NEW:
|
||||||
std::cout << "new " << VariableNames[s.VarIndex];
|
std::cout << "new " << VariableNames[s.VarIndex];
|
||||||
break;
|
break;
|
||||||
|
@ -820,6 +828,19 @@ void CreateStatementList()
|
||||||
std::cout << "return " << VariableNames[s.VarIndex];
|
std::cout << "return " << VariableNames[s.VarIndex];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case STATEMENT::IF:
|
||||||
|
std::cout << "if";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case STATEMENT::ELSEIF:
|
||||||
|
std::cout << "elseif";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case STATEMENT::ELSE:
|
||||||
|
std::cout << "else";
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
std::cout << "ERROR. Unknown code!!";
|
std::cout << "ERROR. Unknown code!!";
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue