Я предоставляю пользователю возможность вводить строки с уникальными ключами, которые представляют собой комплексный оператор с одной строкой C# (одна строка кода типа '2 + (a - (x & & y? 1: 7))»Оператор может использовать Nullable<bool>
и Nullable<double>
переменные В начале у меня есть Dictionary<string, object>
предопределенных значений Пользователь может использовать эти переменные и стандартный C# операторы:... +, -, *, /, & &, ||,(),(),>,> =, <, < =, ==,! =,? A: b, ??.C# динамическая компиляция и генерация кода
Мне нужно повторно использовать C# операторы приоритетного механизма и ошибки компиляции, предупреждения и сообщения (которые идут на вывод после компиляции)
- как скомпилировать строку ввода и получить сообщения об ошибках?
- Как предопределить переменные, которые использовались в строке, перед компиляцией (генерировать код, например
var x = new Nullable<bool>(true);
или что-то другое)? - можно ли получать сообщения об ошибках на русском языке?
- Могу ли я сохранить результат компиляции для улучшения производительности (функция будет вызываться несколько раз позже)?