aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/symbols-extract.tes
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2012-12-04 17:29:01 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2012-12-04 22:07:08 +0100
commitd8a316514c03d85b771a9dce4a8a51b875d955b3 (patch)
tree8966c29db767a155848f6d90f76771ce5b9de32e /src/symbols-extract.tes
parentb120616b6da52e951097f69ad267de06081d218a (diff)
downloadsciteco-d8a316514c03d85b771a9dce4a8a51b875d955b3.tar.gz
autoconf preparation: move everything into src/ subdir
Diffstat (limited to 'src/symbols-extract.tes')
-rwxr-xr-xsrc/symbols-extract.tes79
1 files changed, 79 insertions, 0 deletions
diff --git a/src/symbols-extract.tes b/src/symbols-extract.tes
new file mode 100755
index 0000000..6497324
--- /dev/null
+++ b/src/symbols-extract.tes
@@ -0,0 +1,79 @@
+#!./sciteco-minimal -m
+! ./symbols-extract.tes <input file> <output file> <prefix pattern list> <array name> !
+
+! <pos1,pos2>Mc - Compare string at pos1 with string at pos2 !
+@^Uc{
+ U.2U.1 -.%.1^[ -.%.2^[
+ <Q.1A-(Q.2A)U.c Q.1A"C|Q.2A"C|;'' Q.c"N;' %.1^[%.2>
+ Q.c
+}
+
+! <i,j>Mx - Exchange line at I with line at J (I < J), returning new J !
+@^Ux{
+ U.jU.i
+ Q.jJ X.xK
+ Q.iJ G.x .-Q.i%.j^[ .-(X.xL.)%.j^[ -K
+ Q.jJ G.x
+ Q.j
+}
+
+! <i,j>Mq - Sort lines beginning at I until J using Quicksort algorithm !
+@^Uq{
+ U.rU.l
+
+ Q.l-Q.r"<
+ Q.lU.i Q.rJB .U.j
+
+ <
+ Q.iJ <.,Q.rMc-1; .-Q.r; L> .U.i
+ Q.jJ <.,Q.rMc:; .-Q.l-1:; B> .U.j
+
+ Q.i-Q.j;
+
+ Q.i,Q.jMxU.j
+ >
+
+ Q.i,Q.rMc"> Q.i,Q.rMxU.r '
+
+ Q.l-Q.i"< Q.iJB Q.l,.Mq '
+ Q.i-Q.r"< Q.iJL .,Q.rMq '
+ '
+}
+
+! read commandline arguments !
+LR 0Xi 2LR 0Xo 2LR 0Xp 2LR 0Xn HK
+
+! copy all defines in input file beginning with prefix !
+EBQi <S#defineS[Qp]; -SS :Xa> EF
+
+! sort all defines !
+Ga ZJB 0,.Mq J
+
+! format as C/C++ array !
+I/*
+ * AUTOGENERATED - DO NOT EDIT
+ */
+#include <glib.h>
+
+#include "Qi"
+#include "symbols.h"
+
+static const SymbolList::Entry entries[] = {
+
+<
+ .,W.Xa 0KK
+ I#ifdef Qa
+ {"Qa", ^EQa},
+#endif
+
+.-Z;>
+I};
+
+/* overwrites weak object in symbols.cpp */
+SymbolList Symbols::Qn(entries, G_N_ELEMENTS(entries));
+
+
+! write output file !
+EWQo
+
+EX