aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2012-11-14 05:39:42 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2012-11-14 05:39:42 +0100
commit399cc7a1ab9751fdbbeae3507e8612dbbbc99f5b (patch)
tree3dbfad8745030612a75d916dda84b34e9827042f
parentb70a8d708aba00b285e8a58c6583b65249e7a63e (diff)
downloadsciteco-399cc7a1ab9751fdbbeae3507e8612dbbbc99f5b.tar.gz
expressions.find_op(), can be used test whether we are in a loop (although that's inefficient)
-rw-r--r--expressions.cpp12
-rw-r--r--expressions.h2
2 files changed, 14 insertions, 0 deletions
diff --git a/expressions.cpp b/expressions.cpp
index d9c5a1e..ac06b43 100644
--- a/expressions.cpp
+++ b/expressions.cpp
@@ -163,6 +163,18 @@ Expressions::args(void)
}
int
+Expressions::find_op(Operator op)
+{
+ int items = operators.items();
+
+ for (int i = 1; i <= items; i++)
+ if (operators.peek(i) == op)
+ return i;
+
+ return 0;
+}
+
+int
Expressions::first_op(void)
{
int items = operators.items();
diff --git a/expressions.h b/expressions.h
index af501bb..5d2aa0c 100644
--- a/expressions.h
+++ b/expressions.h
@@ -170,6 +170,8 @@ public:
void discard_args(void);
+ int find_op(Operator op);
+
private:
void calc(void);