private static LinkedList<ElementSuffixe> trad49(TreeNode tree){
  // tree symbol is <element suffixe>

    int r = tree.getRule() ;
  	switch (r)
    {
       case 0 : // <element suffixe> --> <element access> <element suffixe> 
               { 
                 ElementSuffixe x0 = trad52(tree.getChild(0)) ;
                 LinkedList<ElementSuffixe> x1 = trad49(tree.getChild(1)) ;
                 if (x1 == null)
                	 x1 = new LinkedList<ElementSuffixe>();
                 x1.push(x0);
                 return x1 ; // a modifier
               }
       case 1 : // <element suffixe> --> <operation suffixe> <element suffixe> 
               { 
                 ElementSuffixe x0 = trad53(tree.getChild(0)) ;
                 LinkedList<ElementSuffixe> x1 = trad49(tree.getChild(1)) ;
                 if (x1 == null)
                	 x1 = new LinkedList<ElementSuffixe>();
                 x1.push(x0);
                 return x1; // a modifier
               }
       case 2 : // <element suffixe> --> <message sending suffixe> <element suffixe> 
               { 
                 ElementSuffixe x0 = trad43(tree.getChild(0)) ;
                 LinkedList<ElementSuffixe> x1 = trad49(tree.getChild(1)) ;
                 if (x1 == null)
                	 x1 = new LinkedList<ElementSuffixe>();
                 x1.push(x0);
                 return x1;
               }
       case 3 : // <element suffixe> --> <assignment expression suffixe> <element suffixe> 
               { 
                 ElementSuffixe x0 = trad57(tree.getChild(0)) ;
                 LinkedList<ElementSuffixe> x1 = trad49(tree.getChild(1)) ;
                 if (x1 == null)
                	 x1 = new LinkedList<ElementSuffixe>();
                 x1.push(x0);
                 return x1;
               }
       case 4 : // <element suffixe> --> <lambda>
               { 
                 return null ; // a modifier
               }
       default : return null ;
    }
  }