| Index: tools/idl_parser/test_parser/enum.idl
|
| diff --git a/tools/idl_parser/test_parser/enum.idl b/tools/idl_parser/test_parser/enum.idl
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..233410c5d5dc8bcc6286db23f7c3d35c2a0d8b85
|
| --- /dev/null
|
| +++ b/tools/idl_parser/test_parser/enum.idl
|
| @@ -0,0 +1,119 @@
|
| +/* Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
| + Use of this source code is governed by a BSD-style license that can be
|
| + found in the LICENSE file. */
|
| +
|
| +/* Test Enum productions
|
| +
|
| +Run with --test to generate an AST and verify that all comments accurately
|
| +reflect the state of the Nodes.
|
| +
|
| +BUILD Type(Name)
|
| +This comment signals that a node of type <Type> is created with the
|
| +name <Name>.
|
| +
|
| +ERROR Error String
|
| +This comment signals that a error of <Error String> is generated. The error
|
| +is not assigned to a node, but are expected in order.
|
| +
|
| +PROP Key=Value
|
| +This comment signals that a property has been set on the Node such that
|
| +<Key> = <Value>.
|
| +
|
| +TREE
|
| +Type(Name)
|
| + Type(Name)
|
| + Type(Name)
|
| + Type(Name)
|
| + ...
|
| +This comment signals that a tree of nodes matching the BUILD comment
|
| +symatics should exist. This is an exact match.
|
| +*/
|
| +
|
| +/* TREE
|
| + *Enum(MealType1)
|
| + * EnumItem(rice)
|
| + * EnumItem(noodles)
|
| + * EnumItem(other)
|
| +*/
|
| +enum MealType1 {
|
| + /* BUILD EnumItem (rice) */
|
| + "rice",
|
| + /* BUILD EnumItem (noodles) */
|
| + "noodles",
|
| + /* BUILD EnumItem(other) */
|
| + "other"
|
| +};
|
| +
|
| +/* BUILD Error(Enum missing name.) */
|
| +/* ERROR Enum missing name. */
|
| +enum {
|
| + "rice",
|
| + "noodles",
|
| + "other"
|
| +};
|
| +
|
| +/* TREE
|
| + *Enum(MealType2)
|
| + * EnumItem(rice)
|
| + * EnumItem(noodles)
|
| + * EnumItem(other)
|
| +*/
|
| +enum MealType2 {
|
| + /* BUILD EnumItem(rice) */
|
| + "rice",
|
| + /* BUILD EnumItem(noodles) */
|
| + "noodles",
|
| + /* BUILD EnumItem(other) */
|
| + "other"
|
| +};
|
| +
|
| +/* BUILD Error(Unexpected string "noodles" after string "rice".) */
|
| +/* ERROR Unexpected string "noodles" after string "rice". */
|
| +enum MissingComma {
|
| + "rice"
|
| + "noodles",
|
| + "other"
|
| +};
|
| +
|
| +/* BUILD Error(Trailing comma in block.) */
|
| +/* ERROR Trailing comma in block. */
|
| +enum TrailingComma {
|
| + "rice",
|
| + "noodles",
|
| + "other",
|
| +};
|
| +
|
| +/* BUILD Error(Unexpected "," after ",".) */
|
| +/* ERROR Unexpected "," after ",". */
|
| +enum ExtraComma {
|
| + "rice",
|
| + "noodles",
|
| + ,"other",
|
| +};
|
| +
|
| +/* BUILD Error(Unexpected keyword "interface" after "{".) */
|
| +/* ERROR Unexpected keyword "interface" after "{". */
|
| +enum ExtraComma {
|
| + interface,
|
| + "noodles",
|
| + ,"other",
|
| +};
|
| +
|
| +/* BUILD Error(Unexpected identifier "somename" after "{".) */
|
| +/* ERROR Unexpected identifier "somename" after "{". */
|
| +enum ExtraComma {
|
| + somename,
|
| + "noodles",
|
| + ,"other",
|
| +};
|
| +
|
| +/* BUILD Enum(MealType3) */
|
| +enum MealType3 {
|
| + /* BUILD EnumItem(rice) */
|
| + "rice",
|
| + /* BUILD EnumItem(noodles) */
|
| + "noodles",
|
| + /* BUILD EnumItem(other) */
|
| + "other"
|
| +};
|
| +
|
|
|