~ubuntu-branches/ubuntu/quantal/aspectc++/quantal

« back to all changes in this revision

Viewing changes to Puma/src/parser/ccparser/CCBuilder.cc

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2008-04-10 17:40:52 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20080410174052-xdnsm7oi8hauyyf1
Tags: 1.0pre4~svn.20080409+dfsg-3
Fix another missing include, this time in Ag++/StdSystem.cc

Show diffs side-by-side

added added

removed removed

Lines of Context:
568
568
    return new CT_EnumSpec (get_node (0), name);
569
569
}
570
570
 
571
 
CTree *CCBuilder::asm_def () { 
572
 
  // 1: ASM  (  str_literal  )  ;
573
 
  return new CT_AsmDef (get_node (0), get_node (1), get_node (2),
574
 
                        get_node (3), get_node (4));
575
 
}
576
 
 
577
571
CTree *CCBuilder::linkage_spec () { 
578
572
  // 3: EXTERN  str_literal  decl
579
573
  // 4: EXTERN  str_literal  {  }
938
932
}
939
933
 
940
934
CTree *CCBuilder::member_declarator () { 
 
935
  // 3: identifier  :  const_expr
 
936
  // 3: private_name  :  const_expr
941
937
  // 1: declarator
 
938
  // 2: declarator  init_declarator_ext
942
939
  // 2: declarator  pure_spec
 
940
  // 3: declarator  init_declarator_ext  pure_spec
943
941
  // 2: declarator  const_init
944
 
  // 3: identifier  :  const_expr
945
 
  // 3: private_name  :  const_expr
 
942
  // 3: declarator  init_declarator_ext  const_init
946
943
  int num = nodes ();
947
 
  if (num == 3)
948
 
    return new CT_BitFieldDeclarator (get_node (0), get_node (1), get_node (2));
949
 
  else if (num == 2 && get_node (1)->token ()->type () == TOK_COLON)
950
 
    return new CT_BitFieldDeclarator (get_node (0), get_node (1));
951
 
  else 
952
 
    return new CT_InitDeclarator (get_node (0), (num == 2) ? get_node (1) : 0);
 
944
  bool bitfield = (num >= 2 && get_node (1)->token ()->type () == TOK_COLON);
 
945
  if (bitfield) {
 
946
    if (num == 3)
 
947
      return new CT_BitFieldDeclarator (get_node (0), get_node (1), get_node (2));
 
948
    else if (num == 2)
 
949
      return new CT_BitFieldDeclarator (get_node (0), get_node (1));
 
950
  }
 
951
  else {
 
952
    if (num == 1)
 
953
      return new CT_InitDeclarator (get_node (0));
 
954
    else if (num == 2) {
 
955
      if (get_node (1)->NodeName () == CT_ExprList::NodeId ())
 
956
        return new CT_InitDeclarator (get_node (0), 0, get_node (1));
 
957
      else
 
958
        return new CT_InitDeclarator (get_node (0), get_node (1), 0);
 
959
    }
 
960
    else
 
961
      return new CT_InitDeclarator (get_node (0), get_node (1), get_node (2));
 
962
  }
 
963
  return 0;
953
964
}
954
965
 
955
966
CTree *CCBuilder::pure_spec () {