/* Copyright 2013 The Chromium Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. */ /* Test ExtendedAttribute productions Run with --test to generate an AST and verify that all comments accurately reflect the state of the Nodes. BUILD Type(Name) This comment signals that a node of type is created with the name . ERROR Error String This comment signals that a error of is generated. The error is not assigned to a node, but are expected in order. PROP Key=Value This comment signals that a property has been set on the Node such that = . TREE Type(Name) Type(Name) Type(Name) Type(Name) ... This comment signals that a tree of nodes matching the BUILD comment symatics should exist. This is an exact match. */ /* TREE *Interface(Foo) * ExtAttributes() * ExtAttribute(foo) * Arguments() */ [foo()] interface Foo {}; /* TREE *Interface(Foo) * ExtAttributes() * ExtAttribute(foo) * Values() */ [foo(1)] interface Foo {}; /* TREE *Interface(Foo) * ExtAttributes() * ExtAttribute(foo) * Values() */ [foo(1 true 1.2e-3)] interface Foo {}; /* TREE *Interface(Foo) * ExtAttributes() * ExtAttribute(foo) * Arguments() * Error(Unexpected ).) */ [foo(null)] interface Foo {}; /* TREE *Interface(Foo) * ExtAttributes() * ExtAttribute(foo) */ [foo=1] interface Foo {}; /* TREE *Interface(Foo) * ExtAttributes() * ExtAttribute(foo) */ [foo=true] interface Foo {}; /* TREE *Interface(Foo) * ExtAttributes() * ExtAttribute(foo) */ [foo=1.2e-3] interface Foo {};