OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * This file is an "idl" style description of the summary format. It is not | 6 * This file is an "idl" style description of the summary format. It is not |
7 * executed directly; instead it is parsed and transformed into code that | 7 * executed directly; instead it is parsed and transformed into code that |
8 * implements the summary format. | 8 * implements the summary format. |
9 * | 9 * |
10 * The code generation process introduces the following non-typical semantics: | 10 * The code generation process introduces the following non-typical semantics: |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 class PrelinkedLibrary { | 80 class PrelinkedLibrary { |
81 /** | 81 /** |
82 * The pre-linked summary of all the compilation units constituting the | 82 * The pre-linked summary of all the compilation units constituting the |
83 * library. The summary of the defining compilation unit is listed first, | 83 * library. The summary of the defining compilation unit is listed first, |
84 * followed by the summary of each part, in the order of the `part` | 84 * followed by the summary of each part, in the order of the `part` |
85 * declarations in the defining compilation unit. | 85 * declarations in the defining compilation unit. |
86 */ | 86 */ |
87 List<PrelinkedUnit> units; | 87 List<PrelinkedUnit> units; |
88 | 88 |
89 /** | 89 /** |
90 * The unlinked library summary. | |
91 */ | |
92 UnlinkedLibrary unlinked; | |
93 | |
94 /** | |
95 * The libraries that this library depends on (either via an explicit import | 90 * The libraries that this library depends on (either via an explicit import |
96 * statement or via the implicit dependencies on `dart:core` and | 91 * statement or via the implicit dependencies on `dart:core` and |
97 * `dart:async`). The first element of this array is a pseudo-dependency | 92 * `dart:async`). The first element of this array is a pseudo-dependency |
98 * representing the library itself (it is also used for "dynamic"). | 93 * representing the library itself (it is also used for "dynamic"). |
99 * | 94 * |
100 * TODO(paulberry): consider removing this entirely and just using | 95 * TODO(paulberry): consider removing this entirely and just using |
101 * [UnlinkedLibrary.imports]. | 96 * [UnlinkedLibrary.imports]. |
102 */ | 97 */ |
103 List<PrelinkedDependency> dependencies; | 98 List<PrelinkedDependency> dependencies; |
104 | 99 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
151 * The entity is a typedef. | 146 * The entity is a typedef. |
152 */ | 147 */ |
153 typedef, | 148 typedef, |
154 | 149 |
155 /** | 150 /** |
156 * The entity is a variable or executable. | 151 * The entity is a variable or executable. |
157 */ | 152 */ |
158 other, | 153 other, |
159 | 154 |
160 /** | 155 /** |
| 156 * The entity is a prefix. |
| 157 */ |
| 158 prefix, |
| 159 |
| 160 /** |
161 * The entity being referred to does not exist. | 161 * The entity being referred to does not exist. |
162 */ | 162 */ |
163 unresolved | 163 unresolved |
164 } | 164 } |
165 | 165 |
166 /** | 166 /** |
167 * Pre-linked summary of a compilation unit. | 167 * Pre-linked summary of a compilation unit. |
168 */ | 168 */ |
169 class PrelinkedUnit { | 169 class PrelinkedUnit { |
170 /** | 170 /** |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
403 String uri; | 403 String uri; |
404 | 404 |
405 /** | 405 /** |
406 * If [isImplicit] is false, offset of the "import" keyword. If [isImplicit] | 406 * If [isImplicit] is false, offset of the "import" keyword. If [isImplicit] |
407 * is true, zero. | 407 * is true, zero. |
408 */ | 408 */ |
409 @informative | 409 @informative |
410 int offset; | 410 int offset; |
411 | 411 |
412 /** | 412 /** |
413 * Index into [UnlinkedLibrary.prefixes] of the prefix declared by this | 413 * Index into [UnlinkedUnit.references] of the prefix declared by this |
414 * import declaration, or zero if this import declaration declares no prefix. | 414 * import declaration, or zero if this import declaration declares no prefix. |
415 * | 415 * |
416 * Note that multiple imports can declare the same prefix. | 416 * Note that multiple imports can declare the same prefix. |
417 */ | 417 */ |
418 int prefix; | 418 int prefixReference; |
419 | 419 |
420 /** | 420 /** |
421 * Combinators contained in this import declaration. | 421 * Combinators contained in this import declaration. |
422 */ | 422 */ |
423 List<UnlinkedCombinator> combinators; | 423 List<UnlinkedCombinator> combinators; |
424 | 424 |
425 /** | 425 /** |
426 * Indicates whether the import declaration uses the `deferred` keyword. | 426 * Indicates whether the import declaration uses the `deferred` keyword. |
427 */ | 427 */ |
428 bool isDeferred; | 428 bool isDeferred; |
429 | 429 |
430 /** | 430 /** |
431 * Indicates whether the import declaration is implicit. | 431 * Indicates whether the import declaration is implicit. |
432 */ | 432 */ |
433 bool isImplicit; | 433 bool isImplicit; |
434 } | 434 } |
435 | 435 |
436 /** | 436 /** |
437 * Unlinked summary of an entire library. | |
438 */ | |
439 class UnlinkedLibrary { | |
440 /** | |
441 * Prefixes introduced by import declarations. The first element in this | |
442 * array is a pseudo-prefix used by references made with no prefix. | |
443 */ | |
444 List<UnlinkedPrefix> prefixes; | |
445 } | |
446 | |
447 /** | |
448 * Unlinked summary information about a function parameter. | 437 * Unlinked summary information about a function parameter. |
449 */ | 438 */ |
450 class UnlinkedParam { | 439 class UnlinkedParam { |
451 /** | 440 /** |
452 * Name of the parameter. | 441 * Name of the parameter. |
453 */ | 442 */ |
454 String name; | 443 String name; |
455 | 444 |
456 /** | 445 /** |
457 * If [isFunctionTyped] is `true`, the declared return type. If | 446 * If [isFunctionTyped] is `true`, the declared return type. If |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
513 /** | 502 /** |
514 * Unlinked summary information about a part declaration. | 503 * Unlinked summary information about a part declaration. |
515 */ | 504 */ |
516 class UnlinkedPart { | 505 class UnlinkedPart { |
517 /** | 506 /** |
518 * String used in the compilation unit to refer to the part file. | 507 * String used in the compilation unit to refer to the part file. |
519 */ | 508 */ |
520 String uri; | 509 String uri; |
521 } | 510 } |
522 | 511 |
523 class UnlinkedPrefix { | |
524 /** | |
525 * The name of the prefix, or the empty string in the case of the | |
526 * pseudo-prefix which represents "no prefix". | |
527 */ | |
528 String name; | |
529 } | |
530 | |
531 /** | 512 /** |
532 * Unlinked summary information about a name referred to in one library that | 513 * Unlinked summary information about a name referred to in one library that |
533 * might be defined in another. | 514 * might be defined in another. |
534 */ | 515 */ |
535 class UnlinkedReference { | 516 class UnlinkedReference { |
536 /** | 517 /** |
537 * Name of the entity being referred to. The empty string refers to the | 518 * Name of the entity being referred to. The empty string refers to the |
538 * pseudo-type `dynamic`. | 519 * pseudo-type `dynamic`. |
539 */ | 520 */ |
540 String name; | 521 String name; |
541 | 522 |
542 /** | 523 /** |
543 * Prefix used to refer to the entity. This is an index into | 524 * Prefix used to refer to the entity, or zero if no prefix is used. This is |
544 * [UnlinkedLibrary.prefixes]. | 525 * an index into [UnlinkedUnit.references]. |
545 */ | 526 */ |
546 int prefix; | 527 int prefixReference; |
547 } | 528 } |
548 | 529 |
549 /** | 530 /** |
550 * Unlinked summary information about a typedef declaration. | 531 * Unlinked summary information about a typedef declaration. |
551 */ | 532 */ |
552 class UnlinkedTypedef { | 533 class UnlinkedTypedef { |
553 /** | 534 /** |
554 * Name of the typedef. | 535 * Name of the typedef. |
555 */ | 536 */ |
556 String name; | 537 String name; |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
722 /** | 703 /** |
723 * Indicates whether the variable is declared using the `const` keyword. | 704 * Indicates whether the variable is declared using the `const` keyword. |
724 */ | 705 */ |
725 bool isConst; | 706 bool isConst; |
726 | 707 |
727 /** | 708 /** |
728 * Indicates whether this variable lacks an explicit type declaration. | 709 * Indicates whether this variable lacks an explicit type declaration. |
729 */ | 710 */ |
730 bool hasImplicitType; | 711 bool hasImplicitType; |
731 } | 712 } |
OLD | NEW |