Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(163)

Unified Diff: tools/idl_parser/test_parser/enum.idl

Issue 13498002: Add WebIDL compliant parser plus tests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge using updated lexer, fix error msgs Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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"
+};
+

Powered by Google App Engine
This is Rietveld 408576698