Spelling: availAble;

Added information about what parameter an error occured in;
Conversion to string no longer results in [[typeName()]], it gives an error instead.

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@721 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
twanvl
2007-09-20 21:52:26 +00:00
parent 165a112339
commit 458062fa37
7 changed files with 25 additions and 9 deletions
+1 -1
View File
@@ -131,7 +131,7 @@ ScriptValueP Context::eval(const Script& script, bool useScope) {
const Instruction* instr_bt = script.backtraceSkip(instr - i.data - 2, i.data);
// have we have reached the name
if (instr_bt) {
throw ScriptError(e.what() + _("\n in function: ") + script.instructionName(instr_bt));
throw ScriptError(_ERROR_2_("in function", e.what(), script.instructionName(instr_bt)));
} else {
throw e; // rethrow
}
+12 -3
View File
@@ -62,6 +62,15 @@
// ----------------------------------------------------------------------------- : Parameters
template <typename Type>
inline Type from_script(const ScriptValueP& v, const String& str) {
try {
return from_script<Type>(v);
} catch (ScriptError& e) {
throw ScriptError(_ERROR_2_("in parameter", str, e.what()));
}
}
/// Retrieve a parameter to a SCRIPT_FUNCTION with the given name and type
/** Usage:
* @code
@@ -75,7 +84,7 @@
#define SCRIPT_PARAM(Type, name) \
SCRIPT_PARAM_N(Type, _(#name), name)
#define SCRIPT_PARAM_N(Type, str, name) \
Type name = from_script<Type>(ctx.getVariable(str))
Type name = from_script<Type>(ctx.getVariable(str), str)
/// Retrieve an optional parameter
/** Usage:
@@ -102,7 +111,7 @@
#define SCRIPT_OPTIONAL_PARAM_N_(Type, str, name) \
ScriptValueP name##_ = ctx.getVariableOpt(str); \
Type name = name##_ && name##_ != script_nil \
? from_script<Type>(name##_) : Type();
? from_script<Type>(name##_, str) : Type();
/// Retrieve an optional parameter with a default value
#define SCRIPT_PARAM_DEFAULT(Type, name, def) \
@@ -110,7 +119,7 @@
/// Retrieve a named optional parameter with a default value
#define SCRIPT_PARAM_DEFAULT_N(Type, str, name, def) \
ScriptValueP name##_ = ctx.getVariableOpt(str); \
Type name = name##_ ? from_script<Type>(name##_) : def
Type name = name##_ ? from_script<Type>(name##_, str) : def
// ----------------------------------------------------------------------------- : Rules
+1 -1
View File
@@ -14,7 +14,7 @@
// ----------------------------------------------------------------------------- : ScriptValue
// Base cases
ScriptValue::operator String() const { return _("[[") + typeName() + _("]]"); }
ScriptValue::operator String() const { throw ScriptError(_ERROR_2_("can't convert", typeName(), _TYPE_("string" ))); }
ScriptValue::operator int() const { throw ScriptError(_ERROR_2_("can't convert", typeName(), _TYPE_("integer" ))); }
ScriptValue::operator double() const { throw ScriptError(_ERROR_2_("can't convert", typeName(), _TYPE_("double" ))); }
ScriptValue::operator Color() const { throw ScriptError(_ERROR_2_("can't convert", typeName(), _TYPE_("color" ))); }