--- /dev/null
+/*
+ * This is a parser of the ASN.1 grammar.
+ */
+#ifndef ASN1PARSER_H
+#define ASN1PARSER_H
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#include "asn1_ref.h"
+#include "asn1_buffer.h"
+#include "asn1_namespace.h"
+
+#include "asn1p_integer.h"
+#include "asn1p_list.h"
+#include "asn1p_oid.h" /* Object identifiers (OIDs) */
+#include "asn1p_module.h" /* ASN.1 definition module */
+#include "asn1p_value.h" /* Value definition */
+#include "asn1p_param.h" /* Parameterization */
+#include "asn1p_constr.h" /* Type Constraints */
+#include "asn1p_xports.h" /* IMports/EXports */
+#include "asn1p_class.h" /* CLASS-related stuff */
+#include "asn1p_expr.h" /* A single ASN.1 expression */
+
+/*
+ * Parser flags.
+ */
+enum asn1p_flags {
+ A1P_NOFLAGS,
+ /*
+ * Enable verbose debugging output from lexer and parser.
+ */
+ A1P_DEBUG_LEXER = 0x01,
+ A1P_DEBUG_PARSER = 0x02,
+ /*
+ * Unlock internal helper value types.
+ */
+ A1P_EXTENDED_VALUES = 0x04
+};
+
+/*
+ * Perform low-level parsing of ASN.1 module[s]
+ * and return a list of module trees.
+ */
+asn1p_t *asn1p_parse_file(const char *filename,
+ enum asn1p_flags);
+asn1p_t *asn1p_parse_buffer(const char *buffer, int size /* = -1 */,
+ const char *debug_filename, int initial_lineno,
+ enum asn1p_flags);
+
+extern const char *asn1p_parse_debug_filename;
+
+int asn1p_lex_destroy();
+
+#endif /* ASN1PARSER_H */