summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/resources/webidl2/test/widlproc/src/lex.h
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/resources/webidl2/test/widlproc/src/lex.h')
-rw-r--r--testing/web-platform/tests/resources/webidl2/test/widlproc/src/lex.h141
1 files changed, 141 insertions, 0 deletions
diff --git a/testing/web-platform/tests/resources/webidl2/test/widlproc/src/lex.h b/testing/web-platform/tests/resources/webidl2/test/widlproc/src/lex.h
new file mode 100644
index 000000000..e30b77b36
--- /dev/null
+++ b/testing/web-platform/tests/resources/webidl2/test/widlproc/src/lex.h
@@ -0,0 +1,141 @@
+
+/***********************************************************************
+ * $Id$
+ * Copyright 2009 Aplix Corporation. All rights reserved.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***********************************************************************/
+#ifndef lex_h
+#define lex_h
+
+// starting from "attribute" are the list of names allowed as arguments identifier
+#define KEYWORDS \
+ "DOMString\0" \
+ "ByteString\0" \
+ "Date\0" \
+ "RegExp\0" \
+ "false\0" \
+ "object\0" \
+ "true\0" \
+ "any\0" \
+ "boolean\0" \
+ "byte\0" \
+ "double\0" \
+ "float\0" \
+ "Infinity\0" \
+ "-Infinity\0" \
+ "iterator\0" \
+ "long\0" \
+ "NaN\0" \
+ "null\0" \
+ "octet\0" \
+ "optional\0" \
+ "or\0" \
+ "readonly\0" \
+ "sequence\0" \
+ "short\0" \
+ "unsigned\0" \
+ "void\0" \
+ "attribute\0" \
+ "callback\0" \
+ "const\0" \
+ "creator\0" \
+ "deleter\0" \
+ "dictionary\0" \
+ "enum\0" \
+ "exception\0" \
+ "getter\0" \
+ "implements\0" \
+ "inherit\0" \
+ "interface\0" \
+ "legacycaller\0" \
+ "partial\0" \
+ "serializer\0" \
+ "setter\0" \
+ "static\0" \
+ "stringifier\0" \
+ "typedef\0" \
+ "unrestricted\0"
+
+
+enum toktype {
+ TOK_EOF = -1,
+ TOK_BLOCKCOMMENT = 0x80,
+ TOK_INLINECOMMENT, TOK_INTEGER, TOK_FLOAT, TOK_IDENTIFIER,
+ TOK_STRING, TOK_ELLIPSIS, TOK_DOUBLEBRACKET,
+ /* Keywords must be in the same order as above. */
+ TOK_DOMString,
+ TOK_ByteString,
+ TOK_Date,
+ TOK_RegExp,
+ TOK_false,
+ TOK_object,
+ TOK_true,
+ TOK_any,
+ TOK_boolean,
+ TOK_byte,
+ TOK_double,
+ TOK_float,
+ TOK_infinity,
+ TOK_minusinfinity,
+ TOK_iterator,
+ TOK_long,
+ TOK_NaN,
+ TOK_null,
+ TOK_octet,
+ TOK_optional,
+ TOK_or,
+ TOK_readonly,
+ TOK_sequence,
+ TOK_short,
+ TOK_unsigned,
+ TOK_void,
+ /* Below that line are keywords that are allowed as arguments names */
+ TOK_attribute,
+ TOK_callback,
+ TOK_const,
+ TOK_creator,
+ TOK_deleter,
+ TOK_dictionary,
+ TOK_enum,
+ TOK_exception,
+ TOK_getter,
+ TOK_implements,
+ TOK_inherit,
+ TOK_interface,
+ TOK_legacycaller,
+ TOK_partial,
+ TOK_serializer,
+ TOK_setter,
+ TOK_static,
+ TOK_stringifier,
+ TOK_typedef,
+ TOK_unrestricted,
+};
+
+struct tok {
+ enum toktype type;
+ const char *filename;
+ unsigned int linenum;
+ const char *prestart;
+ const char *start;
+ unsigned int len;
+};
+
+extern const char *filename;
+extern const char keywords[];
+
+struct node;
+
+void readinput(const char *const *argv);
+struct tok *lex(void);
+void outputwidl(struct node *node);
+
+#endif /* ndef lex_h */