public override void CaseAArrayTempType(AArrayTempType node)
 {
     bool prevFolding = folding;
     int prevValue = value;
     bool wasANewExp = isANewExp;
     isANewExp = Util.HasAncestor<ANewExp>(node);
     if (!isANewExp)
     {
         folding = true;
         value = 0;
         base.CaseAArrayTempType(node);
         if (value <= 0)
         {
             // Using a predefined constant sometimes evaluates to 0. This is a very temporary "fix"
             if (value < 0)
                 errors.Add(new ErrorCollection.Error(node.GetToken(), "Array dimention must be greater than 0."));
             value = 1;
         }
         node.SetIntDim(new TIntegerLiteral(value.ToString()));
     }
     folding = prevFolding;
     value = prevValue;
     isANewExp = wasANewExp;
 }
        public override void CaseAArrayTempType(AArrayTempType node)
        {
            /*if (node.GetDimention() is ALvalueExp && ((ALvalueExp)node.GetDimention()).GetLvalue() is AAmbiguousNameLvalue)
            {
                AAmbiguousNameLvalue lvalue = (AAmbiguousNameLvalue) ((ALvalueExp) node.GetDimention()).GetLvalue();
                ASimpleName name = (ASimpleName) lvalue.GetAmbiguous();
                if (name.GetIdentifier().Text == "PlayerData")
                    node = node;
            }*/
            if (!isInANewExp && !data.IsLiteCompile)
            {
                bool wasFolding = foldIntegerConstants;
                bool foldFailedBefore = foldingFailed;

                foldIntegerConstants = true;
                foldingFailed = false;
                integerConstant = 0;
                integerConstantToken = node.GetToken();
                CheckValidConstExp(node.GetDimention());
                base.CaseAArrayTempType(node);
                foldIntegerConstants = false;
                if (!foldingFailed)
                    node.SetIntDim(new TIntegerLiteral(integerConstant.ToString()));

                foldIntegerConstants = wasFolding;
                foldingFailed = foldFailedBefore;

            }
            else
            {
                base.CaseAArrayTempType(node);
            }
        }