--- /dev/null
+package org.simantics.scl.expressions;\r
+\r
+/**\r
+ * Describes an environment for evaluating expressions.\r
+ * The description includes the names and types of the\r
+ * environment variables, but not necessarily the values.\r
+ * The values are obtained using the ContextualValues\r
+ * given by successfully resolved variables. \r
+ * @author Hannu Niemistö\r
+ * @param <Context>\r
+ */\r
+public interface EnvironmentDescription<Context> {\r
+ /**\r
+ * Tries to resolve an environment variable\r
+ * with a given name. Returns <code>null</code>\r
+ * if there is no such variable. If variable is\r
+ * found, returns ContextualValue that can be\r
+ * used to obtain the value of the environment \r
+ * variable with a suitable context.\r
+ * @param name\r
+ * @return\r
+ */\r
+ ContextualValue<Context> resolve(String name);\r
+}\r