blob: ef0abaf6b7cf74c6a5e8dde4f1d4a2904da2a512 [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.
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"
};