aboutsummaryrefslogtreecommitdiff
path: root/syntax.h
diff options
context:
space:
mode:
Diffstat (limited to 'syntax.h')
-rw-r--r--syntax.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/syntax.h b/syntax.h
new file mode 100644
index 0000000..a945389
--- /dev/null
+++ b/syntax.h
@@ -0,0 +1,28 @@
+#ifndef SYNTAX_H
+#define SYNTAX_H
+
+#include <regex.h>
+
+#define SYNTAX_REGEX_RULES 10
+
+typedef struct {
+ short fg, bg; /* fore and background color */
+ int attr; /* curses attributes */
+} Color;
+
+typedef struct {
+ char *rule; /* regex to search for */
+ int cflags; /* compilation flags (REG_*) used when compiling */
+ Color color; /* settings to apply in case of a match */
+ regex_t regex; /* compiled form of the above rule */
+} SyntaxRule;
+
+typedef struct Syntax Syntax;
+struct Syntax { /* a syntax definition */
+ char *name; /* syntax name */
+ char *file; /* apply to files matching this regex */
+ regex_t file_regex; /* compiled file name regex */
+ SyntaxRule rules[SYNTAX_REGEX_RULES]; /* all rules for this file type */
+};
+
+#endif