| Index: runtime/vm/parser.h
|
| ===================================================================
|
| --- runtime/vm/parser.h (revision 23883)
|
| +++ runtime/vm/parser.h (working copy)
|
| @@ -141,6 +141,11 @@
|
|
|
| static void ParseFunction(ParsedFunction* parsed_function);
|
|
|
| + // Parse and evaluate the metadata expressions at token_pos in the
|
| + // class namespace of class cls (which can be the implicit toplevel
|
| + // class if the metadata is at the top-level).
|
| + static RawObject* ParseMetadata(const Class& cls, intptr_t token_pos);
|
| +
|
| // Format and print a message with source location.
|
| // A null script means no source and a negative token_pos means no position.
|
| static void PrintMessage(const Script& script,
|
| @@ -261,7 +266,7 @@
|
|
|
| void SkipIf(Token::Kind);
|
| void SkipBlock();
|
| - void SkipMetadata();
|
| + intptr_t SkipMetadata();
|
| void SkipToMatchingParenthesis();
|
| void SkipTypeArguments();
|
| void SkipType(bool allow_void);
|
| @@ -325,13 +330,15 @@
|
|
|
| // Support for parsing of scripts.
|
| void ParseTopLevel();
|
| - void ParseClassDeclaration(const GrowableObjectArray& pending_classes);
|
| + void ParseClassDeclaration(const GrowableObjectArray& pending_classes,
|
| + intptr_t metadata_pos);
|
| void ParseClassDefinition(const Class& cls);
|
| void ParseMixinTypedef(const GrowableObjectArray& pending_classes);
|
| void ParseTypedef(const GrowableObjectArray& pending_classes);
|
| - void ParseTopLevelVariable(TopLevel* top_level);
|
| - void ParseTopLevelFunction(TopLevel* top_level);
|
| - void ParseTopLevelAccessor(TopLevel* top_level);
|
| + void ParseTopLevelVariable(TopLevel* top_level, intptr_t metadata_pos);
|
| + void ParseTopLevelFunction(TopLevel* top_level, intptr_t metadata_pos);
|
| + void ParseTopLevelAccessor(TopLevel* top_level, intptr_t metadata_pos);
|
| + RawArray* EvaluateMetadata();
|
|
|
| // Support for parsing libraries.
|
| RawObject* CallLibraryTagHandler(Dart_LibraryTag tag,
|
| @@ -358,7 +365,8 @@
|
| void ParseQualIdent(QualIdent* qual_ident);
|
| void ParseMethodOrConstructor(ClassDesc* members, MemberDesc* method);
|
| void ParseFieldDefinition(ClassDesc* members, MemberDesc* field);
|
| - void ParseClassMemberDefinition(ClassDesc* members);
|
| + void ParseClassMemberDefinition(ClassDesc* members,
|
| + intptr_t metadata_pos);
|
| void ParseFormalParameter(bool allow_explicit_default_value,
|
| ParamList* params);
|
| void ParseFormalParameters(bool allow_explicit_default_values,
|
| @@ -522,7 +530,7 @@
|
| AstNode* ParseMapLiteral(intptr_t type_pos,
|
| bool is_const,
|
| const AbstractTypeArguments& type_arguments);
|
| - AstNode* ParseNewOperator();
|
| + AstNode* ParseNewOperator(Token::Kind op_kind);
|
| AstNode* ParseArgumentDefinitionTest();
|
|
|
| // An implicit argument, if non-null, is prepended to the returned list.
|
|
|