Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Side by Side Diff: pkg/analyzer/tool/summary/idl.dart

Issue 1414903005: Begin generating code for summary serialization/deserialization. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Fix handling of List<int> Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pkg/analyzer/tool/summary/generate.dart ('k') | pkg/analyzer/tool/summary/idl_model.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 List<int> importDependencies; 97 List<int> importDependencies;
98 98
99 /** 99 /**
100 * For each reference in [UnlinkedLibrary.references], information about how 100 * For each reference in [UnlinkedLibrary.references], information about how
101 * that reference is resolved. 101 * that reference is resolved.
102 */ 102 */
103 List<PrelinkedReference> references; 103 List<PrelinkedReference> references;
104 } 104 }
105 105
106 /** 106 /**
107 * Information about the resolution of an [UnlinkedReference].
108 */
109 class PrelinkedReference {
110 /**
111 * Index into [UnlinkedLibrary.dependencies] indicating which imported library
112 * declares the entity being referred to.
113 */
114 int dependency;
115
116 /**
117 * The kind of the entity being referred to.
118 */
119 PrelinkedReferenceKind kind;
120 }
121
122 /**
107 * Enum used to indicate the kind of entity referred to by a 123 * Enum used to indicate the kind of entity referred to by a
108 * [PrelinkedReference]. 124 * [PrelinkedReference].
109 */ 125 */
110 enum PrelinkedReferenceKind { 126 enum PrelinkedReferenceKind {
111 /** 127 /**
112 * The entity is a class or enum. 128 * The entity is a class or enum.
113 */ 129 */
114 classOrEnum, 130 classOrEnum,
115 131
116 /** 132 /**
117 * The entity is a typedef. 133 * The entity is a typedef.
118 */ 134 */
119 typedef, 135 typedef,
120 136
121 /** 137 /**
122 * The entity is a variable or executable. 138 * The entity is a variable or executable.
123 */ 139 */
124 other, 140 other,
125 141
126 /** 142 /**
127 * The entity being referred to does not exist. 143 * The entity being referred to does not exist.
128 */ 144 */
129 unresolved 145 unresolved
130 } 146 }
131 147
132 /** 148 /**
133 * Information about the resolution of an [UnlinkedReference].
134 */
135 class PrelinkedReference {
136 /**
137 * Index into [UnlinkedLibrary.dependencies] indicating which imported library
138 * declares the entity being referred to.
139 */
140 int dependency;
141
142 /**
143 * The kind of the entity being referred to.
144 */
145 PrelinkedReferenceKind kind;
146 }
147
148 /**
149 * Unlinked summary information about a class declaration. 149 * Unlinked summary information about a class declaration.
150 */ 150 */
151 class UnlinkedClass { 151 class UnlinkedClass {
152 /** 152 /**
153 * Name of the class. 153 * Name of the class.
154 */ 154 */
155 String name; 155 String name;
156 156
157 /** 157 /**
158 * Index into [UnlinkedLibrary.units] indicating which compilation unit the 158 * Index into [UnlinkedLibrary.units] indicating which compilation unit the
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 } 205 }
206 206
207 /** 207 /**
208 * Unlinked summary information about a `show` or `hide` combinator in an 208 * Unlinked summary information about a `show` or `hide` combinator in an
209 * import or export declaration. 209 * import or export declaration.
210 */ 210 */
211 class UnlinkedCombinator { 211 class UnlinkedCombinator {
212 /** 212 /**
213 * List of names which are shown. Empty if this is a `hide` combinator. 213 * List of names which are shown. Empty if this is a `hide` combinator.
214 */ 214 */
215 List<String> shows; 215 List<UnlinkedCombinatorName> shows;
216 216
217 /** 217 /**
218 * List of names which are hidden. Empty if this is a `show` combinator. 218 * List of names which are hidden. Empty if this is a `show` combinator.
219 */ 219 */
220 List<String> hides; 220 List<UnlinkedCombinatorName> hides;
221 } 221 }
222 222
223 /** 223 /**
224 * Unlinked summary information about a single name in a `show` or `hide`
225 * combinator.
226 */
227 class UnlinkedCombinatorName {
228 /**
229 * The name itself.
230 */
231 String name;
232 }
233
234 /**
224 * Unlinked summary information about an enum declaration. 235 * Unlinked summary information about an enum declaration.
225 */ 236 */
226 class UnlinkedEnum { 237 class UnlinkedEnum {
227 /** 238 /**
228 * Name of the enum type. 239 * Name of the enum type.
229 */ 240 */
230 String name; 241 String name;
231 242
232 /** 243 /**
233 * Values listed in the enum declaration, in declaration order. 244 * Values listed in the enum declaration, in declaration order.
(...skipping 13 matching lines...) Expand all
247 * declaration. 258 * declaration.
248 */ 259 */
249 class UnlinkedEnumValue { 260 class UnlinkedEnumValue {
250 /** 261 /**
251 * Name of the enumerated value. 262 * Name of the enumerated value.
252 */ 263 */
253 String name; 264 String name;
254 } 265 }
255 266
256 /** 267 /**
257 * Enum used to indicate the kind of an executable.
258 */
259 enum UnlinkedExecutableKind {
260 /**
261 * Executable is a function or method.
262 */
263 functionOrMethod,
264
265 /**
266 * Executable is a getter.
267 */
268 getter,
269
270 /**
271 * Executable is a setter.
272 */
273 setter,
274
275 /**
276 * Executable is a constructor.
277 */
278 constructor
279 }
280
281 /**
282 * Unlinked summary information about a function, method, getter, or setter 268 * Unlinked summary information about a function, method, getter, or setter
283 * declaration. 269 * declaration.
284 */ 270 */
285 class UnlinkedExecutable { 271 class UnlinkedExecutable {
286 /** 272 /**
287 * Name of the executable. For setters, this includes the trailing "=". For 273 * Name of the executable. For setters, this includes the trailing "=". For
288 * named constructors, this excludes the class name and excludes the ".". 274 * named constructors, this excludes the class name and excludes the ".".
289 * For unnamed constructors, this is the empty string. 275 * For unnamed constructors, this is the empty string.
290 */ 276 */
291 String name; 277 String name;
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 */ 329 */
344 bool isConst; 330 bool isConst;
345 331
346 /** 332 /**
347 * Indicates whether the executable is declared using the `factory` keyword. 333 * Indicates whether the executable is declared using the `factory` keyword.
348 */ 334 */
349 bool isFactory; 335 bool isFactory;
350 } 336 }
351 337
352 /** 338 /**
339 * Enum used to indicate the kind of an executable.
340 */
341 enum UnlinkedExecutableKind {
342 /**
343 * Executable is a function or method.
344 */
345 functionOrMethod,
346
347 /**
348 * Executable is a getter.
349 */
350 getter,
351
352 /**
353 * Executable is a setter.
354 */
355 setter,
356
357 /**
358 * Executable is a constructor.
359 */
360 constructor
361 }
362
363 /**
353 * Unlinked summary information about an export declaration. 364 * Unlinked summary information about an export declaration.
354 */ 365 */
355 class UnlinkedExport { 366 class UnlinkedExport {
356 /** 367 /**
357 * URI used in the source code to reference the exported library. 368 * URI used in the source code to reference the exported library.
358 */ 369 */
359 String uri; 370 String uri;
360 371
361 /** 372 /**
362 * Combinators contained in this import declaration. 373 * Combinators contained in this import declaration.
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
461 List<UnlinkedVariable> variables; 472 List<UnlinkedVariable> variables;
462 473
463 /** 474 /**
464 * Prefixes introduced by import declarations. The first element in this 475 * Prefixes introduced by import declarations. The first element in this
465 * array is a pseudo-prefix used by references made with no prefix. 476 * array is a pseudo-prefix used by references made with no prefix.
466 */ 477 */
467 List<UnlinkedPrefix> prefixes; 478 List<UnlinkedPrefix> prefixes;
468 } 479 }
469 480
470 /** 481 /**
471 * Enum used to indicate the kind of a parameter.
472 */
473 enum UnlinkedParamKind {
474 /**
475 * Parameter is required.
476 */
477 required,
478
479 /**
480 * Parameter is positional optional (enclosed in `[]`)
481 */
482 positional,
483
484 /**
485 * Parameter is named optional (enclosed in `{}`)
486 */
487 named
488 }
489
490 /**
491 * Unlinked summary information about a function parameter. 482 * Unlinked summary information about a function parameter.
492 */ 483 */
493 class UnlinkedParam { 484 class UnlinkedParam {
494 /** 485 /**
495 * Name of the parameter. 486 * Name of the parameter.
496 */ 487 */
497 String name; 488 String name;
498 489
499 /** 490 /**
500 * If [isFunctionTyped] is `true`, the declared return type. If 491 * If [isFunctionTyped] is `true`, the declared return type. If
(...skipping 19 matching lines...) Expand all
520 */ 511 */
521 bool isFunctionTyped; 512 bool isFunctionTyped;
522 513
523 /** 514 /**
524 * Indicates whether this is an initializing formal parameter (i.e. it is 515 * Indicates whether this is an initializing formal parameter (i.e. it is
525 * declared using `this.` syntax). 516 * declared using `this.` syntax).
526 */ 517 */
527 bool isInitializingFormal; 518 bool isInitializingFormal;
528 } 519 }
529 520
521 /**
522 * Enum used to indicate the kind of a parameter.
523 */
524 enum UnlinkedParamKind {
525 /**
526 * Parameter is required.
527 */
528 required,
529
530 /**
531 * Parameter is positional optional (enclosed in `[]`)
532 */
533 positional,
534
535 /**
536 * Parameter is named optional (enclosed in `{}`)
537 */
538 named
539 }
540
530 class UnlinkedPrefix { 541 class UnlinkedPrefix {
531 /** 542 /**
532 * The name of the prefix, or the empty string in the case of the 543 * The name of the prefix, or the empty string in the case of the
533 * pseudo-prefix which represents "no prefix". 544 * pseudo-prefix which represents "no prefix".
534 */ 545 */
535 String name; 546 String name;
536 } 547 }
537 548
538 /** 549 /**
539 * Unlinked summary information about a name referred to in one library that 550 * Unlinked summary information about a name referred to in one library that
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 /** 694 /**
684 * Indicates whether the variable is declared using the `final` keyword. 695 * Indicates whether the variable is declared using the `final` keyword.
685 */ 696 */
686 bool isFinal; 697 bool isFinal;
687 698
688 /** 699 /**
689 * Indicates whether the variable is declared using the `const` keyword. 700 * Indicates whether the variable is declared using the `const` keyword.
690 */ 701 */
691 bool isConst; 702 bool isConst;
692 } 703 }
OLDNEW
« no previous file with comments | « pkg/analyzer/tool/summary/generate.dart ('k') | pkg/analyzer/tool/summary/idl_model.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698