Add WebIDL and Pepper compliant lexer/parser tool.
[chromium-blink-merge.git] / tools / idl_parser / test_parser / dictionary.idl
blob5030686fc93b41674e9a11aa68fe5c56000aefec
1 /* Copyright (c) 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. */
5 /* Test Dictionary productions
7 Run with --test to generate an AST and verify that all comments accurately
8 reflect the state of the Nodes.
10 BUILD Type(Name)
11 This comment signals that a node of type <Type> is created with the
12 name <Name>.
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.
18 PROP Key=Value
19 This comment signals that a property has been set on the Node such that
20 <Key> = <Value>.
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.
33 /* TREE
34 *Dictionary(MyDict)
36 dictionary MyDict { };
38 /* TREE
39 *Dictionary(MyDictInherit)
40 * Inherit(Foo)
42 dictionary MyDictInherit : Foo {};
44 /* TREE
45 *Dictionary(MyDictPartial)
47 partial dictionary MyDictPartial { };
49 /* ERROR Unexpected ":" after identifier "MyDictInherit". */
50 partial dictionary MyDictInherit : Foo {};
52 /* TREE
53 *Dictionary(MyDictBig)
54 * Key(setString)
55 * Type()
56 * PrimitiveType(DOMString)
57 * Default(Foo)
58 * Key(setLong)
59 * Type()
60 * PrimitiveType(unsigned long long)
61 * Default(123)
62 * Key(unsetLong)
63 * Type()
64 * PrimitiveType(long)
66 dictionary MyDictBig {
67 DOMString setString = "Foo";
68 unsigned long long setLong = 123;
69 long unsetLong;
73 /* ERROR Unexpected "{" after keyword "dictionary". */
74 dictionary {
75 DOMString? setString = null;
79 /* ERROR Unexpected identifier "NoColon" after identifier "ForParent". */
80 dictionary ForParent NoColon {
81 DOMString? setString = null;
84 /* TREE
85 *Dictionary(MyDictNull)
86 * Key(setString)
87 * Type()
88 * PrimitiveType(DOMString)
89 * Default(NULL)
91 dictionary MyDictNull {
92 DOMString? setString = null;