OLD | NEW |
---|---|
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 import 'package:analyzer/dart/ast/ast.dart'; | 5 import 'package:analyzer/dart/ast/ast.dart'; |
6 import 'package:analyzer/src/generated/utilities_dart.dart'; | 6 import 'package:analyzer/src/generated/utilities_dart.dart'; |
7 import 'package:front_end/src/scanner/token.dart'; | 7 import 'package:front_end/src/scanner/token.dart'; |
8 import 'package:meta/meta.dart'; | |
8 | 9 |
9 /** | 10 /** |
10 * A collection of factory methods which may be used to create concrete | 11 * A collection of factory methods which may be used to create concrete |
11 * instances of the interfaces that constitute the AST. | 12 * instances of the interfaces that constitute the AST. |
12 * | 13 * |
13 * Clients should not extend, implement or mix-in this class. | 14 * Clients should not extend, implement or mix-in this class. |
14 */ | 15 */ |
15 abstract class AstFactory { | 16 abstract class AstFactory { |
16 /** | 17 /** |
17 * Returns a newly created list of adjacent strings. To be syntactically | 18 * Returns a newly created list of adjacent strings. To be syntactically |
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
297 * Returns a newly created default formal parameter. The [separator] and | 298 * Returns a newly created default formal parameter. The [separator] and |
298 * [defaultValue] can be `null` if there is no default value. | 299 * [defaultValue] can be `null` if there is no default value. |
299 */ | 300 */ |
300 DefaultFormalParameter defaultFormalParameter(NormalFormalParameter parameter, | 301 DefaultFormalParameter defaultFormalParameter(NormalFormalParameter parameter, |
301 ParameterKind kind, Token separator, Expression defaultValue); | 302 ParameterKind kind, Token separator, Expression defaultValue); |
302 | 303 |
303 /** | 304 /** |
304 * Returns a documentation comment consisting of the given [tokens] and having | 305 * Returns a documentation comment consisting of the given [tokens] and having |
305 * the given [references] (if supplied) embedded within it. | 306 * the given [references] (if supplied) embedded within it. |
306 */ | 307 */ |
307 Comment documentationComment( | 308 Comment documentationComment(List<Token> tokens, |
308 List<Token> tokens, [List<CommentReference> references]); | 309 [List<CommentReference> references]); |
309 | 310 |
310 /** | 311 /** |
311 * Returns a newly created do loop. | 312 * Returns a newly created do loop. |
312 */ | 313 */ |
313 DoStatement doStatement( | 314 DoStatement doStatement( |
314 Token doKeyword, | 315 Token doKeyword, |
315 Statement body, | 316 Statement body, |
316 Token whileKeyword, | 317 Token whileKeyword, |
317 Token leftParenthesis, | 318 Token leftParenthesis, |
318 Expression condition, | 319 Expression condition, |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
412 | 413 |
413 /** | 414 /** |
414 * Returns a newly created formal parameter. Either or both of the | 415 * Returns a newly created formal parameter. Either or both of the |
415 * [comment] and [metadata] can be `null` if the parameter does not have the | 416 * [comment] and [metadata] can be `null` if the parameter does not have the |
416 * corresponding attribute. The [keyword] can be `null` if there is a type. | 417 * corresponding attribute. The [keyword] can be `null` if there is a type. |
417 * The [type] must be `null` if the keyword is 'var'. The [thisKeyword] and | 418 * The [type] must be `null` if the keyword is 'var'. The [thisKeyword] and |
418 * [period] can be `null` if the keyword 'this' was not provided. The | 419 * [period] can be `null` if the keyword 'this' was not provided. The |
419 * [parameters] can be `null` if this is not a function-typed field formal | 420 * [parameters] can be `null` if this is not a function-typed field formal |
420 * parameter. | 421 * parameter. |
421 */ | 422 */ |
422 FieldFormalParameter fieldFormalParameter( | 423 FieldFormalParameter fieldFormalParameter( |
Paul Berry
2017/02/24 20:29:04
Consider marking as @deprecated and adding a comme
| |
423 Comment comment, | 424 Comment comment, |
424 List<Annotation> metadata, | 425 List<Annotation> metadata, |
425 Token keyword, | 426 Token keyword, |
426 TypeAnnotation type, | 427 TypeAnnotation type, |
427 Token thisKeyword, | 428 Token thisKeyword, |
428 Token period, | 429 Token period, |
429 SimpleIdentifier identifier, | 430 SimpleIdentifier identifier, |
430 TypeParameterList typeParameters, | 431 TypeParameterList typeParameters, |
431 FormalParameterList parameters); | 432 FormalParameterList parameters); |
432 | 433 |
433 /** | 434 /** |
435 * Returns a newly created formal parameter. Either or both of the | |
436 * [comment] and [metadata] can be `null` if the parameter does not have the | |
437 * corresponding attribute. The [keyword] can be `null` if there is a type. | |
438 * The [type] must be `null` if the keyword is 'var'. The [thisKeyword] and | |
439 * [period] can be `null` if the keyword 'this' was not provided. The | |
440 * [parameters] can be `null` if this is not a function-typed field formal | |
441 * parameter. | |
442 */ | |
443 FieldFormalParameter fieldFormalParameter2( | |
444 {Comment comment, | |
445 List<Annotation> metadata, | |
446 Token covariantKeyword, | |
447 Token keyword, | |
448 TypeAnnotation type, | |
449 @required Token thisKeyword, | |
450 @required Token period, | |
451 @required SimpleIdentifier identifier, | |
452 TypeParameterList typeParameters, | |
453 FormalParameterList parameters}); | |
454 | |
455 /** | |
434 * Returns a newly created for-each statement whose loop control variable | 456 * Returns a newly created for-each statement whose loop control variable |
435 * is declared internally (in the for-loop part). The [awaitKeyword] can be | 457 * is declared internally (in the for-loop part). The [awaitKeyword] can be |
436 * `null` if this is not an asynchronous for loop. | 458 * `null` if this is not an asynchronous for loop. |
437 */ | 459 */ |
438 ForEachStatement forEachStatementWithDeclaration( | 460 ForEachStatement forEachStatementWithDeclaration( |
439 Token awaitKeyword, | 461 Token awaitKeyword, |
440 Token forKeyword, | 462 Token forKeyword, |
441 Token leftParenthesis, | 463 Token leftParenthesis, |
442 DeclaredIdentifier loopVariable, | 464 DeclaredIdentifier loopVariable, |
443 Token inKeyword, | 465 Token inKeyword, |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
551 FunctionTypedFormalParameter functionTypedFormalParameter( | 573 FunctionTypedFormalParameter functionTypedFormalParameter( |
552 Comment comment, | 574 Comment comment, |
553 List<Annotation> metadata, | 575 List<Annotation> metadata, |
554 TypeAnnotation returnType, | 576 TypeAnnotation returnType, |
555 SimpleIdentifier identifier, | 577 SimpleIdentifier identifier, |
556 TypeParameterList typeParameters, | 578 TypeParameterList typeParameters, |
557 FormalParameterList parameters, | 579 FormalParameterList parameters, |
558 {Token question: null}); | 580 {Token question: null}); |
559 | 581 |
560 /** | 582 /** |
583 * Returns a newly created formal parameter. Either or both of the | |
584 * [comment] and [metadata] can be `null` if the parameter does not have the | |
585 * corresponding attribute. The [returnType] can be `null` if no return type | |
586 * was specified. | |
587 */ | |
588 FunctionTypedFormalParameter functionTypedFormalParameter2( | |
589 {Comment comment, | |
590 List<Annotation> metadata, | |
591 Token covariantKeyword, | |
592 TypeAnnotation returnType, | |
593 @required SimpleIdentifier identifier, | |
594 TypeParameterList typeParameters, | |
595 @required FormalParameterList parameters, | |
596 Token question}); | |
597 | |
598 /** | |
599 * Initialize a newly created generic function type. | |
600 */ | |
601 GenericFunctionType genericFunctionType( | |
602 TypeAnnotation returnType, | |
603 Token functionKeyword, | |
604 TypeParameterList typeParameters, | |
605 FormalParameterList _parameters); | |
606 | |
607 /** | |
608 * Returns a newly created generic type alias. Either or both of the | |
609 * [comment] and [metadata] can be `null` if the variable list does not have | |
610 * the corresponding attribute. The [typeParameters] can be `null` if there | |
611 * are no type parameters. | |
612 */ | |
613 GenericTypeAlias genericTypeAlias( | |
614 Comment comment, | |
615 List<Annotation> metadata, | |
616 Token typedefKeyword, | |
617 SimpleIdentifier name, | |
618 TypeParameterList typeParameters, | |
619 Token equals, | |
620 GenericFunctionType functionType, | |
621 Token semicolon); | |
622 | |
623 /** | |
561 * Returns a newly created import show combinator. | 624 * Returns a newly created import show combinator. |
562 */ | 625 */ |
563 HideCombinator hideCombinator( | 626 HideCombinator hideCombinator( |
564 Token keyword, List<SimpleIdentifier> hiddenNames); | 627 Token keyword, List<SimpleIdentifier> hiddenNames); |
565 | 628 |
566 /** | 629 /** |
567 * Returns a newly created if statement. The [elseKeyword] and | 630 * Returns a newly created if statement. The [elseKeyword] and |
568 * [elseStatement] can be `null` if there is no else clause. | 631 * [elseStatement] can be `null` if there is no else clause. |
569 */ | 632 */ |
570 IfStatement ifStatement( | 633 IfStatement ifStatement( |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
846 * specified. The [type] must be `null` if the keyword is 'var'. | 909 * specified. The [type] must be `null` if the keyword is 'var'. |
847 */ | 910 */ |
848 SimpleFormalParameter simpleFormalParameter( | 911 SimpleFormalParameter simpleFormalParameter( |
849 Comment comment, | 912 Comment comment, |
850 List<Annotation> metadata, | 913 List<Annotation> metadata, |
851 Token keyword, | 914 Token keyword, |
852 TypeAnnotation type, | 915 TypeAnnotation type, |
853 SimpleIdentifier identifier); | 916 SimpleIdentifier identifier); |
854 | 917 |
855 /** | 918 /** |
919 * Returns a newly created formal parameter. Either or both of the | |
920 * [comment] and [metadata] can be `null` if the parameter does not have the | |
921 * corresponding attribute. The [keyword] can be `null` if a type was | |
922 * specified. The [type] must be `null` if the keyword is 'var'. | |
923 */ | |
924 SimpleFormalParameter simpleFormalParameter2( | |
925 {Comment comment, | |
926 List<Annotation> metadata, | |
927 Token covariantKeyword, | |
928 Token keyword, | |
929 TypeAnnotation type, | |
930 @required SimpleIdentifier identifier}); | |
931 | |
932 /** | |
856 * Returns a newly created identifier. | 933 * Returns a newly created identifier. |
857 */ | 934 */ |
858 SimpleIdentifier simpleIdentifier(Token token, {bool isDeclaration: false}); | 935 SimpleIdentifier simpleIdentifier(Token token, {bool isDeclaration: false}); |
859 | 936 |
860 /** | 937 /** |
861 * Returns a newly created simple string literal. | 938 * Returns a newly created simple string literal. |
862 */ | 939 */ |
863 SimpleStringLiteral simpleStringLiteral(Token literal, String value); | 940 SimpleStringLiteral simpleStringLiteral(Token literal, String value); |
864 | 941 |
865 /** | 942 /** |
(...skipping 10 matching lines...) Expand all Loading... | |
876 SuperConstructorInvocation superConstructorInvocation( | 953 SuperConstructorInvocation superConstructorInvocation( |
877 Token superKeyword, | 954 Token superKeyword, |
878 Token period, | 955 Token period, |
879 SimpleIdentifier constructorName, | 956 SimpleIdentifier constructorName, |
880 ArgumentList argumentList); | 957 ArgumentList argumentList); |
881 | 958 |
882 /** | 959 /** |
883 * Returns a newly created super expression. | 960 * Returns a newly created super expression. |
884 */ | 961 */ |
885 SuperExpression superExpression(Token superKeyword); | 962 SuperExpression superExpression(Token superKeyword); |
886 | |
887 /** | 963 /** |
Brian Wilkerson
2017/02/24 18:27:59
nit: restore blank line
| |
888 * Returns a newly created switch case. The list of [labels] can be `null` | 964 * Returns a newly created switch case. The list of [labels] can be `null` |
889 * if there are no labels. | 965 * if there are no labels. |
890 */ | 966 */ |
891 SwitchCase switchCase(List<Label> labels, Token keyword, | 967 SwitchCase switchCase(List<Label> labels, Token keyword, |
892 Expression expression, Token colon, List<Statement> statements); | 968 Expression expression, Token colon, List<Statement> statements); |
893 | 969 |
894 /** | 970 /** |
895 * Returns a newly created switch default. The list of [labels] can be | 971 * Returns a newly created switch default. The list of [labels] can be |
896 * `null` if there are no labels. | 972 * `null` if there are no labels. |
897 */ | 973 */ |
898 SwitchDefault switchDefault(List<Label> labels, Token keyword, Token colon, | 974 SwitchDefault switchDefault(List<Label> labels, Token keyword, Token colon, |
899 List<Statement> statements); | 975 List<Statement> statements); |
976 | |
900 /** | 977 /** |
901 * Returns a newly created switch statement. The list of [members] can be | 978 * Returns a newly created switch statement. The list of [members] can be |
902 * `null` if there are no switch members. | 979 * `null` if there are no switch members. |
903 */ | 980 */ |
904 SwitchStatement switchStatement( | 981 SwitchStatement switchStatement( |
905 Token switchKeyword, | 982 Token switchKeyword, |
906 Token leftParenthesis, | 983 Token leftParenthesis, |
907 Expression expression, | 984 Expression expression, |
908 Token rightParenthesis, | 985 Token rightParenthesis, |
909 Token leftBracket, | 986 Token leftBracket, |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
986 * specified. The [type] must be `null` if the keyword is 'var'. | 1063 * specified. The [type] must be `null` if the keyword is 'var'. |
987 */ | 1064 */ |
988 VariableDeclarationList variableDeclarationList( | 1065 VariableDeclarationList variableDeclarationList( |
989 Comment comment, | 1066 Comment comment, |
990 List<Annotation> metadata, | 1067 List<Annotation> metadata, |
991 Token keyword, | 1068 Token keyword, |
992 TypeAnnotation type, | 1069 TypeAnnotation type, |
993 List<VariableDeclaration> variables); | 1070 List<VariableDeclaration> variables); |
994 | 1071 |
995 /** | 1072 /** |
996 * Returns a newly created generic type alias. Either or both of the | |
997 * [comment] and [metadata] can be `null` if the variable list does not have | |
998 * the corresponding attribute. The [typeParameters] can be `null` if there | |
999 * are no type parameters. | |
1000 */ | |
1001 GenericTypeAlias genericTypeAlias(Comment comment, List<Annotation> metadata, Token typedefKeyword, SimpleIdentifier name, TypeParameterList typeParameters, T oken equals, GenericFunctionType functionType, Token semicolon); | |
1002 | |
1003 /** | |
1004 * Initialize a newly created generic function type. | |
1005 */ | |
1006 GenericFunctionType genericFunctionType(TypeAnnotation returnType, Token funct ionKeyword, TypeParameterList typeParameters, FormalParameterList _parameters); | |
1007 | |
1008 /** | |
1009 * Returns a newly created variable declaration statement. | 1073 * Returns a newly created variable declaration statement. |
1010 */ | 1074 */ |
1011 VariableDeclarationStatement variableDeclarationStatement( | 1075 VariableDeclarationStatement variableDeclarationStatement( |
1012 VariableDeclarationList variableList, Token semicolon); | 1076 VariableDeclarationList variableList, Token semicolon); |
1013 | 1077 |
1014 /** | 1078 /** |
1015 * Returns a newly created while statement. | 1079 * Returns a newly created while statement. |
1016 */ | 1080 */ |
1017 WhileStatement whileStatement(Token whileKeyword, Token leftParenthesis, | 1081 WhileStatement whileStatement(Token whileKeyword, Token leftParenthesis, |
1018 Expression condition, Token rightParenthesis, Statement body); | 1082 Expression condition, Token rightParenthesis, Statement body); |
1019 | 1083 |
1020 /** | 1084 /** |
1021 * Returns a newly created with clause. | 1085 * Returns a newly created with clause. |
1022 */ | 1086 */ |
1023 WithClause withClause(Token withKeyword, List<TypeName> mixinTypes); | 1087 WithClause withClause(Token withKeyword, List<TypeName> mixinTypes); |
1024 | 1088 |
1025 /** | 1089 /** |
1026 * Returns a newly created yield expression. The [star] can be `null` if no | 1090 * Returns a newly created yield expression. The [star] can be `null` if no |
1027 * star was provided. | 1091 * star was provided. |
1028 */ | 1092 */ |
1029 YieldStatement yieldStatement( | 1093 YieldStatement yieldStatement( |
1030 Token yieldKeyword, Token star, Expression expression, Token semicolon); | 1094 Token yieldKeyword, Token star, Expression expression, Token semicolon); |
1031 } | 1095 } |
OLD | NEW |