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

Unified Diff: runtime/vm/parser.h

Issue 16780008: Reified metadata in the VM (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 6 months 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 side-by-side diff with in-line comments
Download patch
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.

Powered by Google App Engine
This is Rietveld 408576698