diff software/eXist/mpdl-modules/src/de/mpg/mpiwg/berlin/mpdl/lt/analyzer/lang/MpdlNormalizerLexIT.java @ 14:5df60f24e997

diverse Fehlerbehebungen
author Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
date Mon, 29 Aug 2011 17:40:02 +0200
parents 1ec29fdd0db8
children
line wrap: on
line diff
--- a/software/eXist/mpdl-modules/src/de/mpg/mpiwg/berlin/mpdl/lt/analyzer/lang/MpdlNormalizerLexIT.java	Tue Apr 19 16:51:59 2011 +0200
+++ b/software/eXist/mpdl-modules/src/de/mpg/mpiwg/berlin/mpdl/lt/analyzer/lang/MpdlNormalizerLexIT.java	Mon Aug 29 17:40:02 2011 +0200
@@ -1,12 +1,11 @@
-/* The following code was generated by JFlex 1.4.3 on 22.02.11 12:03 */
+/* The following code was generated by JFlex 1.4.3 on 21.07.11 11:22 */
 
 /*
  * Normalization rules for Italian text
  * [this is a JFlex specification]
  *
  * Wolfgang Schmidle 
- * version 0.96
- * 2011-02-21
+ * version 2011-07-12
  *
  */
 
@@ -16,7 +15,7 @@
 /**
  * This class is a scanner generated by 
  * <a href="http://www.jflex.de/">JFlex</a> 1.4.3
- * on 22.02.11 12:03 from the specification file
+ * on 21.07.11 11:22 from the specification file
  * <tt>MpdlNormalizerLexIT.lex</tt>
  */
 public class MpdlNormalizerLexIT {
@@ -47,15 +46,15 @@
    * Translates characters to character classes
    */
   private static final String ZZ_CMAP_PACKED = 
-    "\12\0\1\5\42\0\1\4\22\0\1\51\1\1\3\2\1\1\3\2"+
-    "\1\40\1\0\1\2\1\3\2\2\1\41\1\2\1\47\1\3\1\2"+
-    "\1\37\1\44\1\50\2\2\1\0\1\2\6\0\1\43\3\2\1\11"+
-    "\2\2\1\42\1\6\1\35\1\2\1\3\1\2\1\7\1\36\1\13"+
-    "\1\45\1\12\1\2\1\10\1\15\1\46\2\2\1\0\1\2\62\0"+
-    "\1\4\22\0\1\16\5\0\1\32\1\0\1\17\3\0\1\20\5\0"+
-    "\1\21\6\0\1\22\5\0\1\30\1\23\5\0\1\31\1\0\1\24"+
-    "\3\0\1\25\5\0\1\26\6\0\1\27\37\0\1\1\70\0\1\34"+
-    "\1\33\53\0\1\14\ufe80\0";
+    "\12\0\1\6\25\0\1\5\14\0\1\4\22\0\1\52\1\1\3\2"+
+    "\1\1\3\2\1\41\1\0\1\2\1\3\2\2\1\42\1\2\1\50"+
+    "\1\3\1\2\1\40\1\45\1\51\2\2\1\0\1\2\6\0\1\44"+
+    "\3\2\1\12\2\2\1\43\1\7\1\36\1\2\1\3\1\2\1\10"+
+    "\1\37\1\14\1\46\1\13\1\2\1\11\1\16\1\47\2\2\1\0"+
+    "\1\2\62\0\1\4\22\0\1\17\5\0\1\33\1\0\1\20\3\0"+
+    "\1\21\5\0\1\22\6\0\1\23\5\0\1\31\1\24\5\0\1\32"+
+    "\1\0\1\25\3\0\1\26\5\0\1\27\6\0\1\30\37\0\1\1"+
+    "\70\0\1\35\1\34\53\0\1\15\ufe80\0";
 
   /** 
    * Translates characters to character classes
@@ -68,17 +67,17 @@
   private static final int [] ZZ_ACTION = zzUnpackAction();
 
   private static final String ZZ_ACTION_PACKED_0 =
-    "\11\0\1\1\1\2\2\3\1\4\1\5\1\2\1\3"+
-    "\1\6\1\2\1\7\1\10\1\11\1\12\1\13\5\3"+
-    "\1\14\1\2\1\3\1\6\1\2\1\15\1\16\1\17"+
-    "\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27"+
-    "\1\30\4\0\1\31\1\32\1\0\1\33\1\0\1\34"+
-    "\1\35\1\0\1\36\1\37\1\40\4\0\1\41\5\0"+
-    "\1\42\1\43\2\0\1\44\1\0\1\45\5\0\1\44"+
-    "\1\46\3\0\1\47";
+    "\11\0\1\1\1\2\2\3\1\1\1\4\1\2\1\3"+
+    "\1\5\1\2\1\6\1\7\1\10\1\11\1\12\5\3"+
+    "\1\13\1\2\1\3\1\5\1\2\1\14\1\15\1\16"+
+    "\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26"+
+    "\1\27\1\30\4\0\1\31\1\32\1\33\1\0\1\34"+
+    "\1\0\1\35\1\36\1\0\1\37\1\40\1\41\4\0"+
+    "\1\42\6\0\1\43\1\44\4\0\1\45\1\0\1\46"+
+    "\10\0\1\47\4\0\1\45\2\0\1\50";
 
   private static int [] zzUnpackAction() {
-    int [] result = new int[89];
+    int [] result = new int[100];
     int offset = 0;
     offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
     return result;
@@ -103,21 +102,22 @@
   private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
 
   private static final String ZZ_ROWMAP_PACKED_0 =
-    "\0\0\0\52\0\124\0\176\0\250\0\322\0\374\0\u0126"+
-    "\0\u0150\0\0\0\0\0\0\0\u017a\0\0\0\0\0\u01a4"+
-    "\0\u01ce\0\0\0\u01f8\0\0\0\0\0\0\0\0\0\0"+
-    "\0\u0222\0\u024c\0\u0276\0\u02a0\0\u02ca\0\0\0\u02f4\0\u031e"+
-    "\0\u0348\0\u0372\0\u039c\0\0\0\0\0\0\0\0\0\0"+
-    "\0\0\0\0\0\0\0\0\0\0\0\0\0\u03c6\0\u03f0"+
-    "\0\u041a\0\0\0\0\0\0\0\u0444\0\0\0\u046e\0\0"+
-    "\0\0\0\u0498\0\0\0\0\0\0\0\u04c2\0\u04ec\0\u0516"+
-    "\0\u0540\0\0\0\u056a\0\u0594\0\u05be\0\u05e8\0\u0612\0\0"+
-    "\0\0\0\u063c\0\u031e\0\u0666\0\u0690\0\0\0\u06ba\0\u06e4"+
-    "\0\u070e\0\0\0\u0738\0\0\0\0\0\u0762\0\u078c\0\u07b6"+
-    "\0\0";
+    "\0\0\0\53\0\126\0\201\0\254\0\327\0\u0102\0\u012d"+
+    "\0\u0158\0\0\0\0\0\0\0\u0183\0\u01ae\0\0\0\u01d9"+
+    "\0\u0204\0\0\0\u022f\0\0\0\0\0\0\0\0\0\0"+
+    "\0\u025a\0\u0285\0\u02b0\0\u02db\0\u0306\0\0\0\u0331\0\u035c"+
+    "\0\u0387\0\u03b2\0\u03dd\0\0\0\0\0\0\0\0\0\0"+
+    "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\u0408"+
+    "\0\u0433\0\u045e\0\u0489\0\0\0\0\0\0\0\u04b4\0\0"+
+    "\0\u04df\0\0\0\0\0\u050a\0\0\0\0\0\0\0\u0535"+
+    "\0\u0560\0\u058b\0\u05b6\0\0\0\u05e1\0\u060c\0\u0637\0\u0662"+
+    "\0\u068d\0\0\0\0\0\0\0\u06b8\0\u06e3\0\u070e\0\u035c"+
+    "\0\u0739\0\u0764\0\0\0\u078f\0\u07ba\0\u07e5\0\0\0\u0810"+
+    "\0\u083b\0\u0866\0\u0891\0\0\0\u08bc\0\u08e7\0\u0912\0\u093d"+
+    "\0\0\0\u0968\0\u0993\0\0";
 
   private static int [] zzUnpackRowMap() {
-    int [] result = new int[89];
+    int [] result = new int[100];
     int offset = 0;
     offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
     return result;
@@ -140,63 +140,67 @@
   private static final int [] ZZ_TRANS = zzUnpackTrans();
 
   private static final String ZZ_TRANS_PACKED_0 =
-    "\52\0\1\12\1\13\1\14\1\15\1\16\1\17\1\20"+
-    "\1\14\1\21\1\13\1\15\1\14\1\22\1\23\5\12"+
-    "\2\13\1\12\2\13\1\24\1\25\1\26\1\27\1\30"+
-    "\1\12\1\13\1\31\2\13\1\14\1\13\1\23\1\32"+
-    "\1\33\1\34\1\35\1\36\1\12\1\13\1\14\1\15"+
-    "\1\16\1\17\1\37\1\14\1\21\1\13\1\15\1\40"+
-    "\1\41\1\42\5\12\2\13\1\12\2\13\1\24\1\25"+
-    "\1\26\1\27\1\30\1\12\1\13\1\31\2\13\1\43"+
-    "\1\13\1\42\1\32\1\33\1\34\1\35\1\36\1\12"+
-    "\1\13\1\14\1\15\1\16\1\44\1\20\1\14\1\21"+
-    "\1\13\1\15\1\14\1\22\1\23\1\45\1\46\1\47"+
-    "\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\24"+
-    "\1\25\1\26\1\27\1\30\1\12\1\13\1\31\2\13"+
-    "\1\14\1\13\1\23\1\32\1\33\1\34\1\35\1\36"+
-    "\1\12\1\13\1\14\1\15\1\16\1\44\1\37\1\14"+
+    "\53\0\1\12\1\13\1\14\1\15\1\16\1\12\1\17"+
+    "\1\20\1\14\1\21\1\13\1\15\1\14\1\22\1\23"+
+    "\5\12\2\13\1\12\2\13\1\24\1\25\1\26\1\27"+
+    "\1\30\1\12\1\13\1\31\2\13\1\14\1\13\1\23"+
+    "\1\32\1\33\1\34\1\35\1\36\1\12\1\13\1\14"+
+    "\1\15\1\16\1\12\1\17\1\37\1\14\1\21\1\13"+
+    "\1\15\1\40\1\41\1\42\5\12\2\13\1\12\2\13"+
+    "\1\24\1\25\1\26\1\27\1\30\1\12\1\13\1\31"+
+    "\2\13\1\43\1\13\1\42\1\32\1\33\1\34\1\35"+
+    "\1\36\1\12\1\13\1\14\1\15\1\16\1\12\1\44"+
+    "\1\20\1\14\1\21\1\13\1\15\1\14\1\22\1\23"+
+    "\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\54"+
+    "\1\55\1\56\1\24\1\25\1\26\1\27\1\30\1\12"+
+    "\1\13\1\31\2\13\1\14\1\13\1\23\1\32\1\33"+
+    "\1\34\1\35\1\36\1\12\1\13\1\14\1\15\1\16"+
+    "\1\12\1\44\1\37\1\14\1\21\1\13\1\15\1\40"+
+    "\1\41\1\42\1\45\1\46\1\47\1\50\1\51\1\52"+
+    "\1\53\1\54\1\55\1\56\1\24\1\25\1\26\1\27"+
+    "\1\30\1\12\1\13\1\31\2\13\1\43\1\13\1\42"+
+    "\1\32\1\33\1\34\1\35\1\36\1\12\1\13\1\14"+
+    "\1\15\1\16\1\12\1\57\1\20\1\14\1\21\1\13"+
+    "\1\15\1\14\1\22\1\23\1\45\1\46\1\47\1\50"+
+    "\1\51\1\52\1\53\1\54\1\55\1\56\1\24\1\25"+
+    "\1\26\1\27\1\30\1\12\1\13\1\31\2\13\1\14"+
+    "\1\13\1\23\1\32\1\33\1\34\1\35\1\36\1\12"+
+    "\1\13\1\14\1\15\1\16\1\12\1\57\1\37\1\14"+
     "\1\21\1\13\1\15\1\40\1\41\1\42\1\45\1\46"+
     "\1\47\1\50\1\51\1\52\1\53\1\54\1\55\1\56"+
     "\1\24\1\25\1\26\1\27\1\30\1\12\1\13\1\31"+
     "\2\13\1\43\1\13\1\42\1\32\1\33\1\34\1\35"+
-    "\1\36\1\12\1\13\1\14\1\15\1\16\1\17\1\20"+
-    "\1\14\1\21\1\13\1\15\1\14\1\22\1\23\1\45"+
-    "\1\46\1\47\1\50\1\51\1\52\1\53\1\54\1\55"+
-    "\1\56\1\24\1\25\1\26\1\27\1\30\1\12\1\13"+
-    "\1\31\2\13\1\14\1\13\1\23\1\32\1\33\1\34"+
-    "\1\35\1\36\1\12\1\13\1\14\1\15\1\16\1\17"+
-    "\1\37\1\14\1\21\1\13\1\15\1\40\1\41\1\42"+
-    "\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\54"+
-    "\1\55\1\56\1\24\1\25\1\26\1\27\1\30\1\12"+
-    "\1\13\1\31\2\13\1\43\1\13\1\42\1\32\1\33"+
-    "\1\34\1\35\1\36\6\0\1\57\4\0\1\60\1\61"+
-    "\41\0\1\62\113\0\1\63\1\0\1\63\36\0\1\64"+
-    "\22\0\1\65\44\0\1\66\4\0\1\66\2\0\1\66"+
-    "\3\0\1\66\5\0\2\66\1\0\2\66\1\0\3\66"+
-    "\2\0\1\66\1\0\2\66\1\0\2\66\45\0\1\67"+
-    "\57\0\1\70\5\0\2\71\1\72\2\0\2\71\1\0"+
-    "\3\71\13\0\1\71\6\0\1\71\2\0\1\71\2\0"+
-    "\4\71\47\0\1\73\1\0\1\74\3\0\2\75\1\76"+
-    "\2\0\2\75\1\0\3\75\13\0\1\75\6\0\1\75"+
-    "\2\0\1\75\2\0\4\75\10\0\1\77\25\0\1\64"+
-    "\25\0\1\100\51\0\1\100\3\0\1\101\35\0\1\102"+
-    "\4\0\1\102\2\0\1\102\3\0\1\102\5\0\2\102"+
-    "\1\0\2\102\1\0\3\102\2\0\1\102\1\0\2\102"+
-    "\1\0\2\102\43\0\1\103\4\0\1\104\15\0\1\105"+
-    "\53\0\1\106\51\0\1\106\3\0\1\107\72\0\1\110"+
-    "\54\0\1\111\12\0\2\71\3\0\2\71\1\0\3\71"+
-    "\13\0\1\71\6\0\1\71\2\0\1\71\2\0\4\71"+
-    "\3\0\2\75\3\0\2\75\1\0\3\75\13\0\1\75"+
-    "\6\0\1\75\2\0\1\75\2\0\4\75\5\0\1\112"+
-    "\3\0\1\113\53\0\1\114\43\0\1\115\6\0\1\113"+
-    "\43\0\1\116\51\0\1\116\1\117\1\120\46\0\1\121"+
-    "\3\0\1\60\53\0\1\122\43\0\1\123\6\0\1\60"+
-    "\46\0\1\113\45\0\1\124\60\0\1\113\43\0\1\125"+
-    "\50\0\1\126\2\0\1\127\52\0\1\60\54\0\1\60"+
-    "\45\0\1\127\100\0\1\130\20\0\1\131\44\0";
+    "\1\36\7\0\1\60\4\0\1\61\1\62\42\0\1\63"+
+    "\114\0\1\64\1\0\1\64\6\0\1\65\103\0\1\66"+
+    "\23\0\1\67\44\0\1\70\5\0\1\70\2\0\1\70"+
+    "\3\0\1\70\5\0\2\70\1\0\2\70\1\0\3\70"+
+    "\2\0\1\70\1\0\2\70\1\0\2\70\46\0\1\71"+
+    "\60\0\1\72\5\0\2\73\1\74\3\0\2\73\1\0"+
+    "\3\73\13\0\1\73\6\0\1\73\2\0\1\73\2\0"+
+    "\4\73\50\0\1\75\1\0\1\76\3\0\2\77\1\100"+
+    "\3\0\2\77\1\0\3\77\13\0\1\77\6\0\1\77"+
+    "\2\0\1\77\2\0\4\77\11\0\1\101\25\0\1\66"+
+    "\26\0\1\102\52\0\1\102\3\0\1\103\35\0\1\104"+
+    "\5\0\1\104\2\0\1\104\3\0\1\104\5\0\2\104"+
+    "\1\0\2\104\1\0\3\104\2\0\1\104\1\0\2\104"+
+    "\1\0\2\104\44\0\1\105\4\0\1\106\16\0\1\107"+
+    "\54\0\1\110\52\0\1\110\3\0\1\111\40\0\1\112"+
+    "\105\0\1\113\55\0\1\114\15\0\1\115\52\0\1\116"+
+    "\51\0\1\117\4\0\1\120\54\0\1\121\43\0\1\122"+
+    "\7\0\1\120\44\0\1\123\52\0\1\123\1\124\1\125"+
+    "\46\0\1\126\4\0\1\61\54\0\1\127\43\0\1\130"+
+    "\7\0\1\61\40\0\2\73\4\0\2\73\1\0\3\73"+
+    "\13\0\1\73\6\0\1\73\2\0\1\73\2\0\4\73"+
+    "\3\0\2\77\4\0\2\77\1\0\3\77\13\0\1\77"+
+    "\6\0\1\77\2\0\1\77\2\0\4\77\6\0\1\131"+
+    "\51\0\1\132\53\0\1\133\53\0\1\134\50\0\1\135"+
+    "\3\0\1\136\47\0\1\137\52\0\1\140\56\0\1\120"+
+    "\46\0\1\141\61\0\1\120\43\0\1\142\104\0\1\143"+
+    "\24\0\1\61\55\0\1\61\46\0\1\136\50\0\1\144"+
+    "\44\0";
 
   private static int [] zzUnpackTrans() {
-    int [] result = new int[2016];
+    int [] result = new int[2494];
     int offset = 0;
     offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
     return result;
@@ -234,14 +238,14 @@
   private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
 
   private static final String ZZ_ATTRIBUTE_PACKED_0 =
-    "\1\10\7\0\1\1\3\11\1\1\2\11\2\1\1\11"+
-    "\1\1\5\11\5\1\1\11\5\1\13\11\3\0\3\11"+
+    "\1\10\7\0\1\1\3\11\2\1\1\11\2\1\1\11"+
+    "\1\1\5\11\5\1\1\11\5\1\14\11\4\0\3\11"+
     "\1\0\1\11\1\0\2\11\1\0\3\11\4\0\1\11"+
-    "\5\0\2\11\2\0\1\1\1\0\1\11\3\0\1\11"+
-    "\1\0\2\11\3\0\1\11";
+    "\5\0\3\11\4\0\1\1\1\0\1\11\3\0\1\11"+
+    "\4\0\1\11\4\0\1\11\2\0\1\11";
 
   private static int [] zzUnpackAttribute() {
-    int [] result = new int[89];
+    int [] result = new int[100];
     int offset = 0;
     offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
     return result;
@@ -325,6 +329,8 @@
 		normalized += norm;
 	}
 
+	private static final String LB = "[\u002d\u00ad] ";
+
 
   /**
    * Creates a new scanner
@@ -356,7 +362,7 @@
     char [] map = new char[0x10000];
     int i = 0;  /* index in packed string  */
     int j = 0;  /* index in unpacked array */
-    while (i < 168) {
+    while (i < 172) {
       int  count = packed.charAt(i++);
       char value = packed.charAt(i++);
       do map[j++] = value; while (--count > 0);
@@ -656,86 +662,97 @@
       zzMarkedPos = zzMarkedPosL;
 
       switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
-        case 32: 
+        case 33: 
           // lookahead expression with fixed base length
           zzMarkedPos = zzStartRead + 1;
           { cv = CONS; add("U");
           }
-        case 40: break;
-        case 15: 
+        case 41: break;
+        case 14: 
           { add("Á");
           }
-        case 41: break;
-        case 39: 
+        case 42: break;
+        case 40: 
           // lookahead expression with fixed lookahead length
           yypushback(1);
           { add(yytext());
           }
-        case 42: break;
-        case 38: 
+        case 43: break;
+        case 39: 
           // lookahead expression with fixed base length
           zzMarkedPos = zzStartRead + 3;
           { add(yytext());
           }
-        case 43: break;
-        case 37: 
+        case 44: break;
+        case 38: 
           // lookahead expression with fixed base length
           zzMarkedPos = zzStartRead + 2;
           { add(yytext());
           }
-        case 44: break;
-        case 4: 
+        case 45: break;
+        case 26: 
           { add(yytext());
           }
-        case 45: break;
-        case 22: 
+        case 46: break;
+        case 21: 
           { add("í");
           }
-        case 46: break;
-        case 9: 
+        case 47: break;
+        case 8: 
           { cv = VOWEL; add("AE");
           }
-        case 47: break;
-        case 5: 
+        case 48: break;
+        case 11: 
+          { problem = 1; cv = 0; add(yytext());
+          }
+        case 49: break;
+        case 4: 
           { switch (problem) {
 			case 1: return original;
 			default: return normalized;
 		}
           }
-        case 48: break;
-        case 29: 
+        case 50: break;
+        case 30: 
           // lookahead expression with fixed base length
           zzMarkedPos = zzStartRead + 1;
           { cv = CONS; add("u");
           }
-        case 49: break;
-        case 20: 
+        case 51: break;
+        case 19: 
           { add("á");
           }
-        case 50: break;
+        case 52: break;
         case 1: 
           { cv = 0; add(yytext());
           }
-        case 51: break;
-        case 33: 
+        case 53: break;
+        case 24: 
+          { switch (problem) {
+			case 1: return original;
+			default: return normalized.replaceAll(LB, "").toLowerCase();
+		}
+          }
+        case 54: break;
+        case 34: 
           // lookahead expression with fixed base length
           zzMarkedPos = zzStartRead + 1;
           { cv = VOWEL; add(yytext().replaceAll("u", "v").replaceAll("U", "V"));
           }
-        case 52: break;
-        case 34: 
+        case 55: break;
+        case 35: 
           { cv = VOWEL; add("zio");
           }
-        case 53: break;
-        case 11: 
+        case 56: break;
+        case 10: 
           { cv = VOWEL; add("OE");
           }
-        case 54: break;
-        case 19: 
+        case 57: break;
+        case 18: 
           { add("Ú");
           }
-        case 55: break;
-        case 36: 
+        case 58: break;
+        case 37: 
           // general lookahead, find correct zzMarkedPos
           { int zzFState = 7;
             int zzFPos = zzStartRead;
@@ -758,20 +775,20 @@
           }
           { cv = VOWEL; add(yytext().replace("ſ", "s"));
           }
-        case 56: break;
+        case 59: break;
         case 3: 
           { cv = CONS; add(yytext());
           }
-        case 57: break;
-        case 31: 
+        case 60: break;
+        case 32: 
           { cv = CONS; add("QU");
           }
-        case 58: break;
-        case 16: 
+        case 61: break;
+        case 15: 
           { add("É");
           }
-        case 59: break;
-        case 27: 
+        case 62: break;
+        case 28: 
           // lookahead expression with fixed base length
           zzMarkedPos = zzStartRead + 1;
           { switch(cv) {
@@ -779,85 +796,81 @@
 			default: cv = VOWEL; add(yytext()); break;
 		}
           }
-        case 60: break;
-        case 7: 
+        case 63: break;
+        case 6: 
           { cv = CONS; add("ss");
           }
-        case 61: break;
-        case 6: 
+        case 64: break;
+        case 5: 
           { cv = CONS; add("s");
           }
-        case 62: break;
-        case 35: 
+        case 65: break;
+        case 13: 
+          { switch (problem) {
+			case 1: return "";
+			default: return normalized.replaceAll(LB, "");
+		}
+          }
+        case 66: break;
+        case 36: 
           { cv = VOWEL; add("ZIO");
           }
-        case 63: break;
+        case 67: break;
         case 2: 
           { cv = VOWEL; add(yytext());
           }
-        case 64: break;
-        case 18: 
+        case 68: break;
+        case 17: 
           { add("Ó");
           }
-        case 65: break;
-        case 24: 
-          { add("ú");
-          }
-        case 66: break;
-        case 30: 
-          { cv = CONS; add("Qu");
-          }
-        case 67: break;
-        case 21: 
-          { add("é");
-          }
-        case 68: break;
-        case 8: 
-          { cv = VOWEL; add("ae");
-          }
         case 69: break;
-        case 14: 
-          { switch (problem) {
-			case 1: return "";
-			default: return normalized;
-		}
+        case 23: 
+          { add("ú");
           }
         case 70: break;
-        case 13: 
+        case 31: 
+          { cv = CONS; add("Qu");
+          }
+        case 71: break;
+        case 20: 
+          { add("é");
+          }
+        case 72: break;
+        case 7: 
+          { cv = VOWEL; add("ae");
+          }
+        case 73: break;
+        case 12: 
           { add("");
           }
-        case 71: break;
-        case 23: 
+        case 74: break;
+        case 22: 
           { add("ó");
           }
-        case 72: break;
-        case 10: 
+        case 75: break;
+        case 9: 
           { cv = VOWEL; add("oe");
           }
-        case 73: break;
-        case 28: 
+        case 76: break;
+        case 29: 
           { cv = CONS; add("qu");
           }
-        case 74: break;
-        case 12: 
-          { problem = 1; add(yytext());
-          }
-        case 75: break;
+        case 77: break;
         case 25: 
           { switch(cv) {
 			case CONS: add(yytext().replace("v", "u").replace("V", "U")); break;
 			default: cv = CONS; add(yytext()); break;
 		}
           }
-        case 76: break;
-        case 26: 
+        case 78: break;
+        case 27: 
           { cv = VOWEL; add("ii");
           }
-        case 77: break;
-        case 17: 
+        case 79: break;
+        case 16: 
           { add("Í");
           }
-        case 78: break;
+        case 80: break;
         default: 
           if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
             zzAtEOF = true;