summaryrefslogtreecommitdiff
path: root/2003/i/buzz/src/automate/expression.cc
blob: f963f939f198f84195056e92eaf34207319163dd (plain)
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
64
// expression.cc
// buzz - Programme du robot Efrei Robotique I1-I2 2003
// Copyright (C) 2003 Nicolas Schodet
//
#include "expression.h"

namespace Automate
{

// Destructeur.
Expression::~Expression ()
{
}

// Destructeur.
ExpressionNum::~ExpressionNum ()
{
}

// Retourne la valeur de l'expression.
int
ExpressionNum::val (void)
{
    return m_num;
}

// Destructeur.
ExpressionNumOp::~ExpressionNumOp ()
{
    if (m_left) delete m_left;
    if (m_right) delete m_right;
}

// Retourne la valeur de l'expression.
int
ExpressionNumOp::val (void)
{
    switch (m_op)
      {
      case '-':
	return m_left->val () - m_right->val ();
      case '+':
	return m_left->val () + m_right->val ();
      case '*':
	return m_left->val () * m_right->val ();
      case 'n':
	return -m_right->val ();
      }
    return 0;
}

int
ExpressionIaVar::val (void)
{
    return Ia::getInstance ().getVar (m_var);
}

int
ExpressionPalets::val (void)
{
    int p = Busp::getInstance ().getCapteurs ().get ();
}

}