private void SetUpBranch(TES4CodeBlock block, TES5EventCodeBlock newBlock, TES5FunctionScope blockFunctionScope, ITES5VariableOrProperty variable, TES5GlobalScope globalScope, TES5MultipleScriptsScope multipleScriptsScope) { TES4BlockParameterList parameterList = block.BlockParameterList; if (parameterList == null) { return; } List <TES4BlockParameter> parameterListVariableList = parameterList.Parameters; TES4BlockParameter tesEquippedTarget = parameterListVariableList[0]; TES5LocalScope localScope = newBlock.CodeScope.LocalScope; ITES5Referencer newContainer = this.referenceFactory.CreateReadReference(tesEquippedTarget.BlockParameter, globalScope, multipleScriptsScope, localScope); TES5ComparisonExpression expression = TES5ExpressionFactory.CreateComparisonExpression(TES5ReferenceFactory.CreateReferenceToVariable(variable), TES5ComparisonExpressionOperator.OPERATOR_EQUAL, newContainer); SetUpBranch(blockFunctionScope, newBlock, expression); }
private TES5CodeScope SetUpBranch(TES4CodeBlock block, TES5CodeScope codeScope, TES5FunctionScope blockFunctionScope, ITES5VariableOrProperty variable, TES5GlobalScope globalScope, TES5MultipleScriptsScope multipleScriptsScope) { TES4BlockParameterList?parameterList = block.BlockParameterList; if (parameterList == null) { return(codeScope); } TES5Reference variableReference = TES5ReferenceFactory.CreateReferenceToVariableOrProperty(variable); TES5LocalScope localScope = codeScope.LocalScope; TES4BlockParameter firstParameter = parameterList.Parameters[0]; ITES5Referencer firstVariableReference = this.referenceFactory.CreateReadReference(firstParameter.BlockParameter, globalScope, multipleScriptsScope, localScope); TES5ComparisonExpression expression = TES5ExpressionFactory.CreateComparisonExpression(variableReference, TES5ComparisonExpressionOperator.OPERATOR_EQUAL, firstVariableReference); return(SetUpBranch(blockFunctionScope, codeScope, expression)); }