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

Unified Diff: compiler/java/com/google/dart/compiler/ast/DartAnnotation.java

Issue 10860012: Add support for metadata annotation syntax (issue 4056) (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 4 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: compiler/java/com/google/dart/compiler/ast/DartAnnotation.java
===================================================================
--- compiler/java/com/google/dart/compiler/ast/DartAnnotation.java (revision 0)
+++ compiler/java/com/google/dart/compiler/ast/DartAnnotation.java (revision 0)
@@ -0,0 +1,52 @@
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package com.google.dart.compiler.ast;
+
+import java.util.List;
+
+
+/**
+ * Instances of the class {@code DartAnnotation} represent metadata that can be associated with an
+ * AST node.
+ *
+ * <pre>
+ * metadata ::=
+ * annotation*
+ *
+ * annotation ::=
+ * '@' qualified (‘.’ identifier)? arguments?
+ * </pre>
+ */
+public class DartAnnotation extends DartNode {
+ private DartExpression name;
+
+ private NodeList<DartExpression> arguments = NodeList.create(this);
+
+ public DartAnnotation(DartExpression name, List<DartExpression> arguments) {
+ this.name = becomeParentOf(name);
+ if (arguments != null) {
+ this.arguments.addAll(arguments);
+ }
+ }
+
+ @Override
+ public <R> R accept(ASTVisitor<R> visitor) {
+ return visitor.visitAnnotation(this);
+ }
+
+ public DartExpression getName() {
+ return name;
+ }
+
+ public NodeList<DartExpression> getArguments() {
+ return arguments;
+ }
+
+ @Override
+ public void visitChildren(ASTVisitor<?> visitor) {
+ safelyVisitChild(name, visitor);
+ arguments.accept(visitor);
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698