120 lines
2.4 KiB
Plaintext
120 lines
2.4 KiB
Plaintext
/* 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"
|
|
};
|
|
|