public DecompilerLookup(ScriptEngineDefinition definition) { m_functionOpCodeLookup = new Dictionary <short, ExpressionReference>(); m_globalOpCodeLookup = new Dictionary <short, Global>(); // Type casters foreach (ExtendedTypeBase t in definition.ExtendedTypes) { foreach (InternalFunction f in t.ExplicitCasters) { m_functionOpCodeLookup.Add(f.OperationCode, new CasterReference(/*f*/)); } } // Special usage functions for (int i = 0; i < (int)FunctionSpecification.SupiFunctionCount; i++) { InternalFunction sf = definition.SpecificFunctions[i]; m_functionOpCodeLookup.Add(sf.OperationCode, new OperatorReference(sf)); } // Recurse through namespaces foreach (Namespace ns in definition.Namespaces) { CreateLookup(ns, null); } }
public static ScriptingAssembly Decompile(byte[] scriptNodeData, ScriptEngineDefinition engineDefinition, string[] tagList, ScenarioBase scnr) { s_nodeDataReader = new BinaryReader(new MemoryStream(scriptNodeData, 56, scriptNodeData.Length - 56, false)); s_globals = new List <NodeBase>(); s_scripts = new List <NodeBase>(); s_engineDefinition = engineDefinition; s_tagList = tagList; s_scnr = scnr; ScenarioScriptGlobal[] scnrGlobals = s_scnr.GetScriptGlobals(); ScenarioScript[] scnrScripts = s_scnr.GetScripts(); foreach (ScenarioScriptGlobal g in scnrGlobals) { CompiledScriptNode cnode = new CompiledScriptNode(g.InitialisationExpressionIndex, s_nodeDataReader); s_globals.Add(new VariableNode(g.Name, g.Type, DecompileNode(cnode))); } foreach (ScenarioScript s in scnrScripts) { CompiledScriptNode cnode = new CompiledScriptNode(s.RootExpressionIndex, s_nodeDataReader); s_scripts.Add(new ScriptNode(s.Name, (ScriptType)s.ScriptType, s.ReturnType, DecompileNode(cnode).Children)); } ScriptingAssembly assembly = new ScriptingAssembly(s_engineDefinition, s_globals, s_scripts); s_nodeDataReader = null; s_globals = null; s_scripts = null; s_engineDefinition = null; s_tagList = null; s_scnr = null; return(assembly); }
public void LoadScriptEngineDefinition(ScriptEngineDefinition def) { m_scriptEngineDefinition = def; m_scriptEngineDefinition.CreateNamespaceLookup(); }
public DynamicScriptProcessor(ScriptEngineDefinition engineDefinition) { m_engineDefinition = engineDefinition; }
public ScriptingAssembly(ScriptEngineDefinition engineDefinition) : this(engineDefinition, new List <NodeBase>(), new List <NodeBase>()) { }
public ScriptingAssembly(ScriptEngineDefinition engineDefinition, List <NodeBase> globals, List <NodeBase> scripts) { m_engineDefinition = engineDefinition; m_namespaces = new List <NamespaceNode>(); m_namespaces.Add(new NamespaceNode(globals, scripts)); }
public EditorLookup(ScriptEngineDefinition definition) { }
protected VisitorProcessorBase(ScriptingAssembly assembly) { m_assembly = assembly; m_engineDefinition = assembly.EngineDefinition; }