Esempio n. 1
0
        public AppCore(Config config)
        {
            _config = config;

            var initialSourceCode = "";
            {
                try
                {
                    initialSourceCode = _config.LoadCodeTemplate();
                }
                catch
                {
                    _config.IsFileMonitoring   = false;
                    _config.MonitoringFilePath = "";
                }
            }

            var compiler     = new Compiler();
            var disassembler = new JitDisassembler("JitDasm/JitDasm.exe");

            BuildingUnit = new BuildingUnit(_config, compiler, disassembler)
            {
                SourceCode = initialSourceCode
            }
            .AddTo(_Trashes);

            var fileMonitor = new FileMonitor(_config).AddTo(_Trashes);

            fileMonitor.MonitoringFileChanged += (_, __) => LoadMonitoringFile();

            _config.ObserveProperty(x => x.MonitoringFilePath)
            .Subscribe(_ => LoadMonitoringFile())
            .AddTo(_Trashes);
        }
Esempio n. 2
0
        public AppContext(Config config)
        {
            _config = config;

            var sourceCode = "";
            {
                try
                {
                    sourceCode = _config.LoadCodeTemplate();
                }
                catch
                {
                    _config.IsFileMonitoring   = false;
                    _config.MonitoringFilePath = "";
                }
            }

            var compiler     = new Compiler();
            var disassembler = new JitDisassembler("JitDasm/JitDasm.exe");

            BuildingUnit = new BuildingUnit(_config, compiler, disassembler)
            {
                SourceCode = sourceCode
            };

            SetupFileMonitoring();

            _config.ObserveProperty(x => x.MonitoringFilePath)
            .Subscribe(_ => LoadMonitoringFile())
            .AddTo(_Trashes);
        }
Esempio n. 3
0
        public void Ok()
        {
            const string sourceCode = @"
namespace TestNameSpace
{
public class TestClass
{
    public int TestMethod(int a, int b, int c)
    {
        return (a + b) * c;
    }
}
}";

            var compiler      = new Compiler();
            var compileResult = compiler.Run("source.cs", sourceCode, true);

            var disassembler = new JitDisassembler("../../../../externals/JitDasm/JitDasm/bin/Release/netcoreapp3.0/JitDasm.exe");
            var result       = disassembler.Run("source.cs", sourceCode, compileResult.AssembleImage, true);

            Assert.True(result.IsOk);
        }