• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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. */
4
5/* Test Struct productions
6
7Run with --test to generate an AST and verify that all comments accurately
8reflect the state of the Nodes.
9
10BUILD Type(Name)
11This comment signals that a node of type <Type> is created with the
12name <Name>.
13
14ERROR Error String
15This comment signals that a error of <Error String> is generated.  The error
16is not assigned to a node, but are expected in order.
17
18PROP Key=Value
19This comment signals that a property has been set on the Node such that
20<Key> = <Value>.
21
22TREE
23Type(Name)
24  Type(Name)
25  Type(Name)
26    Type(Name)
27    ...
28This comment signals that a tree of nodes matching the BUILD comment
29symatics should exist.  This is an exact match.
30*/
31
32/* TREE
33 *Struct(MyStruct)
34 *  Member(x)
35 *    Type()
36 *      PrimitiveType(uint32_t)
37 *  Member(y)
38 *    Type()
39 *      PrimitiveType(uint64_t)
40 *  Member(string)
41 *    ExtAttributes()
42 *      ExtAttribute(fake_attribute)
43 *    Type()
44 *      PrimitiveType(str_t)
45 *  ExtAttributes()
46 *    ExtAttribute(union)
47 */
48[union] struct MyStruct {
49  uint32_t x;
50  uint64_t y;
51  [fake_attribute] str_t string;
52};
53