summaryrefslogtreecommitdiffstats
path: root/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/src/language_names.h
diff options
context:
space:
mode:
Diffstat (limited to 'debian/uncrustify-trinity/uncrustify-trinity-0.78.0/src/language_names.h')
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/src/language_names.h109
1 files changed, 109 insertions, 0 deletions
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/src/language_names.h b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/src/language_names.h
new file mode 100644
index 00000000..df63d894
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/src/language_names.h
@@ -0,0 +1,109 @@
+/**
+ * @file language_names.h
+ *
+ * @author Guy Maurel
+ * extract from uncrustify.cpp
+ * @license GPL v2+
+ */
+
+#ifndef LANGUAGE_NAMES_H_INCLUDED
+#define LANGUAGE_NAMES_H_INCLUDED
+
+#include "base_types.h"
+
+#include <cstddef> // to get size_t
+#include <cstdio>
+#include <map>
+#include <string>
+#include <string.h>
+//#include <strings.h>
+
+struct lang_name_t
+{
+ const char *name;
+ size_t lang;
+};
+
+//! list of all programming languages Uncrustify supports
+enum lang_flag_e
+{
+ LANG_C = 0x0001,
+ LANG_CPP = 0x0002,
+ LANG_D = 0x0004,
+ LANG_CS = 0x0008, //! C# (C-Sharp)
+ LANG_JAVA = 0x0010,
+ LANG_OC = 0x0020, //! Objective-C
+ LANG_VALA = 0x0040,
+ LANG_PAWN = 0x0080,
+ LANG_ECMA = 0x0100, //! ECMA Script (JavaScript)
+
+ LANG_ALLC_NOT_C = 0x017e, /** LANG_CPP | LANG_D | LANG_CS | Issue # 4044
+ * LANG_JAVA | LANG_OC | LANG_VALA | LANG_ECMA */
+ LANG_ALLC = 0x017f, /** LANG_C | LANG_CPP | LANG_D | LANG_CS |
+ * LANG_JAVA | LANG_OC | LANG_VALA | LANG_ECMA */
+ LANG_ALL = 0x0fff, //! applies to all languages
+
+ FLAG_HDR = 0x2000, /*<< Header file for C family languages */
+ FLAG_DIG = 0x4000, //! digraph/trigraph
+ FLAG_PP = 0x8000, //! only appears in a preprocessor
+};
+
+
+size_t language_flags_from_name(const char *name);
+
+
+/**
+ * Gets the tag text for a language
+ *
+ * @param lang The LANG_xxx enum
+ *
+ * @return A string
+ */
+const char *language_name_from_flags(size_t lang);
+
+bool ends_with(const char *filename, const char *tag, bool case_sensitive);
+
+
+//! type to map a programming language to a typically used filename extension
+struct lang_ext_t
+{
+ const char *ext; //! filename extension typically used for ...
+ const char *name; //! a programming language
+};
+
+
+/**
+ * Set idx = 0 before the first call.
+ * Done when returns nullptr
+ */
+const char *get_file_extension(int &idx);
+
+
+typedef std::map<std::string, std::string> extension_map_t;
+/**
+ * maps a file extension to a language flag.
+ *
+ * @note The "." need to be included, as in ".c". The file extensions
+ * ARE case sensitive.
+ */
+static extension_map_t g_ext_map;
+
+
+const char *extension_add(const char *ext_text, const char *lang_text);
+
+
+//! Prints custom file extensions to the file
+void print_extensions(FILE *pfile);
+
+
+// TODO: better use enum lang_t for source file language
+/**
+ * Find the language for the file extension
+ * Defaults to C
+ *
+ * @param filename The name of the file
+ * @return LANG_xxx
+ */
+size_t language_flags_from_filename(const char *filename);
+
+#endif /* LANGUAGE_NAMES_H_INCLUDED */