127 lines
2.5 KiB
Plaintext
127 lines
2.5 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 = 1,
|
||
|
/* BUILD EnumItem(other) */
|
||
|
other
|
||
|
};
|
||
|
|
||
|
/* BUILD Error(Unexpected identifier "noodles" after identifier "rice".) */
|
||
|
/* ERROR Unexpected identifier "noodles" after identifier "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 string "somename" after "{".) */
|
||
|
/* ERROR Unexpected string "somename" after "{". */
|
||
|
enum ExtraComma {
|
||
|
"somename",
|
||
|
noodles,
|
||
|
other,
|
||
|
};
|
||
|
|
||
|
/* BUILD Enum(MealType3) */
|
||
|
enum MealType3 {
|
||
|
/* BUILD EnumItem(rice) */
|
||
|
rice = 1 << 1,
|
||
|
/* BUILD EnumItem(noodles) */
|
||
|
noodles = 0x1 << 0x2,
|
||
|
/* BUILD EnumItem(other) */
|
||
|
other = 012 << 777
|
||
|
};
|
||
|
|
||
|
/* BUILD Enum(MealType4) */
|
||
|
enum MealType4 {
|
||
|
/* BUILD EnumItem(rice) */
|
||
|
rice = true,
|
||
|
/* BUILD EnumItem(noodles) */
|
||
|
noodles = false
|
||
|
};
|