1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/* Copyright (c) 2013 The Chromium Authors. All rights reserved.
2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)   Use of this source code is governed by a BSD-style license that can be
3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  found in the LICENSE file. */
4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/* Test Callback productions
6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)Run with --test to generate an AST and verify that all comments accurately
8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)reflect the state of the Nodes.
9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)BUILD Type(Name)
11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)This comment signals that a node of type <Type> is created with the
12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)name <Name>.
13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)ERROR Error String
15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)This comment signals that a error of <Error String> is generated.  The error
16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)is not assigned to a node, but are expected in order.
17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)PROP Key=Value
19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)This comment signals that a property has been set on the Node such that
20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)<Key> = <Value>.
21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)TREE
23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)Type(Name)
24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  Type(Name)
25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  Type(Name)
26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    Type(Name)
27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    ...
28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)This comment signals that a tree of nodes matching the BUILD comment
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)symatics should exist.  This is an exact match.
30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)*/
31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/* TREE
34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *Callback(VoidFunc)
35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *  Type()
36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *    PrimitiveType(void)
37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *  Arguments()
38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */
39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)callback VoidFunc = void();
40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/* TREE
42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *Callback(VoidFuncLongErr)
43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *  Type()
44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *    PrimitiveType(void)
45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *  Arguments()
46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *    Error(Unexpected ).)
47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */
48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)callback VoidFuncLongErr = void ( long );
49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/* TREE
51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *Callback(VoidFuncLong)
52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *  Type()
53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *    PrimitiveType(void)
54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *  Arguments()
55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *    Argument(L1)
56c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *      Type()
57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *        PrimitiveType(long)
58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */
59c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)callback VoidFuncLong = void ( long L1 );
60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/* TREE
62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *Callback(VoidFuncLongArray)
63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *  Type()
64c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *    PrimitiveType(void)
65c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *  Arguments()
66c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *    Argument(L1)
67c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *      Type()
68c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *        PrimitiveType(long)
69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *        Array()
70c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */
71c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)callback VoidFuncLongArray = void ( long[] L1 );
72c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
73c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/* TREE
74c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *Callback(VoidFuncLongArray5)
75c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *  Type()
76c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *    PrimitiveType(void)
77c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *  Arguments()
78c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *    Argument(L1)
79c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *      Type()
80c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *        PrimitiveType(long)
81c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *        Array(5)
82c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */
83c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)callback VoidFuncLongArray5 = void ( long[5] L1 );
84c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
85c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
86c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/* TREE
87c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *Callback(VoidFuncLongArray54)
88c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *  Type()
89c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *    PrimitiveType(void)
90c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *  Arguments()
91c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *    Argument(L1)
92c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *      Type()
93c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *        PrimitiveType(long)
94c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *        Array(5)
95c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *    Argument(L2)
96c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *      Type()
97c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *        PrimitiveType(long long)
98c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *        Array(4)
99c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */
100c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)callback VoidFuncLongArray54 = void ( long[5] L1, long long [4] L2 );
101c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
102c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
103c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/* TREE
104c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *Callback(VoidFuncLongIdent)
105c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *  Type()
106c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *    PrimitiveType(void)
107c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *  Arguments()
108c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *    Argument(L1)
109c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *      Type()
110c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *        PrimitiveType(long)
111c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *        Array(5)
112c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *    Argument(L2)
113c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *      Type()
114c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *        Typeref(VoidFuncLongArray)
115c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */
116c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)callback VoidFuncLongIdent = void ( long[5] L1, VoidFuncLongArray L2 );
117