Piethon  1.0
A Python-like interpreter using flex and bison.
Public Member Functions | List of all members
Program Class Reference

#include <program.h>

Collaboration diagram for Program:
Collaboration graph

Public Member Functions

 Program (StatementList *stmtList)
 
 ~Program ()
 
int eval ()
 

Detailed Description

Definition at line 9 of file program.h.

Constructor & Destructor Documentation

◆ Program()

Program::Program ( StatementList stmtList)
inline

Definition at line 11 of file program.h.

11 : statementList(stmtList) { }

◆ ~Program()

Program::~Program ( )

Definition at line 11 of file program.cpp.

11  {
12  delete statementList;
13 }

Member Function Documentation

◆ eval()

int Program::eval ( )

Definition at line 15 of file program.cpp.

15  {
16  try {
17  // execute all statements in program
18  statementList->eval(st, ft);
19 
20  // call the main function, if defined
21  Function* main = ft["main"];
22  if (main != NULL) {
23  main->apply(st, ft);
24  }
25  } catch (ParseException e) {
26  cerr << "error (line " << e.getLineNumber() << "): " << e.what() << endl;
27  return 2;
28  } catch (ReturnValue e) {
29  cerr << "error (line " << e.getLineNumber() << "): " << "return statement outside of function" << endl;
30  return 2;
31  }
32  return 0;
33 }
int main(int argc, char **argv)
Definition: main.cpp:11
virtual int getLineNumber() const
Definition: exception.cpp:7
void eval(SymbolTable &, FunctionTable &) const
Definition: statement.cpp:103
Number apply(const SymbolTable &, const FunctionTable &, ExpressionList *) const
Definition: function.cpp:39
virtual const char * what() const
Definition: exception.cpp:3
int getLineNumber() const
Definition: exception.cpp:19

The documentation for this class was generated from the following files: