public virtual void InATempCastExp(ATempCastExp node)
 {
     DefaultIn(node);
 }
 public virtual void OutATempCastExp(ATempCastExp node)
 {
     DefaultOut(node);
 }
 public override void CaseATempCastExp(ATempCastExp node)
 {
     InATempCastExp(node);
     if (node.GetExp() != null)
     {
         node.GetExp().Apply(this);
     }
     if (node.GetType() != null)
     {
         node.GetType().Apply(this);
     }
     if (node.GetToken() != null)
     {
         node.GetToken().Apply(this);
     }
     OutATempCastExp(node);
 }
 public virtual void CaseATempCastExp(ATempCastExp node)
 {
     DefaultCase(node);
 }
示例#5
0
 public override void CaseATempCastExp(ATempCastExp node)
 {
     //The cast type must be a single identifier
     if (node.GetType() is ALvalueExp)
     {
         ALvalueExp lvalueExp = (ALvalueExp)node.GetType();
         if (lvalueExp.GetLvalue() is AAmbiguousNameLvalue)
         {
             AAmbiguousNameLvalue ambiguousLvalue = (AAmbiguousNameLvalue) lvalueExp.GetLvalue();
             if (ambiguousLvalue.GetAmbiguous() is AAName)
             {
                 AAName simpleName = (AAName) ambiguousLvalue.GetAmbiguous();
                 if (simpleName.GetIdentifier().Count == 1)
                 {
                     ACastExp castExp = new ACastExp(node.GetToken(), new ANamedType(simpleName), node.GetExp());
                     node.ReplaceBy(castExp);
                     castExp.Apply(this);
                     return;
                 }
             }
         }
     }
     errors.Add(new ErrorCollection.Error(node.GetToken(), currentSourceFile, LocRM.GetString("ErrorText202")));
 }
示例#6
0
 ArrayList New455()
 {
     ArrayList nodeList = new ArrayList();
     ArrayList nodeArrayList4 = (ArrayList) Pop();
     ArrayList nodeArrayList3 = (ArrayList) Pop();
     ArrayList nodeArrayList2 = (ArrayList) Pop();
     ArrayList nodeArrayList1 = (ArrayList) Pop();
     TLParen tlparenNode2 = (TLParen)nodeArrayList1[0];
     PExp pexpNode3 = (PExp)nodeArrayList2[0];
     PExp pexpNode4 = (PExp)nodeArrayList4[0];
     ATempCastExp pexpNode1 = new ATempCastExp (
       tlparenNode2,
       pexpNode3,
       pexpNode4
     );
     nodeList.Add(pexpNode1);
     return nodeList;
 }
        public override void CaseATempCastExp(ATempCastExp node)
        {
            //The cast type must be a single identifier
            if (node.GetType() is ALvalueExp)
            {
                ALvalueExp lvalueExp = (ALvalueExp)node.GetType();
                if (lvalueExp.GetLvalue() is AAmbiguousNameLvalue)
                {
                    AAmbiguousNameLvalue ambiguousLvalue = (AAmbiguousNameLvalue)lvalueExp.GetLvalue();
                    if (ambiguousLvalue.GetAmbiguous() is AAName)
                    {
                        AAName simpleName = (AAName)ambiguousLvalue.GetAmbiguous();
                        if (simpleName.GetIdentifier().Count == 1)
                        {
                            ACastExp castExp = new ACastExp(node.GetToken(), new ANamedType(simpleName), node.GetExp());
                            node.ReplaceBy(castExp);
                            castExp.Apply(this);
                            return;
                        }

                    }
                }
            }
            PExp exp = node.GetExp();
            node.ReplaceBy(exp);
            exp.Apply(this);
        }