- add sources.
[platform/framework/web/crosswalk.git] / src / tools / idl_parser / test_parser / extattr_ppapi.idl
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 {};