public static TES5EventCodeBlock CreateEventCodeBlock(TES5FunctionScope functionScope, TES5GlobalScope globalScope) { InferEventBlockContainingType(functionScope.BlockName, globalScope); TES5CodeScope codeScope = TES5CodeScopeFactory.CreateCodeScopeRoot(functionScope); TES5EventCodeBlock newBlock = new TES5EventCodeBlock(functionScope, codeScope); return(newBlock); }
public static TES5StateCodeBlock CreateState(string name, bool auto) { TES5FunctionScope functionScope = new TES5FunctionScope(name); TES5CodeScope codeScope = TES5CodeScopeFactory.CreateCodeScopeRoot(functionScope); TES5StateCodeBlock state = new TES5StateCodeBlock(name, auto, functionScope, codeScope); return(state); }
public static TES5EventCodeBlock CreateEventCodeBlock(string blockType, TES5FunctionScope functionScope = null) { if (functionScope == null) { functionScope = new TES5FunctionScope(blockType); } TES5CodeScope codeScope = TES5CodeScopeFactory.CreateCodeScopeRoot(functionScope); TES5EventCodeBlock newBlock = new TES5EventCodeBlock(functionScope, codeScope); return(newBlock); }
public TES5FunctionCodeBlock CreateFragment(TES5FragmentType fragmentType, string fragmentName, TES5GlobalScope globalScope, TES5MultipleScriptsScope multipleScriptsScope, TES4CodeChunks chunks) { TES5FunctionScope fragmentLocalScope = TES5FragmentFunctionScopeFactory.CreateFromFragmentType(fragmentName, fragmentType); TES5FunctionCodeBlock function = new TES5FunctionCodeBlock(fragmentLocalScope, TES5CodeScopeFactory.CreateCodeScopeRoot(fragmentLocalScope), TES5VoidType.Instance, false, fragmentType == TES5FragmentType.T_QF || fragmentType == TES5FragmentType.T_TIF); foreach (var codeChunk in chunks) { TES5CodeChunkCollection codeChunks = this.codeChunkFactory.CreateCodeChunk(codeChunk, function.CodeScope, globalScope, multipleScriptsScope); foreach (var newCodeChunk in codeChunks) { function.AddChunk(newCodeChunk); } } return(function); }
public static TES5EventCodeBlock CreateOnInit() { TES5FunctionScope onInitFunctionScope = TES5FunctionScopeFactory.CreateFromBlockType("OnInit"); TES5EventCodeBlock newInitBlock = new TES5EventCodeBlock(onInitFunctionScope, TES5CodeScopeFactory.CreateCodeScopeRoot(onInitFunctionScope)); return(newInitBlock); }