1 /* Copyright 2013 The Chromium Authors. All rights reserved. 2 Use of this source code is governed by a BSD-style license that can be 3 found in the LICENSE file. */ 4 5 /* Test ExtendedAttribute productions 6 7 Run with --test to generate an AST and verify that all comments accurately 8 reflect the state of the Nodes. 9 10 BUILD Type(Name) 11 This comment signals that a node of type <Type> is created with the 12 name <Name>. 13 14 ERROR Error String 15 This comment signals that a error of <Error String> is generated. The error 16 is not assigned to a node, but are expected in order. 17 18 PROP Key=Value 19 This comment signals that a property has been set on the Node such that 20 <Key> = <Value>. 21 22 TREE 23 Type(Name) 24 Type(Name) 25 Type(Name) 26 Type(Name) 27 ... 28 This comment signals that a tree of nodes matching the BUILD comment 29 symatics should exist. This is an exact match. 30 */ 31 32 /* TREE 33 *Interface(Foo) 34 * ExtAttributes() 35 * ExtAttribute(foo) 36 * Arguments() 37 */ 38 39 [foo()] interface Foo {}; 40 41 /* TREE 42 *Interface(Foo) 43 * ExtAttributes() 44 * ExtAttribute(foo) 45 * Values() 46 */ 47 48 [foo(1)] interface Foo {}; 49 50 /* TREE 51 *Interface(Foo) 52 * ExtAttributes() 53 * ExtAttribute(foo) 54 * Values() 55 */ 56 57 [foo(1 true 1.2e-3)] interface Foo {}; 58 59 /* TREE 60 *Interface(Foo) 61 * ExtAttributes() 62 * ExtAttribute(foo) 63 * Arguments() 64 * Error(Unexpected ).) 65 */ 66 67 [foo(null)] interface Foo {}; 68 69 /* TREE 70 *Interface(Foo) 71 * ExtAttributes() 72 * ExtAttribute(foo) 73 */ 74 75 [foo=1] interface Foo {}; 76 77 /* TREE 78 *Interface(Foo) 79 * ExtAttributes() 80 * ExtAttribute(foo) 81 */ 82 83 [foo=true] interface Foo {}; 84 85 /* TREE 86 *Interface(Foo) 87 * ExtAttributes() 88 * ExtAttribute(foo) 89 */ 90 91 [foo=1.2e-3] interface Foo {}; 92 93 /* TREE 94 *Interface(Foo) 95 * ExtAttributes() 96 * ExtAttribute(foo) 97 */ 98 99 [foo=(bar, baz)] interface Foo {}; 100