public class Test
{
public double alpha;
public double beta;
}
Реализация собственного движка скриптов. Что посоветуете
Есть объект класса:
Код:
Есть многострочный TextBox с содержимым (к примеру):
Код:
if [alpha].is_double? then [alpha] = 3.14
if [beta].is_double? then [beta] = 2.0
[alpha] = (([alpha] - [beta]) ^ 4) * (-2)
[beta] = [alpha] % [beta] + 1
if [beta].is_double? then [beta] = 2.0
[alpha] = (([alpha] - [beta]) ^ 4) * (-2)
[beta] = [alpha] % [beta] + 1
При вызове определенной функции, в которую будет передан объект класса, будет считано содержимое TextBox'а и, в соответствии с ним, над соответствующими полями будут проведены указанные операции.
Как подобное реализовать? Желательно без использования SQL (видеть его не могу), но если это будет наиболее простой путь - сойдет и он.
В идеале - интерпретатор C#.
В итоге это будет софтина для массовой правки содержимого двоичных файлов.
Цитата: EqKeeper
В идеале - интерпретатор C#.
Коротко тут полный ответ не дать. Гугли калькуляторы. Исходников в интернетах полно.
Формат будет именно в таком виде?
Код:
if [alpha].is_double? then [alpha] = 3.14
if [beta].is_double? then [beta] = 2.0
[alpha] = (([alpha] - [beta]) ^ 4) * (-2)
[beta] = [alpha] % [beta] + 1
if [beta].is_double? then [beta] = 2.0
[alpha] = (([alpha] - [beta]) ^ 4) * (-2)
[beta] = [alpha] % [beta] + 1
Если да, то придётся самому писать что-то типа парсера. И регулярками здесь не обойтись.
А если задавать выражения в синтаксисе шарпа, то можно использовать компилятор самого шарпа, и не изобретать велосипед.
Compiler Class - is now obsolete (устарел), но с ним можно найти много примеров, даже на коднете вроде были.
CSharpCodeProvider Class - новый рекомендуемый класс.
Цитата: EqKeeper
Желательно без использования SQL
Имеется в виду LINQ?
Цитата: EqKeeper
При вызове определенной функции, в которую будет передан объект класса, будет считано содержимое TextBox'а и, в соответствии с ним, над соответствующими полями будут проведены указанные операции.
Можно захостить Nemerle, JScript, IronPython, IronRuby или же вообще Lua, как вариант просто компилировать код на C#.
Цитата: EqKeeper
В итоге это будет софтина для массовой правки содержимого двоичных файлов.
Вообще WinHEX умел таковое делать.