summaryrefslogtreecommitdiff
path: root/src/context.cc
diff options
context:
space:
mode:
authorGiles Bathgate <gilesbathgate@gmail.com>2011-02-05 15:50:39 (GMT)
committerGiles Bathgate <gilesbathgate@gmail.com>2011-02-05 16:37:30 (GMT)
commit744367fda10a756de7da503ff833fe3d75bd3dfc (patch)
tree2c17b206b27f0821c1a5de444c52bd75d354c60a /src/context.cc
parent1bc4fe5d4d7d12e9d1777221780c2ad6551aa9b0 (diff)
Proof of concept implementation of builtin constants.
Diffstat (limited to 'src/context.cc')
-rw-r--r--src/context.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/context.cc b/src/context.cc
index 4bc6ed5..65d5e23 100644
--- a/src/context.cc
+++ b/src/context.cc
@@ -84,6 +84,8 @@ Value Context::lookup_variable(QString name, bool silent) const
}
return Value();
}
+ if (!parent && constants.contains(name))
+ return constants[name];
if (variables.contains(name))
return variables[name];
if (parent)
@@ -93,6 +95,14 @@ Value Context::lookup_variable(QString name, bool silent) const
return Value();
}
+void Context::set_constant(QString name, Value value)
+{
+ if (constants.contains(name))
+ PRINTA("WARNING: Attempt to modify constant '%1'.",name);
+ else
+ constants.insert(name,value);
+}
+
Value Context::evaluate_function(QString name, const QVector<QString> &argnames, const QVector<Value> &argvalues) const
{
if (functions_p && functions_p->contains(name))
contact: Jan Huwald // Impressum