Changeset 640ffe6 in mainline for uspace/app/sbi/src/stree.c
- Timestamp:
- 2010-05-08T08:15:57Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4039c77
- Parents:
- 1317380 (diff), 051bc69a (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/sbi/src/stree.c
r1317380 r640ffe6 116 116 } 117 117 118 /** Allocate new constructor. 119 * 120 * @return New constructor 121 */ 122 stree_ctor_t *stree_ctor_new(void) 123 { 124 stree_ctor_t *ctor; 125 126 ctor = calloc(1, sizeof(stree_ctor_t)); 127 if (ctor == NULL) { 128 printf("Memory allocation failed.\n"); 129 exit(1); 130 } 131 132 return ctor; 133 } 134 118 135 /** Allocate new member delegate. 119 136 * … … 133 150 } 134 151 152 /** Allocate new enum. 153 * 154 * @return New enum 155 */ 156 stree_enum_t *stree_enum_new(void) 157 { 158 stree_enum_t *enum_d; 159 160 enum_d = calloc(1, sizeof(stree_enum_t)); 161 if (enum_d == NULL) { 162 printf("Memory allocation failed.\n"); 163 exit(1); 164 } 165 166 return enum_d; 167 } 168 169 /** Allocate new enum member. 170 * 171 * @return New enum member 172 */ 173 stree_embr_t *stree_embr_new(void) 174 { 175 stree_embr_t *embr; 176 177 embr = calloc(1, sizeof(stree_embr_t)); 178 if (embr == NULL) { 179 printf("Memory allocation failed.\n"); 180 exit(1); 181 } 182 183 return embr; 184 } 185 135 186 /** Allocate new member function. 136 187 * … … 394 445 } 395 446 447 /** Allocate new @c break statement. 448 * 449 * @return New @c break statement 450 */ 451 stree_break_t *stree_break_new(void) 452 { 453 stree_break_t *break_s; 454 455 break_s = calloc(1, sizeof(stree_break_t)); 456 if (break_s == NULL) { 457 printf("Memory allocation failed.\n"); 458 exit(1); 459 } 460 461 return break_s; 462 } 463 396 464 /** Allocate new @c return statement. 397 465 * … … 462 530 } 463 531 532 /** Allocate new @c if/elif clause. 533 * 534 * @return New @c if/elif clause 535 */ 536 stree_if_clause_t *stree_if_clause_new(void) 537 { 538 stree_if_clause_t *if_clause; 539 540 if_clause = calloc(1, sizeof(stree_if_clause_t)); 541 if (if_clause == NULL) { 542 printf("Memory allocation failed.\n"); 543 exit(1); 544 } 545 546 return if_clause; 547 } 548 464 549 /** Allocate new statement block. 465 550 * … … 869 954 * @param symbol Symbol 870 955 * @param sac Symbol attribute class 871 * @return @c b_true if yes, @c b_false if no .956 * @return @c b_true if yes, @c b_false if no 872 957 */ 873 958 bool_t stree_symbol_has_attr(stree_symbol_t *symbol, symbol_attr_class_t sac) … … 938 1023 /** Search for CSI type argument of the given name. 939 1024 * 940 * @param csi CSI to look in .941 * @param ident Identifier of the type argument .942 * @return Type argument de finition or @c NULL if not found.1025 * @param csi CSI to look in 1026 * @param ident Identifier of the type argument 1027 * @return Type argument declaration or @c NULL if not found 943 1028 */ 944 1029 stree_targ_t *stree_csi_find_targ(stree_csi_t *csi, stree_ident_t *ident) … … 959 1044 return NULL; 960 1045 } 1046 1047 /** Search for enum member of the given name. 1048 * 1049 * @param enum_d Enum to look in 1050 * @param ident Identifier of the enum member 1051 * @return Enum member declaration or @c NULL if not found 1052 */ 1053 stree_embr_t *stree_enum_find_mbr(stree_enum_t *enum_d, stree_ident_t *ident) 1054 { 1055 list_node_t *embr_n; 1056 stree_embr_t *embr; 1057 1058 embr_n = list_first(&enum_d->members); 1059 while (embr_n != NULL) { 1060 embr = list_node_data(embr_n, stree_embr_t *); 1061 if (embr->name->sid == ident->sid) 1062 return embr; 1063 1064 embr_n = list_next(&enum_d->members, embr_n); 1065 } 1066 1067 /* No match */ 1068 return NULL; 1069 } 1070 1071 /** Get CSI member name. 1072 * 1073 * @param csimbr CSI member 1074 * @return Member name 1075 */ 1076 stree_ident_t *stree_csimbr_get_name(stree_csimbr_t *csimbr) 1077 { 1078 stree_ident_t *mbr_name; 1079 1080 /* Keep compiler happy. */ 1081 mbr_name = NULL; 1082 1083 switch (csimbr->cc) { 1084 case csimbr_csi: mbr_name = csimbr->u.csi->name; break; 1085 case csimbr_ctor: mbr_name = csimbr->u.ctor->name; break; 1086 case csimbr_deleg: mbr_name = csimbr->u.deleg->name; break; 1087 case csimbr_enum: mbr_name = csimbr->u.enum_d->name; break; 1088 case csimbr_fun: mbr_name = csimbr->u.fun->name; break; 1089 case csimbr_var: mbr_name = csimbr->u.var->name; break; 1090 case csimbr_prop: mbr_name = csimbr->u.prop->name; break; 1091 } 1092 1093 return mbr_name; 1094 }
Note:
See TracChangeset
for help on using the changeset viewer.