Example #1
0
        private bool ImportVariable(Obj moduleName, Obj variableName, out Obj result)
        {
            ObjModule module = GetModule(moduleName);

            if (module == null)
            {
                result = Obj.MakeString("Could not load module");
                return(false); // Should only look up loaded modules
            }

            ObjString variable = variableName as ObjString;

            if (variable == null)
            {
                result = Obj.MakeString("Variable name must be a string");
                return(false);
            }

            int variableEntry = module.Variables.FindIndex(v => v.Name == variable.ToString());

            // It's a runtime error if the imported variable does not exist.
            if (variableEntry == -1)
            {
                result = Obj.MakeString(string.Format("Could not find a variable named '{0}' in module '{1}'.", variableName, moduleName));
                return(false);
            }

            result = module.Variables[variableEntry].Container;
            return(true);
        }
Example #2
0
        public WrenVM()
        {
            MethodNames = new List <string>();
            ObjString name = new ObjString("core");

            // Implicitly create a "core" module for the built in libraries.
            ObjModule coreModule = new ObjModule(name);

            _modules = new ObjMap();
            _modules.Set(Obj.Null, coreModule);

            CoreLibrary core = new CoreLibrary(this);

            core.InitializeCore();

            // Load in System functions
            Meta.LoadLibrary(this);
        }
Example #3
0
        public WrenVM(Action <string> write, Action <string> error)
        {
            Write = write ?? (_ => Console.WriteLine(_));
            Error = error ?? (_ => Console.Error.WriteLine(_));

            MethodNames = new List <string>();
            ObjString name = new ObjString("core");

            // Implicitly create a "core" module for the built in libraries.
            ObjModule coreModule = new ObjModule(name);

            _modules = new ObjMap();
            _modules.Set(Obj.Null, coreModule);

            CoreLibrary core = new CoreLibrary(this);

            core.InitializeCore();

            // Load in System functions
            Meta.LoadLibrary(this);
        }
Example #4
0
 public RepoString(IOut outObj, ObjString objString)
 {
     OutObj    = outObj;
     ObjString = objString;
 }
Example #5
0
 public async Task <IActionResult> DecodeKey([FromBody] ObjString obj)
 {
     return(Ok(obj.str.SecretKeyDecode()));
 }