/// <summary>
 /// Adds the expression to the reference list of the variable
 /// </summary>
 /// <param name="expression">the Expression</param>
 private void AddToVariablesReference(Expression expression)
 {
     var variable = expression.TypeInference.Declaration as Variable;
     if (variable != null && variable.ContainsTag(XenkoTags.ShaderScope))
     {
         if (expression.ContainsTag(XenkoTags.StaticRef) || variable.Qualifiers.Contains(StorageQualifier.Static))
             parsingInfo.StaticReferences.InsertVariable(variable, new ExpressionNodeCouple(expression, ParentNode));
         else if (expression.ContainsTag(XenkoTags.ExternRef))
             parsingInfo.ExternReferences.InsertVariable(variable, new ExpressionNodeCouple(expression, ParentNode));
         else if (expression.ContainsTag(XenkoTags.StageInitRef))
             parsingInfo.StageInitReferences.InsertVariable(variable, new ExpressionNodeCouple(expression, ParentNode));
         else
             parsingInfo.ClassReferences.InsertVariable(variable, new ExpressionNodeCouple(expression, ParentNode));
     }
     else
     {
         parsingInfo.NavigableNodes.Add(expression);
     }
 }