Changes in uspace/app/sbi/src/stree_t.h [074444f:38aaacc2] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/sbi/src/stree_t.h
r074444f r38aaacc2 186 186 } stree_as_t; 187 187 188 /** Boxing of primitive type (pseudo) 189 * 190 * This pseudo-node is used internally to box a value of primitive type. 191 * It is implicitly inserted by stype_convert(). It does not correspond 192 * to a an explicit program construct. 193 */ 194 typedef struct { 195 /* Primitive type expression */ 196 struct stree_expr *arg; 197 } stree_box_t; 198 188 199 /** Arithmetic expression class */ 189 200 typedef enum { … … 198 209 ec_assign, 199 210 ec_index, 200 ec_as 211 ec_as, 212 ec_box 201 213 } expr_class_t; 202 214 … … 219 231 stree_assign_t *assign; 220 232 stree_as_t *as_op; 233 stree_box_t *box; 221 234 } u; 222 235 } stree_expr_t; … … 415 428 } stree_proc_arg_t; 416 429 430 /** Function signature. 431 * 432 * Foormal parameters and return type. This is common to function and delegate 433 * delcarations. 434 */ 435 typedef struct { 436 /** Formal parameters */ 437 list_t args; /* of stree_proc_arg_t */ 438 439 /** Variadic argument or @c NULL if none. */ 440 stree_proc_arg_t *varg; 441 442 /** Return type */ 443 stree_texpr_t *rtype; 444 } stree_fun_sig_t; 445 417 446 /** Procedure 418 447 * … … 432 461 } stree_proc_t; 433 462 463 /** Delegate declaration */ 464 typedef struct stree_deleg { 465 /** Delegate name */ 466 stree_ident_t *name; 467 468 /** Symbol */ 469 struct stree_symbol *symbol; 470 471 /** Signature (arguments and return type) */ 472 stree_fun_sig_t *sig; 473 474 /** Type item describing the delegate */ 475 struct tdata_item *titem; 476 } stree_deleg_t; 477 434 478 /** Member function declaration */ 435 479 typedef struct stree_fun { … … 440 484 struct stree_symbol *symbol; 441 485 442 /** Formal parameters */ 443 list_t args; /* of stree_proc_arg_t */ 444 445 /** Variadic argument or @c NULL if none. */ 446 stree_proc_arg_t *varg; 447 448 /** Return type */ 449 stree_texpr_t *rtype; 486 /** Signature (arguments and return type) */ 487 stree_fun_sig_t *sig; 450 488 451 489 /** Function implementation */ 452 490 stree_proc_t *proc; 491 492 /** Type item describing the function */ 493 struct tdata_item *titem; 453 494 } stree_fun_t; 454 495 … … 486 527 typedef enum { 487 528 csimbr_csi, 529 csimbr_deleg, 488 530 csimbr_fun, 489 531 csimbr_var, … … 497 539 union { 498 540 struct stree_csi *csi; 541 stree_deleg_t *deleg; 499 542 stree_fun_t *fun; 500 543 stree_var_t *var; … … 509 552 } csi_class_t; 510 553 554 /** CSI formal type argument */ 555 typedef struct stree_targ { 556 stree_ident_t *name; 557 struct stree_symbol *symbol; 558 } stree_targ_t; 559 511 560 /** Class, struct or interface declaration */ 512 561 typedef struct stree_csi { … … 517 566 stree_ident_t *name; 518 567 519 /** List of type argument names */520 list_t targ _names; /* of stree_ident_t */568 /** List of type arguments */ 569 list_t targ; /* of stree_targ_t */ 521 570 522 571 /** Symbol for this CSI */ … … 566 615 } stree_symbol_attr_t; 567 616 568 569 typedef enum { 617 typedef enum { 618 /** CSI (class, struct or interface) */ 570 619 sc_csi, 620 /** Member delegate */ 621 sc_deleg, 622 /** Member function */ 571 623 sc_fun, 624 /** Member variable */ 572 625 sc_var, 626 /** Member property */ 573 627 sc_prop 574 628 } symbol_class_t; … … 584 638 union { 585 639 struct stree_csi *csi; 640 stree_deleg_t *deleg; 586 641 stree_fun_t *fun; 587 642 stree_var_t *var;
Note:
See TracChangeset
for help on using the changeset viewer.