-
Notifications
You must be signed in to change notification settings - Fork 0
/
Statement.cpp
63 lines (52 loc) · 1.66 KB
/
Statement.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/*-------------------------------------------------------------------------*
*--- ---*
*--- Statement.cpp ---*
*--- ---*
*--- This file defines members for a base class and derived ---*
*--- classes for a subset of the Python's statements. ---*
*--- ---*
*--- ---- ---- ---- ---- ---- ---- ---- ---- ---*
*--- ---*
*--- Version 1a 2018 May 16 Joseph Phillips ---*
*--- ---*
*-------------------------------------------------------------------------*/
#include "ourPython.h"
// PURPOSE: To release the resources of '*this'. No parameters. No return
// value.
Statement::~Statement ()
{
}
// PURPOSE: To add another IfThenElseStatement with condition '*condPtr'
// and then statement '*thenPtr' at the end of the else chain. No
// return value.
void IfThenElseStatement::appendElif
(Expression* condPtr,
Statement* thenPtr
)
{
// I. Application validity check:
if ( (condPtr == NULL) || (thenPtr == NULL) )
throw Exception("BUG: Attempt to append NULL as elif clause");
// II. Append ifel:
if (elsePtr_ == NULL)
elsePtr_ = new IfThenElseStatement(condPtr,thenPtr);
else
elsePtr_->appendElif(condPtr,thenPtr);
// III. Finished:
}
// PURPOSE: To add final else statement '*elsePtr' at the end of the else
// chain. No return value.
void IfThenElseStatement::appendElse
(Statement* elsePtr
)
{
// I. Application validity check:
if (elsePtr == NULL)
throw Exception("BUG: Attempt to append NULL as else clause");
// II. Append else:
if (elsePtr_ == NULL)
elsePtr_ = elsePtr;
else
elsePtr_->appendElse(elsePtr);
// III. Finished:
}