Прежде всего, теперь полностью реализована возможность писать свои расширения для языка.
Для примера написано два расширения - первое добавляет в язык условный оператор, второй - булевые функции(equals, not, and, or, xor).
Что бы показать, насколько просто выглядит расширение языка, приведу как выглядит вновьсотваренный оператор if:
- Код: Выделить всё
namespace XTX.library
{
class If
{
IRunTime w;
public If(IRunTime _w)
{
if (_w == null)
throw new ArgumentNullException();
w = _w;
}
[RegisterAction()]
object @if(XmlNode e)
{
object condition;
condition = w.warn_null(w.handle(w.xmlFirstChild(e)));
int i = w.cast<bool>(condition) ? 1 : 2;
XmlNode n = w.xmlChild(e, i);
if (n == null)
return null;
return w.handle(n);
}
}
}