summaryrefslogtreecommitdiff
path: root/2003/i/buzz/src/automate/expression.h
diff options
context:
space:
mode:
Diffstat (limited to '2003/i/buzz/src/automate/expression.h')
-rw-r--r--2003/i/buzz/src/automate/expression.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/2003/i/buzz/src/automate/expression.h b/2003/i/buzz/src/automate/expression.h
new file mode 100644
index 0000000..c349bed
--- /dev/null
+++ b/2003/i/buzz/src/automate/expression.h
@@ -0,0 +1,48 @@
+#ifndef expression_h
+#define expression_h
+// expression.h
+// buzz - Programme du robot Efrei Robotique I1-I2 2003
+// Copyright (C) 2003 Nicolas Schodet
+#include "expression.h"
+
+namespace Automate
+{
+ class Expression
+ {
+ public:
+ // Destructeur.
+ virtual ~Expression ();
+ // Retourne la valeur de l'expression.
+ virtual int val (void) = 0;
+ };
+
+ class ExpressionNum : public Expression
+ {
+ int m_num;
+ public:
+ // Constructeur.
+ ExpressionNum (int num) { m_num = num; }
+ // Destructeur.
+ ~ExpressionNum ();
+ // Retourne la valeur de l'expression.
+ int val (void);
+ };
+
+ class ExpressionNumOp : public Expression
+ {
+ char m_op;
+ Expression *m_left, *m_right;
+ public:
+ // Constructeurs.
+ ExpressionNumOp (Expression *left, char op, Expression *right)
+ { m_left = left; m_op = op; m_right = right; }
+ ExpressionNumOp (char op, Expression *right)
+ { m_left = 0; m_op = op; m_right = right; }
+ // Destructeur.
+ ~ExpressionNumOp ();
+ // Retourne la valeur de l'expression.
+ int val (void);
+ };
+}
+
+#endif // expression_h