[liblouis-liblouisxml] [liblouis] r1102 committed - adding emphasis types and code

  • From: liblouis@xxxxxxxxxxxxxx
  • To: liblouis-liblouisxml@xxxxxxxxxxxxx
  • Date: Thu, 16 Jan 2014 15:18:53 +0000

Revision: 1102
Author:   john.boyer@xxxxxxxxxxxxxxxxx
Date:     Thu Jan 16 15:18:36 2014 UTC
Log:      adding emphasis types and code
http://code.google.com/p/liblouis/source/detail?r=1102

Added:
 /branches/emphasis-dev/liblouis/compileemphasis.x
 /branches/emphasis-dev/liblouis/doUniversalEmphasis.x
 /branches/emphasis-dev/liblouis/gettoken.p
Modified:
 /branches/emphasis-dev/liblouis/compileTranslationTable.c
 /branches/emphasis-dev/liblouis/liblouis.h.in

=======================================
--- /dev/null
+++ /branches/emphasis-dev/liblouis/compileemphasis.x Thu Jan 16 15:18:36 2014 UTC
@@ -0,0 +1,23 @@
+static int
+compileEmphasisOpcode (FileInfo * nested, TranslationTableOpcode opcode)
+{
+  /*Compile the operands of an emphasis opcode */
+  /* Note that much of the code for multipass opcodes is repurposed here*/
+  TranslationTableOffset ruleOffset = 0;
+  TranslationTableRule *rule = NULL;
+  int k;
+  int kk = 0;
+  passRuleChars.length = 0;
+  passNested = nested;
+  passOpcode = opcode;
+/* passHoldString and passLine are static variables declared
+ * previously.*/
+  passLinepos = 0;
+  passHoldString.length = 0;
+  for (k = nested->linepos; k < nested->linelen; k++)
+    passHoldString.chars[passHoldString.length++] = nested->line[k];
+  parseChars (passNested, &passLine, &passHoldString);
+  if (!addRule (passNested, opcode, &passRuleChars, &passRuleDots, 0, 0))
+    return 0;
+  return 1;
+}
=======================================
--- /dev/null
+++ /branches/emphasis-dev/liblouis/doUniversalEmphasis.x Thu Jan 16 15:18:36 2014 UTC
@@ -0,0 +1,3 @@
+{
+}
+
=======================================
--- /dev/null
+++ /branches/emphasis-dev/liblouis/gettoken.p  Thu Jan 16 15:18:36 2014 UTC
@@ -0,0 +1,108 @@
+static pass_Codes
+emphGetToken ()
+{
+  while (passLinepos < passLine.length)
+    {
+      passPrevLinepos = passLinepos;
+      switch (passLine.chars[passLinepos])
+       {
+       case 'a':
+         if (passHaveKeyword ("ttr"))
+           return pass_attributes;
+         passGetName ();
+         return pass_nameFound;
+       case 'b':
+         if (passHaveKeyword ("ack"))
+           return pass_lookback;
+         if (passHaveKeyword ("ool"))
+           return pass_boolean;
+         passGetName ();
+         return pass_nameFound;
+       case 'c':
+         if (passHaveKeyword ("lass"))
+           return pass_class;
+         passGetName ();
+         return pass_nameFound;
+       case 'd':
+         if (passHaveKeyword ("ef"))
+           return pass_define;
+         passGetName ();
+         return pass_nameFound;
+       case 'e':
+         if (passHaveKeyword ("mph"))
+           return pass_emphasis;
+         passGetName ();
+         return pass_nameFound;
+       case 'f':
+         if (passHaveKeyword ("ind"))
+           return pass_search;
+         if (passHaveKeyword ("irst"))
+           return pass_first;
+         passGetName ();
+         return pass_nameFound;
+       case 'g':
+         if (passHaveKeyword ("roup"))
+           return pass_group;
+         passGetName ();
+         return pass_nameFound;
+       case 'i':
+         if (passHaveKeyword ("f"))
+           return pass_if;
+         passGetName ();
+         return pass_nameFound;
+       case 'l':
+         if (passHaveKeyword ("ast"))
+           return pass_last;
+         passGetName ();
+         return pass_nameFound;
+       case 'm':
+         if (passHaveKeyword ("ark"))
+           return pass_mark;
+         passGetName ();
+         return pass_nameFound;
+       case 'r':
+         if (passHaveKeyword ("epgroup"))
+           return pass_repGroup;
+         if (passHaveKeyword ("epcopy"))
+           return pass_copy;
+         if (passHaveKeyword ("epomit"))
+           return pass_omit;
+         if (passHaveKeyword ("ep"))
+           return pass_replace;
+         passGetName ();
+         return pass_nameFound;
+       case 's':
+         if (passHaveKeyword ("cript"))
+           return pass_script;
+         if (passHaveKeyword ("wap"))
+           return pass_swap;
+         passGetName ();
+         return pass_nameFound;
+       case 't':
+         if (passHaveKeyword ("hen"))
+           return pass_then;
+         passGetName ();
+         return pass_nameFound;
+       default:
+         if (passLine.chars[passLinepos] <= 32)
+           {
+             passLinepos++;
+             break;
+           }
+         if (passLine.chars[passLinepos] >= '0'
+             && passLine.chars[passLinepos] <= '9')
+           {
+             passGetNumber ();
+             return pass_numberFound;
+           }
+         else
+           {
+             if (!passGetName ())
+               return pass_invalidToken;
+             else
+               return pass_nameFound;
+           }
+       }
+    }
+  return pass_noMoreTokens;
+}
=======================================
--- /branches/emphasis-dev/liblouis/compileTranslationTable.c Mon Aug 5 12:09:31 2013 UTC +++ /branches/emphasis-dev/liblouis/compileTranslationTable.c Thu Jan 16 15:18:36 2014 UTC
@@ -2206,7 +2206,7 @@
 }

 static int
-passIsKeyword (const char *token)
+passHaveKeyword (const char *token)
 {
   int k;
   int length = strlen (token);
@@ -2362,79 +2362,79 @@
            }
          return pass_invalidToken;
        case 'a':
-         if (passIsKeyword ("ttr"))
+         if (passHaveKeyword ("ttr"))
            return pass_attributes;
          passGetName ();
          return pass_nameFound;
        case 'b':
-         if (passIsKeyword ("ack"))
+         if (passHaveKeyword ("ack"))
            return pass_lookback;
-         if (passIsKeyword ("ool"))
+         if (passHaveKeyword ("ool"))
            return pass_boolean;
          passGetName ();
          return pass_nameFound;
        case 'c':
-         if (passIsKeyword ("lass"))
+         if (passHaveKeyword ("lass"))
            return pass_class;
          passGetName ();
          return pass_nameFound;
        case 'd':
-         if (passIsKeyword ("ef"))
+         if (passHaveKeyword ("ef"))
            return pass_define;
          passGetName ();
          return pass_nameFound;
        case 'e':
-         if (passIsKeyword ("mph"))
+         if (passHaveKeyword ("mph"))
            return pass_emphasis;
          passGetName ();
          return pass_nameFound;
        case 'f':
-         if (passIsKeyword ("ind"))
+         if (passHaveKeyword ("ind"))
            return pass_search;
-         if (passIsKeyword ("irst"))
+         if (passHaveKeyword ("irst"))
            return pass_first;
          passGetName ();
          return pass_nameFound;
        case 'g':
-         if (passIsKeyword ("roup"))
+         if (passHaveKeyword ("roup"))
            return pass_group;
          passGetName ();
          return pass_nameFound;
        case 'i':
-         if (passIsKeyword ("f"))
+         if (passHaveKeyword ("f"))
            return pass_if;
          passGetName ();
          return pass_nameFound;
        case 'l':
-         if (passIsKeyword ("ast"))
+         if (passHaveKeyword ("ast"))
            return pass_last;
          passGetName ();
          return pass_nameFound;
        case 'm':
-         if (passIsKeyword ("ark"))
+         if (passHaveKeyword ("ark"))
            return pass_mark;
          passGetName ();
          return pass_nameFound;
        case 'r':
-         if (passIsKeyword ("epgroup"))
+         if (passHaveKeyword ("epgroup"))
            return pass_repGroup;
-         if (passIsKeyword ("epcopy"))
+         if (passHaveKeyword ("epcopy"))
            return pass_copy;
-         if (passIsKeyword ("epomit"))
+         if (passHaveKeyword ("epomit"))
            return pass_omit;
-         if (passIsKeyword ("ep"))
+         if (passHaveKeyword ("ep"))
            return pass_replace;
          passGetName ();
          return pass_nameFound;
        case 's':
-         if (passIsKeyword ("cript"))
+         if (passHaveKeyword ("cript"))
            return pass_script;
-         if (passIsKeyword ("wap"))
+         if (passHaveKeyword ("wap"))
            return pass_swap;
          passGetName ();
          return pass_nameFound;
        case 't':
-         if (passIsKeyword ("hen"))
+         if (passHaveKeyword ("hen"))
            return pass_then;
          passGetName ();
          return pass_nameFound;
=======================================
--- /branches/emphasis-dev/liblouis/liblouis.h.in Wed Oct 23 15:12:24 2013 UTC +++ /branches/emphasis-dev/liblouis/liblouis.h.in Thu Jan 16 15:18:36 2014 UTC
@@ -46,7 +46,19 @@
     italic = 1,
     underline = 2,
     bold = 4,
-    computer_braille = 8
+    computer_braille = 8,
+    script = 16,
+    // trd is short for transcriber-defined
+    trd1 = 1<<5,
+    trd2 = 1<<6,
+    trd3 = 1<<7,
+    trd4 = 1<<8,
+    trd5 = 1<<9,
+    trd6 = 1<<10,
+    trd7 = 1<<11,
+    trd8 = 1<<12,
+    trd9 = 1<<13,
+    trd10 = 1<<14
   } typeforms;
 #define comp_emph_1 italic
 #define comp_emph_2 underline
For a description of the software, to download it and links to
project pages go to http://www.abilitiessoft.com

Other related posts:

  • » [liblouis-liblouisxml] [liblouis] r1102 committed - adding emphasis types and code - liblouis