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" |
+}; |
+ |