blob: e3107c0ae41e64bd37e36220aef656b94c8a4984 [file] [log] [blame]
/* 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"
};
/* TREE
*Enum(TrailingComma)
* EnumItem(rice)
* EnumItem(noodles)
* EnumItem(other)
*/
enum TrailingComma {
"rice",
"noodles",
"other",
};
/* BUILD Error(Unexpected string "noodles" after string "rice".) */
/* ERROR Unexpected string "noodles" after string "rice". */
enum MissingComma {
"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"
};