[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemacs-commit] qemacs clang.c
From: |
Charlie Gordon |
Subject: |
[Qemacs-commit] qemacs clang.c |
Date: |
Fri, 30 May 2014 17:37:32 +0000 |
CVSROOT: /sources/qemacs
Module name: qemacs
Changes by: Charlie Gordon <chqrlie> 14/05/30 17:37:32
Modified files:
. : clang.c
Log message:
add C flavors for elastiC and Jed slang languages
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/clang.c?cvsroot=qemacs&r1=1.73&r2=1.74
Patches:
Index: clang.c
===================================================================
RCS file: /sources/qemacs/qemacs/clang.c,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -b -r1.73 -r1.74
--- clang.c 30 May 2014 17:18:13 -0000 1.73
+++ clang.c 30 May 2014 17:37:31 -0000 1.74
@@ -47,6 +47,8 @@
CLANG_CALC,
CLANG_ENSCRIPT,
CLANG_QSCRIPT,
+ CLANG_ELASTIC,
+ CLANG_JED,
CLANG_FLAVOR = 0x1F,
};
@@ -401,6 +403,26 @@
"char|int|var|void|Array|Char|Function|Number|Object|String|"
};
+static const char ec_keywords[] = {
+ "@false|@nil|@true|new|self|"
+ "break|catch|class|continue|do|else|extends|for|from|function|goto|if|"
+ "import|in|local|method|package|private|public|return|static|super|"
+ "throw|try|while|"
+};
+
+static const char ec_types[] = {
+ "none|short|ushort|int|uint|long|ulong|char|uchar|float|double|bool|"
+ "string|static_string|array|callback|symbol|"
+};
+
+static const char sl_keywords[] = {
+ "define|if|else|return|static|while|break|do|"
+};
+
+static const char sl_types[] = {
+ "variable|"
+};
+
static const char c_extensions[] = {
"c|h|i|C|H|I|" /* C language */
/* Other C flavors */
@@ -618,6 +640,11 @@
continue;
}
break;
+ case '%':
+ if (flavor == CLANG_JED) {
+ goto parse_comment1;
+ }
+ break;
case '#': /* preprocessor */
if (mode_flags & CLANG_PREPROC) {
state = IN_C_PREPROCESS;
@@ -1379,7 +1406,6 @@
return 50;
}
}
-
return 1;
}
@@ -1711,6 +1737,28 @@
.auto_indent = 1,
};
+ModeDef ec_mode = {
+ .name = "elastiC",
+ .extensions = "ec",
+ .colorize_func = c_colorize_line,
+ .colorize_flags = CLANG_ELASTIC,
+ .keywords = ec_keywords,
+ .types = ec_types,
+ .indent_func = c_indent_line,
+ .auto_indent = 1,
+};
+
+ModeDef sl_mode = {
+ .name = "Jed", /* S-Lang */
+ .extensions = "sl",
+ .colorize_func = c_colorize_line,
+ .colorize_flags = CLANG_JED | CLANG_PREPROC,
+ .keywords = sl_keywords,
+ .types = sl_types,
+ .indent_func = c_indent_line,
+ .auto_indent = 1,
+};
+
static int c_init(void)
{
const char *p;
@@ -1747,6 +1795,8 @@
qe_register_mode(&calc_mode, MODEF_SYNTAX);
qe_register_mode(&enscript_mode, MODEF_SYNTAX);
qe_register_mode(&qscript_mode, MODEF_SYNTAX);
+ qe_register_mode(&ec_mode, MODEF_SYNTAX);
+ qe_register_mode(&sl_mode, MODEF_SYNTAX);
return 0;
}