Update jflex to 1.8.2
[scilab.git] / scilab / modules / scinotes / src / java / org / scilab / modules / scinotes / ScilabLexer.java
index 19bae19..9e99482 100644 (file)
@@ -1,5 +1,7 @@
-/* The following code was generated by JFlex 1.6.1 */
-
+// DO NOT EDIT\r
+// Generated by JFlex 1.8.2 http://jflex.de/\r
+// source: jflex/scilab.jflex\r
+\r
 //CHECKSTYLE:OFF
 
 package org.scilab.modules.scinotes;
@@ -15,680 +17,726 @@ import javax.swing.text.Element;
 import org.scilab.modules.commons.ScilabCommonsUtils;
 
 @javax.annotation.Generated("JFlex")
-@SuppressWarnings("fallthrough")
-
-
-/**
- * This class is a scanner generated by 
- * <a href="http://www.jflex.de/">JFlex</a> 1.6.1
- * from the specification file <tt>modules/scinotes/src/java/jflex/scilab.jflex</tt>
- */
-public final class ScilabLexer extends ScilabLexerConstants {
-
-  /** This character denotes the end of file */
-  public static final int YYEOF = -1;
-
-  /** initial size of the lookahead buffer */
-  private static final int ZZ_BUFFERSIZE = 16384;
-
-  /** lexical states */
-  public static final int YYINITIAL = 0;
-  public static final int QSTRING = 2;
-  public static final int COMMENT = 4;
-  public static final int BLOCKCOMMENT = 6;
-  public static final int FIELD = 8;
-  public static final int COMMANDS = 10;
-  public static final int COMMANDSWHITE = 12;
-  public static final int BREAKSTRING = 14;
-
-  /**
-   * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
-   * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
-   *                  at the beginning of a line
-   * l is of the form l = 2*k, k a non negative integer
-   */
-  private static final int ZZ_LEXSTATE[] = { 
-     0,  0,  1,  1,  2,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7, 7
-  };
-
-  /** 
-   * Translates characters to character classes
-   */
-  private static final String ZZ_CMAP_PACKED = 
-    "\11\0\1\111\1\1\1\124\1\121\1\114\22\0\1\72\1\117\1\10"+
-    "\1\115\1\112\1\11\1\51\1\7\1\3\1\4\1\6\1\43\1\120"+
-    "\1\44\1\40\1\5\12\116\1\113\1\125\1\47\1\45\1\50\1\115"+
-    "\1\53\1\101\1\102\1\26\1\36\1\34\1\15\1\104\1\31\1\27"+
-    "\1\105\1\110\1\76\1\33\1\73\1\32\1\35\1\123\1\37\1\25"+
-    "\1\13\1\77\1\106\1\30\1\123\1\100\1\74\1\2\1\41\1\4"+
-    "\1\42\1\122\1\0\1\24\1\65\1\55\1\57\1\16\1\14\1\103"+
-    "\1\60\1\20\1\107\1\66\1\63\1\70\1\21\1\56\1\17\1\67"+
-    "\1\61\1\23\1\12\1\54\1\75\1\62\1\71\1\64\1\22\1\2"+
-    "\1\52\1\4\1\46\6\0\1\124\u1fa2\0\1\124\1\124\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\udfe6\0";
-
-  /** 
-   * Translates characters to character classes
-   */
-  private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
-
-  /** 
-   * Translates DFA states to action switch labels.
-   */
-  private static final int [] ZZ_ACTION = zzUnpackAction();
-
-  private static final String ZZ_ACTION_PACKED_0 =
-    "\1\0\1\1\4\0\1\1\1\0\1\2\1\3\1\4"+
-    "\2\5\1\6\1\7\14\10\1\11\7\5\7\10\1\12"+
-    "\1\13\2\14\1\15\1\2\1\1\1\16\1\17\1\1"+
-    "\1\20\1\21\14\22\1\23\6\22\1\24\2\22\1\25"+
-    "\1\26\1\27\1\25\1\30\1\31\1\32\2\1\1\12"+
-    "\1\13\2\16\1\33\1\34\1\5\1\35\1\0\2\36"+
-    "\1\10\1\36\12\10\1\37\5\10\2\5\1\14\1\15"+
-    "\1\0\2\5\3\10\1\40\3\10\1\0\1\35\2\0"+
-    "\1\35\1\15\1\0\1\41\37\0\1\42\1\43\2\0"+
-    "\1\1\1\44\3\0\6\10\1\45\6\10\1\36\1\10"+
-    "\1\15\2\35\10\10\2\15\1\0\1\41\34\0\1\42"+
-    "\1\0\3\10\1\46\1\47\13\10\1\41\16\0\1\50"+
-    "\14\0\1\42\11\10\26\0\1\10\1\46\3\10\26\0"+
-    "\2\10\1\51\25\0\1\52\16\0\1\53\272\0";
-
-  private static int [] zzUnpackAction() {
-    int [] result = new int[565];
-    int offset = 0;
-    offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
-    return result;
-  }
-
-  private static int zzUnpackAction(String packed, int offset, int [] result) {
-    int i = 0;       /* index in packed string  */
-    int j = offset;  /* index in unpacked array */
-    int l = packed.length();
-    while (i < l) {
-      int count = packed.charAt(i++);
-      int value = packed.charAt(i++);
-      do result[j++] = value; while (--count > 0);
-    }
-    return j;
-  }
-
-
-  /** 
-   * Translates a state to a row index in the transition table
-   */
-  private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
-
-  private static final String ZZ_ROWMAP_PACKED_0 =
-    "\0\0\0\126\0\254\0\u0102\0\u0158\0\u01ae\0\u0204\0\u025a"+
-    "\0\u02b0\0\u02b0\0\u02b0\0\u0306\0\u035c\0\u03b2\0\u03b2\0\u0408"+
-    "\0\u045e\0\u04b4\0\u050a\0\u0560\0\u05b6\0\u060c\0\u0662\0\u06b8"+
-    "\0\u070e\0\u0764\0\u07ba\0\u0810\0\u0866\0\u08bc\0\u0912\0\u0968"+
-    "\0\u09be\0\u0a14\0\u0a6a\0\u0ac0\0\u0b16\0\u0b6c\0\u0bc2\0\u0c18"+
-    "\0\u0c6e\0\u0cc4\0\u0d1a\0\u0d70\0\u0560\0\u0866\0\u0dc6\0\u0866"+
-    "\0\u0e1c\0\u02b0\0\u0e72\0\u0ec8\0\u02b0\0\u02b0\0\u02b0\0\u0f1e"+
-    "\0\u0f74\0\u0fca\0\u1020\0\u1076\0\u10cc\0\u1122\0\u1178\0\u11ce"+
-    "\0\u1224\0\u127a\0\u02b0\0\u12d0\0\u1326\0\u137c\0\u13d2\0\u1428"+
-    "\0\u147e\0\u02b0\0\u14d4\0\u152a\0\u02b0\0\u02b0\0\u1580\0\u1580"+
-    "\0\u02b0\0\u15d6\0\u15d6\0\u162c\0\u1682\0\u02b0\0\u02b0\0\u16d8"+
-    "\0\u172e\0\u02b0\0\u1784\0\u02b0\0\u02b0\0\u17da\0\u0560\0\u1830"+
-    "\0\u1886\0\u18dc\0\u1932\0\u1988\0\u19de\0\u1a34\0\u1a8a\0\u1ae0"+
-    "\0\u1b36\0\u1b8c\0\u1be2\0\u1c38\0\u0560\0\u1c8e\0\u1ce4\0\u1d3a"+
-    "\0\u1d90\0\u1de6\0\u1e3c\0\u1e92\0\u1ee8\0\u1f3e\0\u1f94\0\u1fea"+
-    "\0\u2040\0\u2096\0\u20ec\0\u2142\0\u0560\0\u2198\0\u21ee\0\u2244"+
-    "\0\u229a\0\u22f0\0\u0866\0\u0d70\0\u2346\0\u239c\0\u0e72\0\u23f2"+
-    "\0\u2448\0\u249e\0\u24f4\0\u254a\0\u25a0\0\u25f6\0\u264c\0\u26a2"+
-    "\0\u26f8\0\u274e\0\u27a4\0\u27fa\0\u2850\0\u28a6\0\u28fc\0\u2952"+
-    "\0\u29a8\0\u29fe\0\u2a54\0\u1224\0\u2aaa\0\u2b00\0\u2b56\0\u2bac"+
-    "\0\u2c02\0\u2c58\0\u2cae\0\u2d04\0\u2d5a\0\u14d4\0\u2db0\0\u02b0"+
-    "\0\u02b0\0\u152a\0\u15d6\0\u2e06\0\u172e\0\u2e5c\0\u2eb2\0\u2f08"+
-    "\0\u2f5e\0\u2fb4\0\u300a\0\u3060\0\u30b6\0\u310c\0\u3162\0\u31b8"+
-    "\0\u320e\0\u3264\0\u32ba\0\u3310\0\u3366\0\u33bc\0\u3412\0\u3468"+
-    "\0\u1fea\0\u2040\0\u34be\0\u3514\0\u356a\0\u35c0\0\u3616\0\u366c"+
-    "\0\u36c2\0\u3718\0\u376e\0\u37c4\0\u381a\0\u3870\0\u38c6\0\u391c"+
-    "\0\u3972\0\u39c8\0\u3a1e\0\u3a74\0\u3aca\0\u3b20\0\u3b76\0\u3bcc"+
-    "\0\u3c22\0\u3c78\0\u3cce\0\u3d24\0\u3d7a\0\u3dd0\0\u3e26\0\u3e7c"+
-    "\0\u3ed2\0\u3f28\0\u3f7e\0\u3fd4\0\u402a\0\u4080\0\u40d6\0\u412c"+
-    "\0\u4182\0\u41d8\0\u14d4\0\u422e\0\u4284\0\u42da\0\u4330\0\u4386"+
-    "\0\u0560\0\u43dc\0\u4432\0\u4488\0\u44de\0\u4534\0\u458a\0\u45e0"+
-    "\0\u4636\0\u468c\0\u46e2\0\u4738\0\u02b0\0\u478e\0\u47e4\0\u483a"+
-    "\0\u4890\0\u48e6\0\u493c\0\u4992\0\u49e8\0\u4a3e\0\u4a94\0\u4aea"+
-    "\0\u4b40\0\u4b96\0\u4bec\0\u02b0\0\u4c42\0\u4c98\0\u4cee\0\u4d44"+
-    "\0\u4d9a\0\u4df0\0\u4e46\0\u4e9c\0\u4ef2\0\u4f48\0\u4f9e\0\u4ff4"+
-    "\0\u2e5c\0\u504a\0\u50a0\0\u50f6\0\u514c\0\u51a2\0\u51f8\0\u524e"+
-    "\0\u52a4\0\u52fa\0\u5350\0\u53a6\0\u53fc\0\u5452\0\u54a8\0\u54fe"+
-    "\0\u5554\0\u55aa\0\u5600\0\u5656\0\u56ac\0\u5702\0\u5758\0\u57ae"+
-    "\0\u5804\0\u585a\0\u58b0\0\u5906\0\u595c\0\u59b2\0\u5a08\0\u5a5e"+
-    "\0\u5ab4\0\u0560\0\u5b0a\0\u5b60\0\u5bb6\0\u5c0c\0\u5c62\0\u5cb8"+
-    "\0\u5d0e\0\u5d64\0\u5dba\0\u5e10\0\u5e66\0\u5ebc\0\u5f12\0\u5f68"+
-    "\0\u5fbe\0\u6014\0\u606a\0\u60c0\0\u6116\0\u616c\0\u61c2\0\u6218"+
-    "\0\u626e\0\u62c4\0\u631a\0\u6370\0\u63c6\0\u5c0c\0\u641c\0\u6472"+
-    "\0\u64c8\0\u651e\0\u6574\0\u65ca\0\u6620\0\u6676\0\u66cc\0\u6722"+
-    "\0\u6778\0\u67ce\0\u6824\0\u687a\0\u68d0\0\u6926\0\u697c\0\u69d2"+
-    "\0\u6a28\0\u6a7e\0\u6ad4\0\u0560\0\u6b2a\0\u6b80\0\u6bd6\0\u6c2c"+
-    "\0\u6c82\0\u6cd8\0\u6d2e\0\u6d84\0\u6dda\0\u6e30\0\u6e86\0\u6edc"+
-    "\0\u6f32\0\u6f88\0\u02b0\0\u6fde\0\u7034\0\u708a\0\u70e0\0\u7136"+
-    "\0\u718c\0\u71e2\0\u7238\0\u728e\0\u72e4\0\u733a\0\u7390\0\u73e6"+
-    "\0\u743c\0\u7492\0\u74e8\0\u753e\0\u7594\0\u75ea\0\u7640\0\u7696"+
-    "\0\u76ec\0\u7742\0\u7798\0\u77ee\0\u7844\0\u789a\0\u78f0\0\u7946"+
-    "\0\u799c\0\u79f2\0\u7a48\0\u7a9e\0\u7af4\0\u7b4a\0\u7ba0\0\u7bf6"+
-    "\0\u7c4c\0\u7ca2\0\u7cf8\0\u7d4e\0\u7da4\0\u7dfa\0\u7e50\0\u7ea6"+
-    "\0\u7efc\0\u7f52\0\u7fa8\0\u7ffe\0\u8054\0\u80aa\0\u8100\0\u8156"+
-    "\0\u81ac\0\u8202\0\u8258\0\u82ae\0\u8304\0\u835a\0\u83b0\0\u8406"+
-    "\0\u845c\0\u84b2\0\u8508\0\u855e\0\u85b4\0\u860a\0\u8660\0\u86b6"+
-    "\0\u870c\0\u8762\0\u87b8\0\u880e\0\u8864\0\u88ba\0\u8910\0\u8966"+
-    "\0\u89bc\0\u8a12\0\u8a68\0\u8abe\0\u8b14\0\u8b6a\0\u8bc0\0\u8c16"+
-    "\0\u8c6c\0\u8cc2\0\u8d18\0\u8d6e\0\u8dc4\0\u8e1a\0\u8e70\0\u8ec6"+
-    "\0\u8f1c\0\u8f72\0\u8fc8\0\u901e\0\u9074\0\u90ca\0\u9120\0\u9176"+
-    "\0\u91cc\0\u9222\0\u9278\0\u92ce\0\u9324\0\u937a\0\u93d0\0\u9426"+
-    "\0\u947c\0\u94d2\0\u9528\0\u957e\0\u95d4\0\u962a\0\u9680\0\u96d6"+
-    "\0\u972c\0\u9782\0\u97d8\0\u982e\0\u9884\0\u98da\0\u9930\0\u9986"+
-    "\0\u99dc\0\u9a32\0\u9a88\0\u9ade\0\u9b34\0\u9b8a\0\u9be0\0\u9c36"+
-    "\0\u9c8c\0\u9ce2\0\u9d38\0\u9d8e\0\u9de4\0\u9e3a\0\u9e90\0\u9ee6"+
-    "\0\u9f3c\0\u9f92\0\u9fe8\0\ua03e\0\ua094\0\ua0ea\0\ua140\0\ua196"+
-    "\0\ua1ec\0\ua242\0\ua298\0\ua2ee\0\ua344\0\ua39a\0\ua3f0\0\ua446"+
-    "\0\ua49c\0\ua4f2\0\ua548\0\ua59e\0\ua5f4\0\ua64a\0\ua6a0\0\ua6f6"+
-    "\0\ua74c\0\ua7a2\0\ua7f8\0\ua84e\0\ua8a4\0\ua8fa\0\ua950\0\ua9a6"+
-    "\0\ua9fc\0\uaa52\0\uaaa8\0\uaafe\0\uab54\0\uabaa\0\uac00\0\uac56"+
-    "\0\uacac\0\uad02\0\uad58\0\uadae\0\uae04";
-
-  private static int [] zzUnpackRowMap() {
-    int [] result = new int[565];
-    int offset = 0;
-    offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
-    return result;
-  }
-
-  private static int zzUnpackRowMap(String packed, int offset, int [] result) {
-    int i = 0;  /* index in packed string  */
-    int j = offset;  /* index in unpacked array */
-    int l = packed.length();
-    while (i < l) {
-      int high = packed.charAt(i++) << 16;
-      result[j++] = high | packed.charAt(i++);
-    }
-    return j;
-  }
-
-  /** 
-   * The transition table of the DFA
-   */
-  private static final int [] ZZ_TRANS = zzUnpackTrans();
-
-  private static final String ZZ_TRANS_PACKED_0 =
-    "\2\11\2\12\1\13\1\14\1\15\1\16\1\17\1\20"+
-    "\1\21\1\22\1\23\1\24\1\25\1\26\1\27\2\24"+
-    "\1\30\1\31\1\32\2\24\1\33\7\24\1\34\2\35"+
-    "\1\36\1\37\2\40\1\41\1\40\1\42\1\43\1\40"+
-    "\1\24\1\44\1\45\1\46\1\24\1\47\1\50\2\24"+
-    "\1\51\1\24\1\52\2\24\1\53\16\24\1\54\1\55"+
-    "\1\56\1\0\1\24\1\57\1\24\1\60\1\0\2\24"+
-    "\1\0\1\11\1\61\1\62\5\61\2\63\27\61\1\64"+
-    "\31\61\1\65\16\61\1\66\2\61\1\0\11\61\14\67"+
-    "\1\70\6\67\1\71\1\67\1\72\1\73\1\74\3\67"+
-    "\1\75\1\76\1\77\1\100\10\67\1\101\10\67\1\102"+
-    "\11\67\1\103\1\67\1\104\3\67\1\105\1\106\1\107"+
-    "\2\67\1\110\1\111\2\67\1\112\1\113\1\67\1\0"+
-    "\4\67\1\0\2\67\1\0\7\67\1\114\5\67\1\70"+
-    "\6\67\1\71\1\67\1\72\1\73\1\74\3\67\1\75"+
-    "\1\76\1\77\1\100\10\67\1\101\10\67\1\102\11\67"+
-    "\1\103\1\67\1\104\3\67\1\105\1\106\1\107\2\67"+
-    "\1\110\1\111\2\67\1\112\1\113\1\67\1\0\4\67"+
-    "\1\0\2\67\1\0\1\67\1\115\1\116\7\115\27\117"+
-    "\14\115\16\117\1\115\16\117\1\115\1\120\1\115\1\0"+
-    "\1\117\1\115\1\117\1\115\1\0\2\117\1\0\2\115"+
-    "\1\116\1\115\1\121\66\115\1\122\16\115\1\123\2\115"+
-    "\1\0\4\115\1\0\2\115\1\0\1\115\5\124\1\125"+
-    "\64\124\1\126\16\124\1\127\6\124\1\115\4\124\1\115"+
-    "\5\62\1\130\32\62\1\131\31\62\1\126\16\62\1\127"+
-    "\2\62\1\0\4\62\1\0\2\62\1\0\1\62\133\0"+
-    "\1\132\1\133\31\0\1\134\4\0\1\135\66\0\1\134"+
-    "\36\0\1\135\172\0\1\136\25\0\4\137\1\140\1\141"+
-    "\1\142\1\143\2\137\14\24\14\0\16\24\1\0\16\24"+
-    "\1\0\1\24\2\0\3\24\2\0\2\24\14\0\26\24"+
-    "\14\0\4\24\1\144\1\145\10\24\1\0\16\24\1\0"+
-    "\1\24\2\0\3\24\2\0\2\24\14\0\21\24\1\146"+
-    "\4\24\14\0\16\24\1\0\16\24\1\0\1\24\2\0"+
-    "\3\24\2\0\2\24\14\0\26\24\14\0\1\147\1\24"+
-    "\1\150\13\24\1\0\16\24\1\0\1\24\2\0\3\24"+
-    "\2\0\2\24\14\0\26\24\14\0\16\24\1\0\16\24"+
-    "\1\0\1\24\2\0\3\24\2\0\2\24\14\0\7\24"+
-    "\1\151\16\24\14\0\7\24\1\152\5\24\1\153\1\0"+
-    "\16\24\1\0\1\24\2\0\3\24\2\0\2\24\14\0"+
-    "\12\24\1\154\13\24\14\0\16\24\1\0\16\24\1\0"+
-    "\1\24\2\0\3\24\2\0\2\24\14\0\2\24\1\155"+
-    "\23\24\14\0\16\24\1\0\16\24\1\0\1\24\2\0"+
-    "\3\24\2\0\2\24\14\0\4\24\1\156\21\24\14\0"+
-    "\6\24\1\157\7\24\1\0\16\24\1\0\1\24\2\0"+
-    "\3\24\2\0\2\24\14\0\26\24\14\0\11\24\1\160"+
-    "\4\24\1\0\16\24\1\0\1\24\2\0\3\24\2\0"+
-    "\2\24\14\0\14\24\1\161\11\24\14\0\16\24\1\0"+
-    "\16\24\1\0\1\24\2\0\3\24\2\0\2\24\14\0"+
-    "\13\24\1\162\12\24\14\0\16\24\1\0\16\24\1\0"+
-    "\1\24\2\0\3\24\2\0\2\24\7\0\1\163\1\164"+
-    "\1\134\30\0\1\165\1\163\1\134\2\0\1\135\50\0"+
-    "\1\166\54\0\1\135\65\0\2\135\31\0\1\167\2\135"+
-    "\2\0\1\135\65\0\2\135\31\0\1\167\2\135\2\0"+
-    "\1\135\2\0\1\135\122\0\1\134\125\0\1\134\2\0"+
-    "\1\134\126\0\1\170\126\0\1\171\65\0\12\24\1\172"+
-    "\13\24\14\0\2\24\1\173\13\24\1\0\16\24\1\0"+
-    "\1\24\2\0\3\24\2\0\2\24\14\0\1\174\25\24"+
-    "\14\0\16\24\1\0\16\24\1\0\1\24\2\0\3\24"+
-    "\2\0\2\24\14\0\26\24\14\0\2\24\1\175\13\24"+
-    "\1\0\16\24\1\0\1\24\2\0\3\24\2\0\2\24"+
-    "\14\0\4\24\1\176\21\24\14\0\16\24\1\0\16\24"+
-    "\1\0\1\24\2\0\3\24\2\0\2\24\14\0\26\24"+
-    "\14\0\4\24\1\177\11\24\1\0\16\24\1\0\1\24"+
-    "\2\0\3\24\2\0\2\24\14\0\26\24\14\0\5\24"+
-    "\1\200\10\24\1\0\16\24\1\0\1\24\2\0\3\24"+
-    "\2\0\2\24\14\0\26\24\14\0\1\153\15\24\1\0"+
-    "\16\24\1\0\1\24\2\0\3\24\2\0\2\24\74\0"+
-    "\1\201\16\0\1\202\5\0\1\203\100\0\1\202\16\0"+
-    "\1\204\26\0\4\205\1\206\15\205\1\206\1\205\1\206"+
-    "\1\205\1\166\13\0\3\205\1\206\12\205\1\0\16\205"+
-    "\1\0\1\205\2\0\1\205\1\57\1\205\2\0\2\205"+
-    "\2\0\1\61\1\0\5\61\2\207\27\61\1\0\31\61"+
-    "\1\0\16\61\1\0\2\61\1\0\11\61\7\0\2\61"+
-    "\155\0\1\210\77\0\1\211\5\0\1\212\121\0\1\213"+
-    "\53\0\1\214\53\0\1\215\1\0\1\216\43\0\1\217"+
-    "\57\0\1\220\5\0\1\221\36\0\1\222\63\0\1\223"+
-    "\51\0\1\224\52\0\1\225\3\0\1\226\174\0\1\227"+
-    "\52\0\1\230\125\0\1\231\6\0\1\232\110\0\27\233"+
-    "\3\0\1\233\7\0\16\233\1\234\16\233\1\234\4\0"+
-    "\1\233\3\0\2\233\14\0\1\235\173\0\1\236\71\0"+
-    "\1\237\122\0\1\240\41\0\1\241\60\0\1\242\42\0"+
-    "\1\243\62\0\1\244\127\0\1\245\105\0\41\246\1\247"+
-    "\50\246\1\250\13\246\5\0\1\251\1\252\131\0\26\117"+
-    "\14\0\16\117\1\0\16\117\1\0\1\117\2\0\3\117"+
-    "\2\0\2\117\5\0\1\121\66\0\1\253\16\0\1\253"+
-    "\14\0\5\124\1\0\64\124\1\0\16\124\1\0\6\124"+
-    "\1\0\4\124\1\0\5\254\1\132\64\254\1\0\33\254"+
-    "\5\0\1\132\160\0\1\255\73\0\1\133\117\0\7\136"+
-    "\2\256\30\136\1\257\50\136\1\260\13\136\12\0\5\24"+
-    "\1\261\20\24\14\0\16\24\1\0\16\24\1\0\1\24"+
-    "\2\0\3\24\2\0\2\24\14\0\6\24\1\137\17\24"+
-    "\14\0\16\24\1\0\16\24\1\0\1\24\2\0\3\24"+
-    "\2\0\2\24\14\0\7\24\1\262\16\24\14\0\16\24"+
-    "\1\0\16\24\1\0\1\24\2\0\3\24\2\0\2\24"+
-    "\14\0\12\24\1\263\13\24\14\0\16\24\1\0\16\24"+
-    "\1\0\1\24\2\0\3\24\2\0\2\24\14\0\4\24"+
-    "\1\264\21\24\14\0\16\24\1\0\16\24\1\0\1\24"+
-    "\2\0\3\24\2\0\2\24\14\0\26\24\14\0\10\24"+
-    "\1\155\5\24\1\0\16\24\1\0\1\24\2\0\3\24"+
-    "\2\0\2\24\14\0\23\24\1\265\2\24\14\0\16\24"+
-    "\1\0\16\24\1\0\1\24\2\0\3\24\2\0\2\24"+
-    "\14\0\7\24\1\266\16\24\14\0\16\24\1\0\16\24"+
-    "\1\0\1\24\2\0\3\24\2\0\2\24\14\0\26\24"+
-    "\14\0\5\24\1\155\10\24\1\0\16\24\1\0\1\24"+
-    "\2\0\3\24\2\0\2\24\14\0\26\24\14\0\3\24"+
-    "\1\267\12\24\1\0\16\24\1\0\1\24\2\0\3\24"+
-    "\2\0\2\24\14\0\11\24\1\270\14\24\14\0\16\24"+
-    "\1\0\16\24\1\0\1\24\2\0\3\24\2\0\2\24"+
-    "\14\0\6\24\1\271\17\24\14\0\16\24\1\0\16\24"+
-    "\1\0\1\24\2\0\3\24\2\0\2\24\14\0\26\24"+
-    "\14\0\1\272\15\24\1\0\16\24\1\0\1\24\2\0"+
-    "\3\24\2\0\2\24\14\0\26\24\14\0\7\24\1\273"+
-    "\6\24\1\0\16\24\1\0\1\24\2\0\3\24\2\0"+
-    "\2\24\14\0\6\24\1\274\17\24\14\0\16\24\1\0"+
-    "\16\24\1\0\1\24\2\0\3\24\2\0\2\24\14\0"+
-    "\26\24\14\0\2\24\1\275\13\24\1\0\16\24\1\0"+
-    "\1\24\2\0\3\24\2\0\2\24\14\0\15\24\1\276"+
-    "\10\24\14\0\16\24\1\0\16\24\1\0\1\24\2\0"+
-    "\3\24\2\0\2\24\14\0\14\24\1\277\11\24\14\0"+
-    "\16\24\1\0\16\24\1\0\1\24\2\0\3\24\2\0"+
-    "\2\24\42\0\1\134\73\0\1\134\31\0\1\134\125\0"+
-    "\1\165\103\0\1\300\15\0\1\300\1\0\1\300\20\0"+
-    "\1\300\36\0\1\166\14\0\2\135\32\0\4\135\132\0"+
-    "\1\301\126\0\1\302\65\0\1\303\10\24\1\304\14\24"+
-    "\14\0\16\24\1\0\16\24\1\0\1\24\2\0\3\24"+
-    "\2\0\2\24\14\0\7\24\1\305\16\24\14\0\16\24"+
-    "\1\0\16\24\1\0\1\24\2\0\3\24\2\0\2\24"+
-    "\14\0\26\24\14\0\4\24\1\306\11\24\1\0\16\24"+
-    "\1\0\1\24\2\0\3\24\2\0\2\24\14\0\1\307"+
-    "\10\24\1\310\14\24\14\0\16\24\1\0\16\24\1\0"+
-    "\1\24\2\0\3\24\2\0\2\24\14\0\6\24\1\311"+
-    "\17\24\14\0\16\24\1\0\16\24\1\0\1\24\2\0"+
-    "\3\24\2\0\2\24\14\0\4\24\1\312\21\24\14\0"+
-    "\16\24\1\0\16\24\1\0\1\24\2\0\3\24\2\0"+
-    "\2\24\74\0\1\201\16\0\1\202\106\0\1\202\16\0"+
-    "\1\202\26\0\26\205\14\0\16\205\1\0\16\205\1\0"+
-    "\1\205\2\0\3\205\2\0\2\205\14\0\26\205\3\0"+
-    "\2\313\7\0\16\205\1\0\16\205\1\0\1\205\2\0"+
-    "\1\205\1\314\1\205\2\0\2\205\7\0\1\315\32\0"+
-    "\1\210\31\0\1\316\16\0\1\316\33\0\1\317\171\0"+
-    "\1\320\54\0\1\321\200\0\1\322\121\0\1\323\134\0"+
-    "\1\324\120\0\1\325\121\0\1\326\131\0\1\327\60\0"+
-    "\1\330\5\0\1\331\162\0\1\332\103\0\1\333\143\0"+
-    "\1\334\71\0\1\335\141\0\1\336\106\0\1\337\212\0"+
-    "\1\340\126\0\1\341\33\0\27\233\3\0\1\233\6\0"+
-    "\1\342\16\233\1\0\16\233\5\0\1\233\3\0\2\233"+
-    "\14\0\1\211\171\0\1\343\70\0\1\344\116\0\1\345"+
-    "\176\0\1\346\123\0\1\347\120\0\1\350\132\0\1\351"+
-    "\65\0\1\352\104\0\41\246\1\247\50\246\1\353\13\246"+
-    "\5\254\1\0\64\254\1\0\33\254\7\0\2\136\115\0"+
-    "\7\136\2\256\30\136\1\257\50\136\1\354\13\136\7\0"+
-    "\2\250\127\0\11\24\1\137\14\24\14\0\16\24\1\0"+
-    "\16\24\1\0\1\24\2\0\3\24\2\0\2\24\14\0"+
-    "\2\24\1\137\23\24\14\0\16\24\1\0\16\24\1\0"+
-    "\1\24\2\0\3\24\2\0\2\24\14\0\7\24\1\137"+
-    "\16\24\14\0\16\24\1\0\16\24\1\0\1\24\2\0"+
-    "\3\24\2\0\2\24\14\0\7\24\1\175\16\24\14\0"+
-    "\16\24\1\0\16\24\1\0\1\24\2\0\3\24\2\0"+
-    "\2\24\14\0\24\24\1\355\1\24\14\0\16\24\1\0"+
-    "\16\24\1\0\1\24\2\0\3\24\2\0\2\24\14\0"+
-    "\26\24\14\0\1\24\1\356\14\24\1\0\16\24\1\0"+
-    "\1\24\2\0\3\24\2\0\2\24\14\0\2\24\1\357"+
-    "\23\24\14\0\16\24\1\0\16\24\1\0\1\24\2\0"+
-    "\3\24\2\0\2\24\14\0\4\24\1\360\21\24\14\0"+
-    "\16\24\1\0\16\24\1\0\1\24\2\0\3\24\2\0"+
-    "\2\24\14\0\1\361\25\24\14\0\16\24\1\0\16\24"+
-    "\1\0\1\24\2\0\3\24\2\0\2\24\14\0\11\24"+
-    "\1\362\14\24\14\0\16\24\1\0\16\24\1\0\1\24"+
-    "\2\0\3\24\2\0\2\24\14\0\4\24\1\363\21\24"+
-    "\14\0\16\24\1\0\16\24\1\0\1\24\2\0\3\24"+
-    "\2\0\2\24\14\0\1\364\25\24\14\0\16\24\1\0"+
-    "\16\24\1\0\1\24\2\0\3\24\2\0\2\24\14\0"+
-    "\26\24\14\0\5\24\1\271\10\24\1\0\16\24\1\0"+
-    "\1\24\2\0\3\24\2\0\2\24\14\0\17\24\1\365"+
-    "\6\24\14\0\16\24\1\0\16\24\1\0\1\24\2\0"+
-    "\3\24\2\0\2\24\14\0\15\24\1\137\10\24\14\0"+
-    "\16\24\1\0\16\24\1\0\1\24\2\0\3\24\2\0"+
-    "\2\24\45\0\2\313\51\0\1\313\21\0\26\24\14\0"+
-    "\1\24\1\366\14\24\1\0\16\24\1\0\1\24\2\0"+
-    "\3\24\2\0\2\24\14\0\4\24\1\175\21\24\14\0"+
-    "\16\24\1\0\16\24\1\0\1\24\2\0\3\24\2\0"+
-    "\2\24\14\0\1\367\25\24\14\0\16\24\1\0\16\24"+
-    "\1\0\1\24\2\0\3\24\2\0\2\24\14\0\4\24"+
-    "\1\370\21\24\14\0\16\24\1\0\16\24\1\0\1\24"+
-    "\2\0\3\24\2\0\2\24\14\0\26\24\14\0\1\371"+
-    "\15\24\1\0\16\24\1\0\1\24\2\0\3\24\2\0"+
-    "\2\24\14\0\26\24\14\0\1\372\15\24\1\0\16\24"+
-    "\1\0\1\24\2\0\3\24\2\0\2\24\14\0\26\24"+
-    "\14\0\7\24\1\373\6\24\1\0\16\24\1\0\1\24"+
-    "\2\0\3\24\2\0\2\24\14\0\12\24\1\374\13\24"+
-    "\14\0\16\24\1\0\16\24\1\0\1\24\2\0\3\24"+
-    "\2\0\2\24\120\0\1\313\21\0\26\205\14\0\16\205"+
-    "\1\0\16\205\1\0\1\205\2\0\1\205\1\314\1\205"+
-    "\2\0\2\205\7\0\1\375\125\0\1\315\64\0\1\316"+
-    "\16\0\1\316\37\0\1\376\67\0\1\377\30\0\1\376"+
-    "\126\0\1\376\221\0\1\u0100\115\0\1\u0101\100\0\1\u0102"+
-    "\144\0\1\u0103\111\0\1\u0104\64\0\1\u0105\175\0\1\u0106"+
-    "\111\0\1\u0107\71\0\1\u0108\134\0\1\u0109\156\0\1\u010a"+
-    "\121\0\1\u010b\77\0\1\u010c\160\0\1\u010d\64\0\1\u010e"+
-    "\134\0\1\u010f\110\0\26\u0110\4\0\1\u0110\7\0\16\u0110"+
-    "\1\0\16\u0110\5\0\1\u0110\4\0\1\u0110\56\0\1\u0111"+
-    "\72\0\1\u0112\162\0\1\u0113\73\0\1\u0114\122\0\1\u0115"+
-    "\125\0\1\u0116\162\0\1\u0117\124\0\1\u0118\50\0\7\136"+
-    "\2\u0119\30\136\1\257\50\136\1\260\13\136\12\0\15\24"+
-    "\1\u011a\10\24\14\0\16\24\1\0\16\24\1\0\1\24"+
-    "\2\0\3\24\2\0\2\24\14\0\1\u011b\25\24\14\0"+
-    "\16\24\1\0\16\24\1\0\1\24\2\0\3\24\2\0"+
-    "\2\24\14\0\26\24\14\0\1\147\15\24\1\0\16\24"+
-    "\1\0\1\24\2\0\3\24\2\0\2\24\14\0\6\24"+
-    "\1\u011c\17\24\14\0\16\24\1\0\16\24\1\0\1\24"+
-    "\2\0\3\24\2\0\2\24\14\0\4\24\1\361\21\24"+
-    "\14\0\16\24\1\0\16\24\1\0\1\24\2\0\3\24"+
-    "\2\0\2\24\14\0\26\24\14\0\1\24\1\u011d\14\24"+
-    "\1\0\16\24\1\0\1\24\2\0\3\24\2\0\2\24"+
-    "\14\0\26\24\14\0\1\24\1\u011e\14\24\1\0\16\24"+
-    "\1\0\1\24\2\0\3\24\2\0\2\24\14\0\20\24"+
-    "\1\u011f\5\24\14\0\16\24\1\0\16\24\1\0\1\24"+
-    "\2\0\3\24\2\0\2\24\14\0\26\24\14\0\4\24"+
-    "\1\175\11\24\1\0\16\24\1\0\1\24\2\0\3\24"+
-    "\2\0\2\24\14\0\6\24\1\u0120\17\24\14\0\16\24"+
-    "\1\0\16\24\1\0\1\24\2\0\3\24\2\0\2\24"+
-    "\14\0\26\24\14\0\5\24\1\u0121\10\24\1\0\16\24"+
-    "\1\0\1\24\2\0\3\24\2\0\2\24\14\0\26\24"+
-    "\14\0\5\24\1\u0122\10\24\1\0\16\24\1\0\1\24"+
-    "\2\0\3\24\2\0\2\24\14\0\26\24\14\0\14\24"+
-    "\1\362\1\24\1\0\16\24\1\0\1\24\2\0\3\24"+
-    "\2\0\2\24\14\0\4\24\1\155\21\24\14\0\16\24"+
-    "\1\0\16\24\1\0\1\24\2\0\3\24\2\0\2\24"+
-    "\14\0\26\24\14\0\12\24\1\361\3\24\1\0\16\24"+
-    "\1\0\1\24\2\0\3\24\2\0\2\24\115\0\1\377"+
-    "\17\0\1\u0123\125\0\1\377\136\0\1\u0124\130\0\1\u0125"+
-    "\122\0\1\u0126\127\0\1\u0127\176\0\1\u0128\52\0\1\u0129"+
-    "\166\0\1\u012a\72\0\1\u010c\202\0\1\u010c\50\0\1\u012b"+
-    "\117\0\1\u012c\170\0\1\u012d\56\0\1\u012e\126\0\1\u012f"+
-    "\124\0\26\u0110\1\u0130\3\0\1\u0110\7\0\16\u0110\1\0"+
-    "\16\u0110\5\0\1\u0110\4\0\1\u0110\63\0\1\u0131\136\0"+
-    "\1\u0132\53\0\1\u0133\126\0\1\u0134\130\0\1\u0135\157\0"+
-    "\1\u0136\137\0\1\u0137\53\0\1\u0138\121\0\25\24\1\137"+
-    "\14\0\16\24\1\0\16\24\1\0\1\24\2\0\3\24"+
-    "\2\0\2\24\14\0\6\24\1\u0139\17\24\14\0\16\24"+
-    "\1\0\16\24\1\0\1\24\2\0\3\24\2\0\2\24"+
-    "\14\0\2\24\1\u013a\23\24\14\0\16\24\1\0\16\24"+
-    "\1\0\1\24\2\0\3\24\2\0\2\24\14\0\1\155"+
-    "\25\24\14\0\16\24\1\0\16\24\1\0\1\24\2\0"+
-    "\3\24\2\0\2\24\14\0\26\24\14\0\4\24\1\155"+
-    "\11\24\1\0\16\24\1\0\1\24\2\0\3\24\2\0"+
-    "\2\24\14\0\21\24\1\u013b\4\24\14\0\16\24\1\0"+
-    "\16\24\1\0\1\24\2\0\3\24\2\0\2\24\14\0"+
-    "\7\24\1\u013c\16\24\14\0\16\24\1\0\16\24\1\0"+
-    "\1\24\2\0\3\24\2\0\2\24\14\0\26\24\14\0"+
-    "\6\24\1\u013d\7\24\1\0\16\24\1\0\1\24\2\0"+
-    "\3\24\2\0\2\24\14\0\7\24\1\361\16\24\14\0"+
-    "\16\24\1\0\16\24\1\0\1\24\2\0\3\24\2\0"+
-    "\2\24\7\0\1\u013e\212\0\1\u013f\125\0\1\u0140\56\0"+
-    "\1\u0141\157\0\1\u0142\62\0\1\u0143\134\0\1\u0144\122\0"+
-    "\1\u0145\125\0\1\u0146\172\0\1\u0147\60\0\1\u0148\125\0"+
-    "\1\u0149\143\0\1\u014a\103\0\26\u014b\4\0\1\u0110\7\0"+
-    "\16\u014b\1\0\16\u014b\5\0\1\u0110\4\0\1\u014b\74\0"+
-    "\1\u014c\61\0\1\u014d\120\0\1\u014e\176\0\1\u014f\114\0"+
-    "\1\u0150\136\0\1\u0151\51\0\1\u0152\130\0\1\u0153\116\0"+
-    "\26\24\14\0\2\24\1\u0154\13\24\1\0\16\24\1\0"+
-    "\1\24\2\0\3\24\2\0\2\24\14\0\22\24\1\137"+
-    "\3\24\14\0\16\24\1\0\16\24\1\0\1\24\2\0"+
-    "\3\24\2\0\2\24\14\0\26\24\14\0\1\362\15\24"+
-    "\1\0\16\24\1\0\1\24\2\0\3\24\2\0\2\24"+
-    "\14\0\6\24\1\u0155\17\24\14\0\16\24\1\0\16\24"+
-    "\1\0\1\24\2\0\3\24\2\0\2\24\2\0\1\u0156"+
-    "\1\0\5\u0156\2\0\61\u0156\1\0\16\u0156\1\0\2\u0156"+
-    "\1\0\4\u0156\1\0\4\u0156\25\0\1\u0157\204\0\1\u0158"+
-    "\33\0\1\u0159\205\0\1\u015a\51\0\1\u015b\121\0\1\u015c"+
-    "\205\0\1\u015d\116\0\1\u015e\134\0\1\u015f\125\0\1\u0160"+
-    "\111\0\1\u010c\101\0\1\u010c\105\0\26\u0161\1\u0130\3\0"+
-    "\1\u0110\7\0\16\u0161\1\0\16\u0161\5\0\1\u0110\4\0"+
-    "\1\u0161\35\0\1\u0162\124\0\1\u0163\23\0\1\u0164\65\0"+
-    "\1\u0165\134\0\1\u0166\1\u0167\156\0\1\u0168\153\0\1\u0169"+
-    "\112\0\1\u016a\45\0\1\u016b\125\0\7\24\1\u016c\16\24"+
-    "\14\0\16\24\1\0\16\24\1\0\1\24\2\0\3\24"+
-    "\2\0\2\24\14\0\11\24\1\304\14\24\14\0\16\24"+
-    "\1\0\16\24\1\0\1\24\2\0\3\24\2\0\2\24"+
-    "\14\0\1\u016d\1\u016e\136\0\1\u016f\54\0\1\u0170\105\0"+
-    "\1\u0171\102\0\1\u0172\161\0\1\u0173\125\0\1\u0174\137\0"+
-    "\1\u0175\113\0\1\u0176\140\0\1\u0177\53\0\1\u0178\42\0"+
-    "\1\u0179\41\0\26\u017a\1\u0130\3\0\1\u0110\3\0\1\u017b"+
-    "\3\0\16\u017a\1\u017c\16\u017a\1\u017c\4\0\1\u0110\4\0"+
-    "\1\u017a\26\0\1\u017d\54\0\1\u017e\122\0\1\u017f\112\0"+
-    "\1\u0180\134\0\1\u0181\53\0\1\u0182\6\0\1\u0183\130\0"+
-    "\1\u0184\23\0\1\u0185\141\0\1\u0186\65\0\1\u0187\23\0"+
-    "\1\u0188\104\0\1\u0189\162\0\1\u018a\51\0\1\u018b\143\0"+
-    "\1\u018c\152\0\1\u018d\103\0\1\u018e\104\0\1\u018f\125\0"+
-    "\1\u0190\15\0\1\u0191\127\0\1\u0192\125\0\1\u0193\121\0"+
-    "\1\u0194\23\0\1\u0195\151\0\1\u0196\77\0\1\u0197\22\0"+
-    "\1\u0198\52\0\1\u0199\54\0\1\u019a\50\0\1\u019b\54\0"+
-    "\1\u019c\36\0\26\u019d\1\u0130\3\0\1\u0110\3\0\1\u017b"+
-    "\3\0\16\u019d\1\u017c\16\u019d\1\u017c\4\0\1\u0110\4\0"+
-    "\1\u019d\52\0\1\u017b\21\0\1\u017c\16\0\1\u017c\73\0"+
-    "\1\u019e\104\0\1\u019f\165\0\1\u01a0\112\0\1\u01a1\76\0"+
-    "\1\u01a2\161\0\1\u01a3\70\0\1\u01a4\131\0\1\u01a5\147\0"+
-    "\1\u01a6\75\0\1\u01a7\111\0\1\u01a8\124\0\1\u01a9\131\0"+
-    "\1\u01aa\6\0\1\u01ab\124\0\1\u01ac\47\0\1\u01ad\45\0"+
-    "\1\u01ae\143\0\1\u01af\107\0\1\u01b0\143\0\1\u01b1\163\0"+
-    "\1\u01b2\116\0\1\u01b3\140\0\1\u01b4\45\0\1\u01b5\15\0"+
-    "\1\u01b6\115\0\1\u01b7\54\0\1\u01b8\57\0\1\u01b9\162\0"+
-    "\1\u01ba\61\0\1\u01bb\54\0\1\u01bc\107\0\1\u01bd\140\0"+
-    "\1\u01be\110\0\1\u01bf\103\0\1\u01c0\107\0\1\u01c1\177\0"+
-    "\1\u01c2\44\0\26\u01c3\1\u0130\3\0\1\u0110\3\0\1\u017b"+
-    "\3\0\16\u01c3\1\u017c\16\u01c3\1\u017c\4\0\1\u0110\4\0"+
-    "\1\u01c3\22\0\1\u01c4\134\0\1\u01c5\132\0\1\u01c6\107\0"+
-    "\1\u01c7\172\0\1\u01c8\12\0\1\u01c9\105\0\1\u01ca\101\0"+
-    "\1\u01cb\166\0\1\u01cc\53\0\1\u01cd\160\0\1\u01ce\22\0"+
-    "\1\u01cf\65\0\1\u01cc\147\0\1\u01cd\121\0\1\u01d0\76\0"+
-    "\1\u01d1\131\0\1\u01d2\23\0\1\u01d3\65\0\1\u01d4\1\0"+
-    "\1\u01d0\6\0\1\u01d1\4\0\1\u01d5\152\0\1\u010c\103\0"+
-    "\1\u010c\111\0\1\u01d6\127\0\1\u01d7\176\0\1\u01d8\11\0"+
-    "\1\u01d9\41\0\1\u01da\202\0\1\u01db\45\0\1\u01dc\177\0"+
-    "\1\u01dd\127\0\1\u01de\136\0\1\u01df\53\0\1\u01e0\107\0"+
-    "\1\u01e1\163\0\1\u01e2\150\0\1\u01e3\46\0\1\u01e4\134\0"+
-    "\1\u01e5\114\0\1\u01e6\143\0\1\u01e7\150\0\1\u0149\104\0"+
-    "\1\u014a\101\0\26\u0110\1\u0130\3\0\1\u0110\3\0\1\u017b"+
-    "\3\0\16\u0110\1\u017c\16\u0110\1\u017c\4\0\1\u0110\4\0"+
-    "\1\u0110\23\0\1\u01e8\177\0\1\u01e9\45\0\1\u01d7\124\0"+
-    "\1\u01d6\133\0\1\u01ea\134\0\1\u01eb\117\0\1\u010c\177\0"+
-    "\1\u010c\66\0\1\u01ec\107\0\1\u01ed\212\0\1\u01ee\126\0"+
-    "\1\u01ef\45\0\1\u01f0\202\0\1\u01f1\123\0\1\u01f2\102\0"+
-    "\1\u01f3\160\0\1\u01f4\123\0\1\u01f5\32\0\1\u01f6\126\0"+
-    "\1\u01f7\130\0\1\u01f8\15\0\1\u01f9\123\0\1\u01fa\23\0"+
-    "\1\u01fb\137\0\1\u01fc\70\0\1\u01fd\112\0\1\u01fe\134\0"+
-    "\1\u01ff\116\0\1\u0200\134\0\1\u0201\172\0\1\u010c\53\0"+
-    "\1\u010c\162\0\1\u0202\104\0\1\u0203\113\0\1\u0204\202\0"+
-    "\1\u0205\101\0\1\u0206\76\0\1\u0207\117\0\1\u0208\134\0"+
-    "\1\u0209\122\0\1\u020a\202\0\1\u020b\37\0\1\u010c\124\0"+
-    "\1\u010c\167\0\1\u020c\150\0\1\u020d\107\0\1\u0200\103\0"+
-    "\1\u0201\174\0\1\u020e\114\0\1\u020f\46\0\1\u0210\143\0"+
-    "\1\u0211\107\0\1\u010c\143\0\1\u010c\150\0\1\u0212\104\0"+
-    "\1\u0213\166\0\1\u0214\102\0\1\u0215\75\0\1\u0216\202\0"+
-    "\1\u0217\46\0\1\u01cd\177\0\1\u01cc\110\0\1\u010c\104\0"+
-    "\1\u010c\107\0\1\u01ca\134\0\1\u01cb\153\0\1\u0218\76\0"+
-    "\1\u0219\157\0\1\u021a\76\0\1\u021b\140\0\1\u021c\125\0"+
-    "\1\u021d\104\0\1\u010c\127\0\1\u010c\116\0\1\u021e\143\0"+
-    "\1\u021f\125\0\1\u0220\107\0\1\u0221\163\0\1\u0222\150\0"+
-    "\1\u0223\107\0\1\u0224\103\0\1\u0225\121\0\1\u0226\162\0"+
-    "\1\u0227\116\0\1\u0228\103\0\1\u0229\146\0\1\u020a\76\0"+
-    "\1\u020b\120\0\1\u022a\202\0\1\u022b\120\0\1\u022c\125\0"+
-    "\1\u022d\52\0\1\u022e\177\0\1\u022f\71\0\1\u01ec\147\0"+
-    "\1\u01ed\65\0\1\u01f6\177\0\1\u01f7\106\0\1\u010c\150\0"+
-    "\1\u010c\127\0\1\u01af\50\0\1\u01ae\162\0\1\u01f6\103\0"+
-    "\1\u01f7\151\0\1\u010c\140\0\1\u010c\105\0\1\u0230\101\0"+
-    "\1\u0231\111\0\1\u0232\143\0\1\u0233\145\0\1\u0234\150\0"+
-    "\1\u0235\112\0\1\u010c\141\0\1\u010c\45\0\1\u0222\134\0"+
-    "\1\u0223\76\0";
-
-  private static int [] zzUnpackTrans() {
-    int [] result = new int[44634];
-    int offset = 0;
-    offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
-    return result;
-  }
-
-  private static int zzUnpackTrans(String packed, int offset, int [] result) {
-    int i = 0;       /* index in packed string  */
-    int j = offset;  /* index in unpacked array */
-    int l = packed.length();
-    while (i < l) {
-      int count = packed.charAt(i++);
-      int value = packed.charAt(i++);
-      value--;
-      do result[j++] = value; while (--count > 0);
-    }
-    return j;
-  }
-
-
-  /* error codes */
-  private static final int ZZ_UNKNOWN_ERROR = 0;
-  private static final int ZZ_NO_MATCH = 1;
-  private static final int ZZ_PUSHBACK_2BIG = 2;
-
-  /* error messages for the codes above */
-  private static final String ZZ_ERROR_MSG[] = {
-    "Unknown internal scanner error",
-    "Error: could not match input",
-    "Error: pushback value was too large"
-  };
-
-  /**
-   * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
-   */
-  private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
-
-  private static final String ZZ_ATTRIBUTE_PACKED_0 =
-    "\1\0\1\1\4\0\1\1\1\0\3\11\46\1\1\11"+
-    "\2\1\3\11\13\1\1\11\6\1\1\11\2\1\2\11"+
-    "\2\1\1\11\4\1\2\11\2\1\1\11\1\1\2\11"+
-    "\1\0\30\1\1\0\11\1\1\0\1\1\2\0\2\1"+
-    "\1\0\1\1\37\0\2\11\2\0\2\1\3\0\34\1"+
-    "\1\0\1\1\34\0\1\1\1\0\20\1\1\11\16\0"+
-    "\1\11\14\0\12\1\26\0\5\1\26\0\3\1\25\0"+
-    "\1\1\16\0\1\11\272\0";
-
-  private static int [] zzUnpackAttribute() {
-    int [] result = new int[565];
-    int offset = 0;
-    offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
-    return result;
-  }
-
-  private static int zzUnpackAttribute(String packed, int offset, int [] result) {
-    int i = 0;       /* index in packed string  */
-    int j = offset;  /* index in unpacked array */
-    int l = packed.length();
-    while (i < l) {
-      int count = packed.charAt(i++);
-      int value = packed.charAt(i++);
-      do result[j++] = value; while (--count > 0);
-    }
-    return j;
-  }
-
-  /** the input device */
-  private java.io.Reader zzReader;
-
-  /** the current state of the DFA */
-  private int zzState;
-
-  /** the current lexical state */
-  private int zzLexicalState = YYINITIAL;
-
-  /** this buffer contains the current text to be matched and is
-      the source of the yytext() string */
-  private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
-
-  /** the textposition at the last accepting state */
-  private int zzMarkedPos;
-
-  /** the current text position in the buffer */
-  private int zzCurrentPos;
-
-  /** startRead marks the beginning of the yytext() string in the buffer */
-  private int zzStartRead;
-
-  /** endRead marks the last character in the buffer, that has been read
-      from input */
-  private int zzEndRead;
-
-  /** number of newlines encountered up to the start of the matched text */
-  private int yyline;
-
-  /** the number of characters up to the start of the matched text */
-  private int yychar;
-
-  /**
-   * the number of characters from the last newline up to the start of the 
-   * matched text
-   */
-  private int yycolumn;
-
-  /** 
-   * zzAtBOL == true <=> the scanner is currently at the beginning of a line
-   */
-  private boolean zzAtBOL = true;
-
-  /** zzAtEOF == true <=> the scanner is at the EOF */
-  private boolean zzAtEOF;
-
-  /** denotes if the user-EOF-code has already been executed */
-  private boolean zzEOFDone;
-  
-  /** 
-   * The number of occupied positions in zzBuffer beyond zzEndRead.
-   * When a lead/high surrogate has been read from the input stream
-   * into the final zzBuffer position, this will have a value of 1;
-   * otherwise, it will have a value of 0.
-   */
-  private int zzFinalHighSurrogate = 0;
 
-  /* user code: */
+\r
+// See https://github.com/jflex-de/jflex/issues/222\r
+@SuppressWarnings("FallThrough")\r
+public final class ScilabLexer extends ScilabLexerConstants {\r
+\r
+  /** This character denotes the end of file. */\r
+  public static final int YYEOF = -1;\r
+\r
+  /** Initial size of the lookahead buffer. */\r
+  private static final int ZZ_BUFFERSIZE = 16384;\r
+\r
+  // Lexical states.\r
+  public static final int YYINITIAL = 0;\r
+  public static final int QSTRING = 2;\r
+  public static final int COMMENT = 4;\r
+  public static final int BLOCKCOMMENT = 6;\r
+  public static final int FIELD = 8;\r
+  public static final int COMMANDS = 10;\r
+  public static final int COMMANDSWHITE = 12;\r
+  public static final int BREAKSTRING = 14;\r
+\r
+  /**\r
+   * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l\r
+   * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l\r
+   *                  at the beginning of a line\r
+   * l is of the form l = 2*k, k a non negative integer\r
+   */\r
+  private static final int ZZ_LEXSTATE[] = {\r
+     0,  0,  1,  1,  2,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7, 7\r
+  };\r
+\r
+  /**\r
+   * Top-level table for translating characters to character classes\r
+   */\r
+  private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top();\r
+\r
+  private static final String ZZ_CMAP_TOP_PACKED_0 =\r
+    "\1\0\37\u0100\1\u0200\267\u0100\10\u0300\u1020\u0100";\r
+\r
+  private static int [] zzUnpackcmap_top() {\r
+    int [] result = new int[4352];\r
+    int offset = 0;\r
+    offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result);\r
+    return result;\r
+  }\r
+\r
+  private static int zzUnpackcmap_top(String packed, int offset, int [] result) {\r
+    int i = 0;       /* index in packed string  */\r
+    int j = offset;  /* index in unpacked array */\r
+    int l = packed.length();\r
+    while (i < l) {\r
+      int count = packed.charAt(i++);\r
+      int value = packed.charAt(i++);\r
+      do result[j++] = value; while (--count > 0);\r
+    }\r
+    return j;\r
+  }\r
+\r
+\r
+  /**\r
+   * Second-level tables for translating characters to character classes\r
+   */\r
+  private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks();\r
+\r
+  private static final String ZZ_CMAP_BLOCKS_PACKED_0 =\r
+    "\11\0\1\1\1\2\1\3\1\4\1\5\22\0\1\6"+\r
+    "\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16"+\r
+    "\1\17\1\20\1\21\1\22\1\23\1\24\1\25\12\26"+\r
+    "\1\27\1\30\1\31\1\32\1\33\1\11\1\34\1\35"+\r
+    "\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\45"+\r
+    "\1\46\1\47\1\50\1\51\1\52\1\53\1\54\1\55"+\r
+    "\1\56\1\57\1\60\1\61\1\62\1\63\1\55\1\64"+\r
+    "\1\65\1\66\1\67\1\17\1\70\1\71\1\0\1\72"+\r
+    "\1\73\1\74\1\75\1\76\1\77\1\100\1\101\1\102"+\r
+    "\1\103\1\104\1\105\1\106\1\107\1\110\1\111\1\112"+\r
+    "\1\113\1\114\1\115\1\116\1\117\1\120\1\121\1\122"+\r
+    "\1\123\1\66\1\124\1\17\1\125\6\0\1\3\u01a2\0"+\r
+    "\2\3\326\0\u0100\3";\r
+\r
+  private static int [] zzUnpackcmap_blocks() {\r
+    int [] result = new int[1024];\r
+    int offset = 0;\r
+    offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result);\r
+    return result;\r
+  }\r
+\r
+  private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) {\r
+    int i = 0;       /* index in packed string  */\r
+    int j = offset;  /* index in unpacked array */\r
+    int l = packed.length();\r
+    while (i < l) {\r
+      int count = packed.charAt(i++);\r
+      int value = packed.charAt(i++);\r
+      do result[j++] = value; while (--count > 0);\r
+    }\r
+    return j;\r
+  }\r
+\r
+  /**\r
+   * Translates DFA states to action switch labels.\r
+   */\r
+  private static final int [] ZZ_ACTION = zzUnpackAction();\r
+\r
+  private static final String ZZ_ACTION_PACKED_0 =\r
+    "\1\0\1\1\4\0\1\1\1\0\1\2\1\3\1\4"+\r
+    "\1\5\1\6\1\7\1\5\1\10\1\11\1\12\1\13"+\r
+    "\2\10\1\2\1\10\1\14\1\10\1\15\1\7\2\10"+\r
+    "\3\5\1\10\16\5\1\10\1\1\1\16\1\17\1\20"+\r
+    "\1\21\1\1\1\22\1\23\1\24\23\22\1\25\1\26"+\r
+    "\1\27\1\25\1\30\1\31\1\32\1\1\1\3\1\4"+\r
+    "\1\1\2\17\1\0\1\33\3\0\3\34\2\5\2\10"+\r
+    "\1\33\1\0\1\10\1\7\1\10\1\15\1\35\1\36"+\r
+    "\1\33\1\15\7\5\1\37\5\5\1\40\10\5\1\10"+\r
+    "\1\0\1\41\1\0\1\42\44\0\1\43\1\0\1\1"+\r
+    "\1\44\3\0\3\5\1\33\3\15\1\34\10\5\1\45"+\r
+    "\12\5\1\33\1\41\1\0\1\42\42\0\5\5\1\46"+\r
+    "\1\5\1\47\10\5\1\41\14\0\1\50\23\0\1\42"+\r
+    "\11\5\33\0\2\5\1\46\2\5\33\0\2\5\33\0"+\r
+    "\1\51\1\52\1\0\1\53\343\0";\r
+\r
+  private static int [] zzUnpackAction() {\r
+    int [] result = new int[624];\r
+    int offset = 0;\r
+    offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);\r
+    return result;\r
+  }\r
+\r
+  private static int zzUnpackAction(String packed, int offset, int [] result) {\r
+    int i = 0;       /* index in packed string  */\r
+    int j = offset;  /* index in unpacked array */\r
+    int l = packed.length();\r
+    while (i < l) {\r
+      int count = packed.charAt(i++);\r
+      int value = packed.charAt(i++);\r
+      do result[j++] = value; while (--count > 0);\r
+    }\r
+    return j;\r
+  }\r
+\r
+\r
+  /**\r
+   * Translates a state to a row index in the transition table\r
+   */\r
+  private static final int [] ZZ_ROWMAP = zzUnpackRowMap();\r
+\r
+  private static final String ZZ_ROWMAP_PACKED_0 =\r
+    "\0\0\0\126\0\254\0\u0102\0\u0158\0\u01ae\0\u0204\0\u025a"+\r
+    "\0\u02b0\0\u0306\0\u035c\0\u03b2\0\u0408\0\u03b2\0\u045e\0\u04b4"+\r
+    "\0\u0408\0\u02b0\0\u02b0\0\u050a\0\u0560\0\u05b6\0\u060c\0\u0662"+\r
+    "\0\u06b8\0\u070e\0\u05b6\0\u0764\0\u07ba\0\u0810\0\u0866\0\u08bc"+\r
+    "\0\u05b6\0\u0912\0\u0968\0\u09be\0\u0a14\0\u0a6a\0\u0ac0\0\u0b16"+\r
+    "\0\u0b6c\0\u0bc2\0\u0c18\0\u0c6e\0\u0cc4\0\u0d1a\0\u0d70\0\u0dc6"+\r
+    "\0\u0e1c\0\u02b0\0\u02b0\0\u02b0\0\u0e72\0\u0ec8\0\u02b0\0\u02b0"+\r
+    "\0\u02b0\0\u0f1e\0\u0f74\0\u0fca\0\u1020\0\u1076\0\u10cc\0\u1122"+\r
+    "\0\u1178\0\u11ce\0\u1224\0\u127a\0\u12d0\0\u1326\0\u137c\0\u13d2"+\r
+    "\0\u1428\0\u147e\0\u14d4\0\u152a\0\u02b0\0\u02b0\0\u1580\0\u1580"+\r
+    "\0\u15d6\0\u15d6\0\u02b0\0\u162c\0\u02b0\0\u02b0\0\u1682\0\u16d8"+\r
+    "\0\u172e\0\u0306\0\u1784\0\u17da\0\u05b6\0\u1830\0\u03b2\0\u1886"+\r
+    "\0\u18dc\0\u1932\0\u1988\0\u19de\0\u02b0\0\u02b0\0\u1a34\0\u1a8a"+\r
+    "\0\u1ae0\0\u1b36\0\u1b8c\0\u1be2\0\u02b0\0\u1c38\0\u1c8e\0\u1ce4"+\r
+    "\0\u1d3a\0\u1d90\0\u1de6\0\u1e3c\0\u1e92\0\u1ee8\0\u03b2\0\u1f3e"+\r
+    "\0\u1f94\0\u1fea\0\u2040\0\u2096\0\u03b2\0\u20ec\0\u2142\0\u2198"+\r
+    "\0\u21ee\0\u2244\0\u229a\0\u22f0\0\u2346\0\u239c\0\u0e72\0\u23f2"+\r
+    "\0\u0f1e\0\u02b0\0\u2448\0\u0f74\0\u249e\0\u24f4\0\u254a\0\u25a0"+\r
+    "\0\u25f6\0\u264c\0\u26a2\0\u26f8\0\u274e\0\u27a4\0\u27fa\0\u2850"+\r
+    "\0\u28a6\0\u28fc\0\u2952\0\u29a8\0\u29fe\0\u2a54\0\u2aaa\0\u2b00"+\r
+    "\0\u2b56\0\u2bac\0\u2c02\0\u2c58\0\u2cae\0\u2d04\0\u2d5a\0\u2db0"+\r
+    "\0\u2e06\0\u2e5c\0\u2eb2\0\u2f08\0\u2f5e\0\u152a\0\u02b0\0\u15d6"+\r
+    "\0\u2fb4\0\u16d8\0\u300a\0\u3060\0\u30b6\0\u310c\0\u3162\0\u31b8"+\r
+    "\0\u19de\0\u320e\0\u3264\0\u32ba\0\u3310\0\u3366\0\u33bc\0\u3412"+\r
+    "\0\u3468\0\u34be\0\u3514\0\u356a\0\u35c0\0\u3616\0\u366c\0\u36c2"+\r
+    "\0\u3718\0\u376e\0\u37c4\0\u381a\0\u3870\0\u38c6\0\u391c\0\u3972"+\r
+    "\0\u239c\0\u39c8\0\u3a1e\0\u0f1e\0\u3a74\0\u3aca\0\u3b20\0\u3b76"+\r
+    "\0\u3bcc\0\u3c22\0\u3c78\0\u3cce\0\u3d24\0\u3d7a\0\u3dd0\0\u3e26"+\r
+    "\0\u3e7c\0\u3ed2\0\u3f28\0\u3f7e\0\u3fd4\0\u402a\0\u4080\0\u40d6"+\r
+    "\0\u412c\0\u4182\0\u41d8\0\u422e\0\u4284\0\u42da\0\u4330\0\u4386"+\r
+    "\0\u43dc\0\u4432\0\u4488\0\u44de\0\u4534\0\u458a\0\u45e0\0\u4636"+\r
+    "\0\u468c\0\u46e2\0\u4738\0\u478e\0\u47e4\0\u03b2\0\u483a\0\u4890"+\r
+    "\0\u48e6\0\u493c\0\u4992\0\u49e8\0\u4a3e\0\u4a94\0\u02b0\0\u4aea"+\r
+    "\0\u4b40\0\u4b96\0\u4bec\0\u4c42\0\u4c98\0\u4cee\0\u4d44\0\u4d9a"+\r
+    "\0\u4df0\0\u4e46\0\u4e9c\0\u02b0\0\u4ef2\0\u4f48\0\u4f9e\0\u4ff4"+\r
+    "\0\u504a\0\u50a0\0\u50f6\0\u514c\0\u51a2\0\u51f8\0\u524e\0\u52a4"+\r
+    "\0\u52fa\0\u5350\0\u53a6\0\u53fc\0\u5452\0\u54a8\0\u54fe\0\u300a"+\r
+    "\0\u5554\0\u55aa\0\u5600\0\u5656\0\u56ac\0\u5702\0\u5758\0\u57ae"+\r
+    "\0\u5804\0\u585a\0\u58b0\0\u5906\0\u595c\0\u59b2\0\u5a08\0\u5a5e"+\r
+    "\0\u5ab4\0\u5b0a\0\u5b60\0\u5bb6\0\u5c0c\0\u5c62\0\u5cb8\0\u5d0e"+\r
+    "\0\u5d64\0\u5dba\0\u5e10\0\u5e66\0\u5ebc\0\u5f12\0\u5f68\0\u5fbe"+\r
+    "\0\u6014\0\u606a\0\u60c0\0\u6116\0\u616c\0\u61c2\0\u03b2\0\u6218"+\r
+    "\0\u626e\0\u62c4\0\u631a\0\u6370\0\u63c6\0\u641c\0\u6472\0\u64c8"+\r
+    "\0\u651e\0\u6574\0\u65ca\0\u6620\0\u6676\0\u66cc\0\u6722\0\u6778"+\r
+    "\0\u67ce\0\u6824\0\u687a\0\u68d0\0\u6926\0\u697c\0\u69d2\0\u6a28"+\r
+    "\0\u6a7e\0\u6ad4\0\u6b2a\0\u6b80\0\u6bd6\0\u6c2c\0\u6c82\0\u6cd8"+\r
+    "\0\u6d2e\0\u6d84\0\u6dda\0\u6e30\0\u6e86\0\u6edc\0\u6f32\0\u6f88"+\r
+    "\0\u6fde\0\u7034\0\u708a\0\u70e0\0\u7136\0\u718c\0\u71e2\0\u7238"+\r
+    "\0\u728e\0\u72e4\0\u733a\0\u7390\0\u73e6\0\u743c\0\u7492\0\u74e8"+\r
+    "\0\u753e\0\u6b80\0\u03b2\0\u7594\0\u02b0\0\u75ea\0\u7640\0\u7696"+\r
+    "\0\u76ec\0\u7742\0\u7798\0\u77ee\0\u7844\0\u789a\0\u78f0\0\u7946"+\r
+    "\0\u799c\0\u79f2\0\u7a48\0\u7a9e\0\u7af4\0\u7b4a\0\u7ba0\0\u7bf6"+\r
+    "\0\u7c4c\0\u7ca2\0\u7cf8\0\u7d4e\0\u7da4\0\u7dfa\0\u7e50\0\u7ea6"+\r
+    "\0\u7efc\0\u7f52\0\u7fa8\0\u7ffe\0\u8054\0\u80aa\0\u8100\0\u8156"+\r
+    "\0\u81ac\0\u8202\0\u8258\0\u82ae\0\u8304\0\u835a\0\u83b0\0\u8406"+\r
+    "\0\u845c\0\u84b2\0\u8508\0\u855e\0\u85b4\0\u860a\0\u8660\0\u86b6"+\r
+    "\0\u870c\0\u8762\0\u87b8\0\u880e\0\u8864\0\u88ba\0\u8910\0\u8966"+\r
+    "\0\u89bc\0\u8a12\0\u8a68\0\u8abe\0\u8b14\0\u8b6a\0\u8bc0\0\u8c16"+\r
+    "\0\u8c6c\0\u8cc2\0\u8d18\0\u8d6e\0\u8dc4\0\u8e1a\0\u8e70\0\u8ec6"+\r
+    "\0\u8f1c\0\u8f72\0\u8fc8\0\u901e\0\u9074\0\u90ca\0\u9120\0\u9176"+\r
+    "\0\u91cc\0\u9222\0\u9278\0\u92ce\0\u9324\0\u937a\0\u93d0\0\u9426"+\r
+    "\0\u947c\0\u94d2\0\u9528\0\u957e\0\u95d4\0\u962a\0\u9680\0\u96d6"+\r
+    "\0\u972c\0\u9782\0\u97d8\0\u982e\0\u9884\0\u98da\0\u9930\0\u9986"+\r
+    "\0\u99dc\0\u9a32\0\u9a88\0\u9ade\0\u9b34\0\u9b8a\0\u9be0\0\u9c36"+\r
+    "\0\u9c8c\0\u9ce2\0\u9d38\0\u9d8e\0\u9de4\0\u9e3a\0\u9e90\0\u9ee6"+\r
+    "\0\u9f3c\0\u9f92\0\u9fe8\0\ua03e\0\ua094\0\ua0ea\0\ua140\0\ua196"+\r
+    "\0\ua1ec\0\ua242\0\ua298\0\ua2ee\0\ua344\0\ua39a\0\ua3f0\0\ua446"+\r
+    "\0\ua49c\0\ua4f2\0\ua548\0\ua59e\0\ua5f4\0\ua64a\0\ua6a0\0\ua6f6"+\r
+    "\0\ua74c\0\ua7a2\0\ua7f8\0\ua84e\0\ua8a4\0\ua8fa\0\ua950\0\ua9a6"+\r
+    "\0\ua9fc\0\uaa52\0\uaaa8\0\uaafe\0\uab54\0\uabaa\0\uac00\0\uac56"+\r
+    "\0\uacac\0\uad02\0\uad58\0\uadae\0\uae04\0\uae5a\0\uaeb0\0\uaf06"+\r
+    "\0\uaf5c\0\uafb2\0\ub008\0\ub05e\0\ub0b4\0\ub10a\0\ub160\0\ub1b6"+\r
+    "\0\ub20c\0\ub262\0\ub2b8\0\ub30e\0\ub364\0\ub3ba\0\ub410\0\ub466"+\r
+    "\0\ub4bc\0\ub512\0\ub568\0\ub5be\0\ub614\0\ub66a\0\ub6c0\0\ub716"+\r
+    "\0\ub76c\0\ub7c2\0\ub818\0\ub86e\0\ub8c4\0\ub91a\0\ub970\0\ub9c6"+\r
+    "\0\uba1c\0\uba72\0\ubac8\0\ubb1e\0\ubb74\0\ubbca\0\ubc20\0\ubc76"+\r
+    "\0\ubccc\0\ubd22\0\ubd78\0\ubdce\0\ube24\0\ube7a\0\ubed0\0\ubf26"+\r
+    "\0\ubf7c\0\ubfd2\0\uc028\0\uc07e\0\uc0d4\0\uc12a\0\uc180\0\uc1d6";\r
+\r
+  private static int [] zzUnpackRowMap() {\r
+    int [] result = new int[624];\r
+    int offset = 0;\r
+    offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);\r
+    return result;\r
+  }\r
+\r
+  private static int zzUnpackRowMap(String packed, int offset, int [] result) {\r
+    int i = 0;  /* index in packed string  */\r
+    int j = offset;  /* index in unpacked array */\r
+    int l = packed.length();\r
+    while (i < l) {\r
+      int high = packed.charAt(i++) << 16;\r
+      result[j++] = high | packed.charAt(i++);\r
+    }\r
+    return j;\r
+  }\r
+\r
+  /**\r
+   * The transition table of the DFA\r
+   */\r
+  private static final int [] ZZ_TRANS = zzUnpackTrans();\r
+\r
+  private static final String ZZ_TRANS_PACKED_0 =\r
+    "\1\11\1\12\1\11\3\0\1\13\1\14\1\15\1\14"+\r
+    "\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25"+\r
+    "\1\26\1\27\1\30\1\31\1\32\1\33\1\11\1\34"+\r
+    "\3\35\22\14\1\36\1\37\2\14\1\40\2\14\1\22"+\r
+    "\2\41\1\14\1\42\1\43\1\44\1\45\1\46\1\47"+\r
+    "\2\14\1\50\5\14\1\51\1\52\1\53\1\54\1\55"+\r
+    "\1\56\2\14\1\57\3\14\1\60\1\35\1\61\1\62"+\r
+    "\1\63\2\61\1\0\1\64\1\61\1\65\4\61\1\65"+\r
+    "\6\61\1\66\101\61\1\67\1\70\1\67\3\0\1\71"+\r
+    "\3\67\1\72\16\67\1\73\3\67\1\74\1\75\1\76"+\r
+    "\1\77\1\100\3\67\1\101\1\102\2\67\1\103\2\67"+\r
+    "\1\104\2\67\1\105\2\67\1\106\1\67\1\107\1\110"+\r
+    "\11\67\1\111\1\67\1\112\12\67\1\113\12\67\1\70"+\r
+    "\1\67\3\0\1\71\3\67\1\72\5\67\1\114\10\67"+\r
+    "\1\73\3\67\1\74\1\75\1\76\1\77\1\100\3\67"+\r
+    "\1\101\1\102\2\67\1\103\2\67\1\104\2\67\1\105"+\r
+    "\2\67\1\106\1\67\1\107\1\110\11\67\1\111\1\67"+\r
+    "\1\112\12\67\1\113\11\67\2\115\1\116\3\0\1\115"+\r
+    "\1\117\1\115\1\117\1\120\1\117\21\115\31\117\3\115"+\r
+    "\33\117\3\115\1\121\1\116\3\0\1\122\7\115\1\123"+\r
+    "\107\115\1\124\1\125\4\124\1\126\13\124\1\115\2\124"+\r
+    "\1\127\2\124\1\115\75\124\1\63\1\125\1\63\3\0"+\r
+    "\1\126\15\63\1\130\1\131\100\63\127\0\1\132\4\0"+\r
+    "\1\133\120\0\1\133\4\0\1\134\1\135\125\0\1\14"+\r
+    "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\33\14"+\r
+    "\14\0\1\136\122\0\1\14\1\0\2\14\13\0\1\14"+\r
+    "\6\0\5\14\1\137\15\14\1\137\5\14\3\0\5\14"+\r
+    "\1\140\1\137\2\14\1\141\4\14\1\142\1\14\1\143"+\r
+    "\2\14\2\137\5\14\1\137\16\0\1\144\131\0\1\145"+\r
+    "\11\0\1\146\113\0\1\146\3\0\1\147\1\146\4\0"+\r
+    "\1\146\34\0\2\146\67\0\1\146\113\0\1\146\3\0"+\r
+    "\1\147\1\146\4\0\2\146\33\0\2\146\52\0\1\145"+\r
+    "\2\0\1\150\3\0\1\151\1\152\1\153\3\0\1\146"+\r
+    "\34\0\1\152\1\145\55\0\1\154\3\0\1\145\1\155"+\r
+    "\4\0\1\146\102\0\1\156\1\0\2\156\11\0\1\153"+\r
+    "\1\0\1\32\6\0\3\156\2\157\24\156\3\0\4\156"+\r
+    "\2\157\25\156\34\0\2\145\124\0\1\145\102\0\1\14"+\r
+    "\1\0\2\14\13\0\1\14\6\0\2\14\1\160\26\14"+\r
+    "\3\0\33\14\11\0\1\14\1\0\2\14\13\0\1\14"+\r
+    "\6\0\14\14\1\161\14\14\3\0\33\14\11\0\1\14"+\r
+    "\1\0\2\14\13\0\1\14\6\0\22\14\1\162\6\14"+\r
+    "\3\0\33\14\11\0\1\14\1\0\2\14\13\0\1\14"+\r
+    "\6\0\31\14\3\0\2\14\1\163\30\14\11\0\1\14"+\r
+    "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\22\14"+\r
+    "\1\164\10\14\11\0\1\14\1\0\2\14\13\0\1\14"+\r
+    "\6\0\31\14\3\0\1\14\1\165\15\14\1\166\13\14"+\r
+    "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+\r
+    "\3\0\17\14\1\167\13\14\11\0\1\14\1\0\2\14"+\r
+    "\13\0\1\14\6\0\31\14\3\0\14\14\1\170\1\14"+\r
+    "\1\171\11\14\1\172\2\14\11\0\1\14\1\0\2\14"+\r
+    "\13\0\1\14\6\0\31\14\3\0\17\14\1\173\5\14"+\r
+    "\1\174\5\14\11\0\1\14\1\0\2\14\13\0\1\14"+\r
+    "\6\0\31\14\3\0\6\14\1\175\24\14\11\0\1\14"+\r
+    "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\24\14"+\r
+    "\1\176\6\14\11\0\1\14\1\0\2\14\13\0\1\14"+\r
+    "\6\0\31\14\3\0\1\14\1\177\31\14\11\0\1\14"+\r
+    "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\25\14"+\r
+    "\1\172\5\14\11\0\1\14\1\0\2\14\13\0\1\14"+\r
+    "\6\0\31\14\3\0\5\14\1\200\25\14\11\0\1\14"+\r
+    "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\5\14"+\r
+    "\1\201\21\14\1\202\3\14\11\0\1\14\1\0\2\14"+\r
+    "\13\0\1\14\6\0\31\14\3\0\10\14\1\203\11\14"+\r
+    "\1\204\10\14\11\0\1\14\1\0\2\14\13\0\1\14"+\r
+    "\6\0\31\14\3\0\10\14\1\205\22\14\126\0\1\206"+\r
+    "\1\0\1\61\2\0\2\61\2\0\1\61\1\207\4\61"+\r
+    "\1\207\6\61\1\0\101\61\10\0\1\61\4\0\1\61"+\r
+    "\134\0\1\210\101\0\12\211\1\212\54\211\1\213\36\211"+\r
+    "\1\0\1\214\4\0\1\214\14\0\2\215\1\0\1\215"+\r
+    "\6\0\31\215\3\0\33\215\77\0\1\216\7\0\1\217"+\r
+    "\1\0\1\220\114\0\1\221\14\0\1\222\104\0\1\223"+\r
+    "\3\0\1\224\6\0\1\225\65\0\1\226\34\0\1\227"+\r
+    "\75\0\1\230\4\0\1\231\120\0\1\232\34\0\1\233"+\r
+    "\114\0\1\234\121\0\1\235\7\0\1\236\115\0\1\237"+\r
+    "\7\0\1\240\115\0\1\241\3\0\1\242\3\0\1\243"+\r
+    "\12\0\1\244\4\0\1\245\105\0\1\246\115\0\1\247"+\r
+    "\134\0\1\250\126\0\1\251\12\0\1\252\125\0\1\253"+\r
+    "\107\0\1\254\6\0\1\255\37\0\1\256\4\0\1\257"+\r
+    "\107\0\1\117\1\0\2\117\13\0\1\117\6\0\31\117"+\r
+    "\3\0\33\117\3\0\1\260\4\0\1\260\7\0\1\123"+\r
+    "\107\0\1\124\1\0\4\124\1\0\13\124\1\0\2\124"+\r
+    "\1\0\2\124\1\0\75\124\6\261\1\0\16\261\1\155"+\r
+    "\100\261\24\0\1\262\126\0\1\155\101\0\1\133\4\0"+\r
+    "\1\133\120\0\1\133\4\0\1\134\117\0\10\136\1\263"+\r
+    "\1\136\1\264\2\136\1\263\51\136\1\265\36\136\7\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\20\14\1\266\12\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\16\14\1\267\14\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\1\14\1\270\31\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\11\14\1\137\21\14\16\0"+\r
+    "\1\271\131\0\2\146\1\0\1\146\1\0\1\146\41\0"+\r
+    "\2\146\55\0\1\145\3\0\1\145\125\0\1\151\125\0"+\r
+    "\1\145\127\0\1\153\11\0\2\272\33\0\2\272\47\0"+\r
+    "\1\154\114\0\1\156\1\0\2\156\13\0\1\156\6\0"+\r
+    "\31\156\3\0\33\156\11\0\1\156\1\0\2\156\6\0"+\r
+    "\1\273\1\0\1\273\2\0\1\274\6\0\31\156\3\0"+\r
+    "\33\156\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+\r
+    "\10\14\1\275\20\14\3\0\33\14\11\0\1\14\1\0"+\r
+    "\2\14\13\0\1\14\6\0\17\14\1\276\11\14\3\0"+\r
+    "\33\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+\r
+    "\2\14\1\277\26\14\3\0\33\14\11\0\1\14\1\0"+\r
+    "\2\14\13\0\1\14\6\0\31\14\3\0\17\14\1\300"+\r
+    "\13\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+\r
+    "\31\14\3\0\5\14\1\301\25\14\11\0\1\14\1\0"+\r
+    "\2\14\13\0\1\14\6\0\31\14\3\0\23\14\1\302"+\r
+    "\1\303\6\14\11\0\1\14\1\0\2\14\13\0\1\14"+\r
+    "\6\0\31\14\3\0\16\14\1\304\14\14\11\0\1\14"+\r
+    "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\23\14"+\r
+    "\1\305\7\14\11\0\1\14\1\0\2\14\13\0\1\14"+\r
+    "\6\0\31\14\3\0\4\14\1\306\26\14\11\0\1\14"+\r
+    "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\11\14"+\r
+    "\1\307\21\14\11\0\1\14\1\0\2\14\13\0\1\14"+\r
+    "\6\0\31\14\3\0\22\14\1\175\10\14\11\0\1\14"+\r
+    "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\16\14"+\r
+    "\1\310\14\14\11\0\1\14\1\0\2\14\13\0\1\14"+\r
+    "\6\0\31\14\3\0\10\14\1\311\22\14\11\0\1\14"+\r
+    "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\25\14"+\r
+    "\1\312\5\14\11\0\1\14\1\0\2\14\13\0\1\14"+\r
+    "\6\0\31\14\3\0\23\14\1\313\1\314\6\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\14\14\1\315\16\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\11\14\1\316\21\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\5\14\1\317\25\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\31\14\1\175\1\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\11\14\1\320\21\14\126\0\1\321\2\0\1\322\4\0"+\r
+    "\1\322\15\0\1\210\1\323\100\0\12\211\1\324\54\211"+\r
+    "\1\213\36\211\23\0\2\215\1\0\1\215\5\0\1\325"+\r
+    "\31\215\3\0\33\215\100\0\1\326\134\0\1\327\135\0"+\r
+    "\1\330\123\0\1\331\130\0\1\332\114\0\1\333\115\0"+\r
+    "\1\334\122\0\1\335\3\0\1\336\72\0\1\337\162\0"+\r
+    "\1\340\101\0\1\341\116\0\1\342\136\0\1\343\162\0"+\r
+    "\1\344\125\0\1\345\121\0\1\346\112\0\1\347\147\0"+\r
+    "\1\350\105\0\1\351\135\0\1\352\132\0\1\353\120\0"+\r
+    "\1\354\115\0\1\355\134\0\1\356\127\0\1\357\125\0"+\r
+    "\1\360\126\0\1\361\122\0\1\362\131\0\1\363\131\0"+\r
+    "\1\252\125\0\1\364\103\0\1\365\32\0\6\261\1\0"+\r
+    "\16\261\1\0\100\261\10\0\1\136\4\0\1\136\120\0"+\r
+    "\1\212\4\0\1\212\110\0\10\136\1\263\1\136\1\366"+\r
+    "\2\136\1\263\51\136\1\265\36\136\7\0\1\14\1\0"+\r
+    "\2\14\13\0\1\14\6\0\31\14\3\0\23\14\1\137"+\r
+    "\7\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+\r
+    "\31\14\3\0\6\14\1\137\24\14\11\0\1\14\1\0"+\r
+    "\2\14\13\0\1\14\6\0\31\14\3\0\16\14\1\137"+\r
+    "\14\14\23\0\1\273\1\0\1\273\2\0\1\273\125\0"+\r
+    "\1\273\106\0\1\156\1\0\2\156\13\0\1\274\6\0"+\r
+    "\31\156\3\0\33\156\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\7\14\1\367\21\14\3\0\33\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\3\14\1\370"+\r
+    "\25\14\3\0\33\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\10\14\1\137\20\14\3\0\33\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\22\14\1\307\10\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\1\14\1\371\31\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\5\14\1\167\25\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\3\14\1\372\27\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\24\14\1\373\6\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\5\14\1\374\25\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\6\14\1\375\24\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\24\14\1\376\6\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\3\14\1\377\27\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\5\14\1\u0100\25\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\23\14\1\u0101\7\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\25\14\1\u0102\5\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\25\14\1\u0103\5\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\5\14\1\u0104\25\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\24\14\1\u0105\6\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\16\14\1\167\14\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\14\14\1\u0106\16\14\3\0\1\322\4\0\1\322\16\0"+\r
+    "\1\323\125\0\1\u0107\123\0\1\u0108\2\0\1\u0108\6\0"+\r
+    "\31\u0108\4\0\32\u0108\107\0\1\u0109\112\0\1\u010a\143\0"+\r
+    "\1\u010b\124\0\1\u010c\125\0\1\u010d\120\0\1\u010e\136\0"+\r
+    "\1\u010f\130\0\1\u0110\115\0\1\u0111\64\0\1\u0112\162\0"+\r
+    "\1\u0113\62\0\1\u0114\74\0\1\u0115\164\0\1\u0116\162\0"+\r
+    "\1\u0117\133\0\1\u0118\133\0\1\u0119\110\0\1\u011a\131\0"+\r
+    "\1\u011b\133\0\1\u011c\130\0\1\u011d\107\0\1\u011e\135\0"+\r
+    "\1\u011f\126\0\1\u0120\133\0\1\u0121\102\0\1\u0122\140\0"+\r
+    "\1\u0123\134\0\1\u0124\105\0\1\u0125\56\0\1\u0126\64\0"+\r
+    "\1\u0125\122\0\1\u0125\43\0\1\u0127\76\0\10\136\1\u0128"+\r
+    "\1\136\1\264\2\136\1\u0128\51\136\1\265\36\136\7\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\16\14\1\u0129"+\r
+    "\12\14\3\0\33\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\10\14\1\u012a\20\14\3\0\33\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\13\14\1\376\17\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\10\14\1\167\22\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\11\14\1\u012b\21\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\11\14\1\u012c\21\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\25\14\1\174\5\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\24\14\1\u012d\6\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\22\14\1\u012e\10\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\5\14\1\376\25\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\15\14\1\u0101\15\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\22\14\1\u012f\10\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\3\14\1\u0130\27\14\11\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\3\14\1\u0131\27\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\5\14\1\175\25\14\25\0\1\u0108\1\u0132\1\0\1\u0108"+\r
+    "\6\0\31\u0108\4\0\32\u0108\104\0\1\u0133\132\0\1\u0134"+\r
+    "\120\0\1\u0135\115\0\1\u0136\143\0\1\u0137\136\0\1\u0138"+\r
+    "\106\0\1\u0139\120\0\1\u013a\126\0\1\u013b\107\0\1\u013c"+\r
+    "\162\0\1\u013d\53\0\1\u013e\117\0\1\u0114\162\0\1\u0114"+\r
+    "\141\0\1\u013f\115\0\1\u0140\121\0\1\u0141\41\0\1\u0142"+\r
+    "\232\0\1\u0143\110\0\1\u0144\125\0\1\u0145\136\0\1\u0146"+\r
+    "\117\0\1\u0147\122\0\1\u0148\125\0\1\u0149\35\0\1\u014a"+\r
+    "\232\0\1\u014b\41\0\1\u0126\123\0\1\u014c\125\0\1\u0126"+\r
+    "\107\0\1\14\1\0\2\14\13\0\1\14\6\0\14\14"+\r
+    "\1\u014d\14\14\3\0\33\14\11\0\1\14\1\0\2\14"+\r
+    "\13\0\1\14\6\0\21\14\1\137\7\14\3\0\33\14"+\r
+    "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+\r
+    "\3\0\16\14\1\u014e\14\14\11\0\1\14\1\0\2\14"+\r
+    "\13\0\1\14\6\0\31\14\3\0\6\14\1\u014f\24\14"+\r
+    "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+\r
+    "\3\0\11\14\1\u0150\21\14\11\0\1\14\1\0\2\14"+\r
+    "\13\0\1\14\6\0\31\14\3\0\27\14\1\u0151\3\14"+\r
+    "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+\r
+    "\3\0\16\14\1\376\14\14\11\0\1\14\1\0\2\14"+\r
+    "\13\0\1\14\6\0\31\14\3\0\24\14\1\175\6\14"+\r
+    "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+\r
+    "\3\0\10\14\1\175\22\14\25\0\1\u0108\2\0\1\u0108"+\r
+    "\6\0\31\u0152\4\0\32\u0152\111\0\1\u0153\24\0\1\u0154"+\r
+    "\226\0\1\u0155\131\0\1\u0156\20\0\1\u0157\234\0\1\u0158"+\r
+    "\104\0\1\u0159\127\0\1\u015a\136\0\1\u015b\57\0\1\u015c"+\r
+    "\162\0\1\u015d\142\0\1\u015e\110\0\1\u015f\134\0\1\u0160"+\r
+    "\116\0\1\u0161\65\0\1\u0162\165\0\1\u0163\134\0\1\u0164"+\r
+    "\26\0\1\u0165\125\0\1\u0166\211\0\1\u0167\147\0\1\u0168"+\r
+    "\120\0\1\u0169\55\0\1\u016a\74\0\1\u016b\144\0\1\u016c"+\r
+    "\107\0\1\14\1\0\2\14\13\0\1\14\6\0\4\14"+\r
+    "\1\137\24\14\3\0\33\14\11\0\1\14\1\0\2\14"+\r
+    "\13\0\1\14\6\0\31\14\3\0\25\14\1\u0101\5\14"+\r
+    "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+\r
+    "\3\0\17\14\1\u016d\13\14\11\0\1\14\1\0\2\14"+\r
+    "\13\0\1\14\6\0\31\14\3\0\11\14\1\u016e\21\14"+\r
+    "\25\0\1\u0108\1\u0132\1\0\1\u0108\6\0\31\u016f\4\0"+\r
+    "\32\u016f\100\0\1\u0170\66\0\1\u0171\17\0\1\u0172\144\0"+\r
+    "\1\u0173\124\0\1\u0174\76\0\1\u0175\155\0\1\u0176\35\0"+\r
+    "\1\u0177\125\0\1\u0178\234\0\1\u0179\63\0\1\u0114\162\0"+\r
+    "\1\u0114\125\0\1\u017a\23\0\1\u017b\125\0\1\u017c\224\0"+\r
+    "\1\u017d\65\0\1\u017e\34\0\1\u017f\31\0\1\u0180\125\0"+\r
+    "\1\u0181\176\0\1\u0182\111\0\1\u0183\171\0\1\u0184\133\0"+\r
+    "\1\u0185\125\0\1\u0186\63\0\1\u0187\34\0\1\u0188\66\0"+\r
+    "\1\u0189\54\0\1\u018a\2\0\1\u018a\3\0\1\u018a\1\0"+\r
+    "\4\u018a\1\0\110\u018a\7\0\1\14\1\0\2\14\13\0"+\r
+    "\1\14\6\0\31\14\3\0\16\14\1\u018b\14\14\11\0"+\r
+    "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+\r
+    "\23\14\1\302\7\14\3\0\1\u018c\4\0\1\u018c\14\0"+\r
+    "\1\u0108\1\u0132\1\0\1\u0108\4\0\1\u018d\1\0\31\u018e"+\r
+    "\4\0\32\u018e\10\0\1\u018f\172\0\1\u0190\34\0\1\u0191"+\r
+    "\62\0\1\u0192\34\0\1\u0193\31\0\1\u0194\125\0\1\u0195"+\r
+    "\172\0\1\u0196\34\0\1\u0197\23\0\1\u0198\157\0\1\u0199"+\r
+    "\130\0\1\u019a\70\0\1\u019b\235\0\1\u019c\63\0\1\u019d"+\r
+    "\117\0\1\u019e\65\0\1\u019f\162\0\1\u01a0\162\0\1\u01a1"+\r
+    "\75\0\1\u01a2\1\u01a3\117\0\1\u01a4\142\0\1\u01a5\34\0"+\r
+    "\1\u01a6\45\0\1\u01a7\34\0\1\u01a8\131\0\1\u01a9\142\0"+\r
+    "\1\u01aa\20\0\1\u01ab\167\0\1\u01ac\162\0\1\u01ad\55\0"+\r
+    "\1\u01ae\34\0\1\u01af\34\0\1\u018c\4\0\1\u018c\24\0"+\r
+    "\1\u018d\73\0\1\u018c\4\0\1\u018c\14\0\1\u0108\1\u0132"+\r
+    "\1\0\1\u0108\4\0\1\u018d\1\0\31\u01b0\4\0\32\u01b0"+\r
+    "\41\0\1\u01b1\144\0\1\u01b2\162\0\1\u01b3\63\0\1\u01b4"+\r
+    "\162\0\1\u01b5\60\0\1\u01b6\130\0\1\u01b7\123\0\1\u01b8"+\r
+    "\162\0\1\u01b9\66\0\1\u01ba\126\0\1\u01bb\34\0\1\u01bc"+\r
+    "\102\0\1\u01bd\34\0\1\u01be\55\0\1\u01bf\176\0\1\u0114"+\r
+    "\61\0\1\u01c0\34\0\1\u01c1\104\0\1\u01c2\34\0\1\u01c3"+\r
+    "\45\0\1\u01c4\141\0\1\u01c5\162\0\1\u01c6\53\0\1\u01c7"+\r
+    "\34\0\1\u01c8\70\0\1\u01c9\34\0\1\u01ca\106\0\1\u01cb"+\r
+    "\34\0\1\u01cc\56\0\1\u01cd\162\0\1\u01ce\105\0\1\u01cf"+\r
+    "\162\0\1\u01d0\20\0\1\u01d1\215\0\1\u01d2\66\0\1\u01d3"+\r
+    "\10\0\1\u01d4\125\0\1\u01d5\162\0\1\u01d6\60\0\1\u01d7"+\r
+    "\162\0\1\u01d8\31\0\1\u018c\4\0\1\u018c\14\0\1\u0108"+\r
+    "\1\u0132\1\0\1\u0108\4\0\1\u018d\1\0\31\u01d9\4\0"+\r
+    "\32\u01d9\37\0\1\u01da\142\0\1\u01db\162\0\1\u01dc\71\0"+\r
+    "\1\u01dd\162\0\1\u01de\65\0\1\u01df\34\0\1\u01e0\101\0"+\r
+    "\1\u01e1\34\0\1\u01e2\65\0\1\u01db\162\0\1\u01dc\53\0"+\r
+    "\1\u01e3\34\0\1\u01e4\77\0\1\u01e5\162\0\1\u01e6\71\0"+\r
+    "\1\u01e7\162\0\1\u01e8\54\0\1\u01e9\34\0\1\u01ea\72\0"+\r
+    "\1\u01eb\162\0\1\u01ec\101\0\1\u01ed\162\0\1\u01ee\55\0"+\r
+    "\1\u01ef\34\0\1\u01f0\100\0\1\u01cd\162\0\1\u01ce\75\0"+\r
+    "\1\u01f1\162\0\1\u01f2\74\0\1\u01f3\162\0\1\u01f4\73\0"+\r
+    "\1\u01f5\162\0\1\u01f6\50\0\1\u01f7\162\0\1\u01f8\70\0"+\r
+    "\1\u01f9\162\0\1\u01fa\100\0\1\u01fb\62\0\1\u01fc\172\0"+\r
+    "\1\u01fd\34\0\1\u01fe\56\0\1\u01ff\3\0\1\u01eb\30\0"+\r
+    "\1\u0200\3\0\1\u01ec\64\0\1\u0201\162\0\1\u0202\74\0"+\r
+    "\1\u0203\162\0\1\u0204\24\0\1\u018c\4\0\1\u018c\14\0"+\r
+    "\1\u0108\1\u0132\1\0\1\u0108\4\0\1\u018d\1\0\31\u0108"+\r
+    "\4\0\32\u0108\60\0\1\u0205\110\0\1\u0206\162\0\1\u0207"+\r
+    "\101\0\1\u0114\162\0\1\u0114\63\0\1\u0208\162\0\1\u0209"+\r
+    "\66\0\1\u020a\162\0\1\u020b\77\0\1\u020c\162\0\1\u020d"+\r
+    "\53\0\1\u020e\162\0\1\u020f\74\0\1\u0210\162\0\1\u0211"+\r
+    "\111\0\1\u0212\162\0\1\u0213\43\0\1\u0214\162\0\1\u0215"+\r
+    "\100\0\1\u0216\162\0\1\u0217\104\0\1\u0218\162\0\1\u0219"+\r
+    "\47\0\1\u015c\162\0\1\u015d\71\0\1\u021a\162\0\1\u021b"+\r
+    "\72\0\1\u021c\162\0\1\u021d\103\0\1\u0114\162\0\1\u0114"+\r
+    "\71\0\1\u021e\162\0\1\u021f\64\0\1\u0220\34\0\1\u0221"+\r
+    "\64\0\1\u0222\1\u0223\136\0\1\u0224\162\0\1\u0225\55\0"+\r
+    "\1\u0226\162\0\1\u0227\102\0\1\u021e\162\0\1\u021f\62\0"+\r
+    "\1\u0228\162\0\1\u0229\70\0\1\u022a\133\0\1\u0114\162\0"+\r
+    "\1\u0114\45\0\1\u022b\162\0\1\u022c\114\0\1\u022d\162\0"+\r
+    "\1\u022e\54\0\1\u022f\162\0\1\u0230\74\0\1\u0231\162\0"+\r
+    "\1\u0232\104\0\1\u0114\163\0\1\u0114\47\0\1\u0233\162\0"+\r
+    "\1\u0234\101\0\1\u0233\162\0\1\u0234\47\0\1\u0235\162\0"+\r
+    "\1\u0236\73\0\1\u0237\162\0\1\u0238\67\0\1\u0239\162\0"+\r
+    "\1\u023a\72\0\1\u01b4\162\0\1\u01b5\107\0\1\u023b\162\0"+\r
+    "\1\u023c\70\0\1\u023d\162\0\1\u023e\63\0\1\u023f\34\0"+\r
+    "\1\u0240\56\0\1\u0241\34\0\1\u0242\111\0\1\u0243\162\0"+\r
+    "\1\u0244\47\0\1\u0245\162\0\1\u0246\74\0\1\u0247\162\0"+\r
+    "\1\u0248\70\0\1\u022b\137\0\1\u0114\162\0\1\u0114\52\0"+\r
+    "\1\u0249\162\0\1\u024a\114\0\1\u01db\163\0\1\u01dc\37\0"+\r
+    "\1\u024b\162\0\1\u024c\73\0\1\u0114\162\0\1\u0114\67\0"+\r
+    "\1\u024d\162\0\1\u024e\76\0\1\u01dd\162\0\1\u01de\67\0"+\r
+    "\1\u024f\162\0\1\u0250\65\0\1\u0114\162\0\1\u0114\107\0"+\r
+    "\1\u0251\162\0\1\u0252\71\0\1\u0253\162\0\1\u0254\47\0"+\r
+    "\1\u0255\162\0\1\u0256\71\0\1\u0257\162\0\1\u0258\110\0"+\r
+    "\1\u0259\162\0\1\u025a\32\0\1\u025b\125\0\1\u025c\154\0"+\r
+    "\1\u025d\162\0\1\u025e\74\0\1\u025f\162\0\1\u0260\56\0"+\r
+    "\1\u022b\162\0\1\u022c\61\0\1\u0261\162\0\1\u0262\74\0"+\r
+    "\1\u0263\162\0\1\u0264\100\0\1\u0265\162\0\1\u0266\75\0"+\r
+    "\1\u0267\162\0\1\u0268\70\0\1\u0206\162\0\1\u0207\64\0"+\r
+    "\1\u023b\162\0\1\u023c\103\0\1\u0269\125\0\1\u026a\101\0"+\r
+    "\1\u026b\162\0\1\u026c\105\0\1\u023b\162\0\1\u023c\62\0"+\r
+    "\1\u0114\162\0\1\u0114\70\0\1\u01db\162\0\1\u01dc\55\0"+\r
+    "\1\u01f7\162\0\1\u01f8\114\0\1\u0114\162\0\1\u0114\62\0"+\r
+    "\1\u026d\162\0\1\u026e\101\0\1\u0114\163\0\1\u0114\64\0"+\r
+    "\1\u026f\162\0\1\u0270\54\0\1\u0259\162\0\1\u025a\23\0";\r
+\r
+  private static int [] zzUnpackTrans() {\r
+    int [] result = new int[49708];\r
+    int offset = 0;\r
+    offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);\r
+    return result;\r
+  }\r
+\r
+  private static int zzUnpackTrans(String packed, int offset, int [] result) {\r
+    int i = 0;       /* index in packed string  */\r
+    int j = offset;  /* index in unpacked array */\r
+    int l = packed.length();\r
+    while (i < l) {\r
+      int count = packed.charAt(i++);\r
+      int value = packed.charAt(i++);\r
+      value--;\r
+      do result[j++] = value; while (--count > 0);\r
+    }\r
+    return j;\r
+  }\r
+\r
+\r
+  /** Error code for "Unknown internal scanner error". */\r
+  private static final int ZZ_UNKNOWN_ERROR = 0;\r
+  /** Error code for "could not match input". */\r
+  private static final int ZZ_NO_MATCH = 1;\r
+  /** Error code for "pushback value was too large". */\r
+  private static final int ZZ_PUSHBACK_2BIG = 2;\r
+\r
+  /**\r
+   * Error messages for {@link #ZZ_UNKNOWN_ERROR}, {@link #ZZ_NO_MATCH}, and\r
+   * {@link #ZZ_PUSHBACK_2BIG} respectively.\r
+   */\r
+  private static final String ZZ_ERROR_MSG[] = {\r
+    "Unknown internal scanner error",\r
+    "Error: could not match input",\r
+    "Error: pushback value was too large"\r
+  };\r
+\r
+  /**\r
+   * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState}\r
+   */\r
+  private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();\r
+\r
+  private static final String ZZ_ATTRIBUTE_PACKED_0 =\r
+    "\1\0\1\1\4\0\1\1\1\0\1\11\10\1\2\11"+\r
+    "\36\1\3\11\2\1\3\11\23\1\2\11\4\1\1\11"+\r
+    "\1\1\2\11\3\1\1\0\1\1\3\0\6\1\2\11"+\r
+    "\1\0\5\1\1\11\31\1\1\0\1\1\1\0\1\11"+\r
+    "\44\0\1\11\1\0\2\1\3\0\35\1\1\0\1\1"+\r
+    "\42\0\20\1\1\11\14\0\1\11\23\0\12\1\33\0"+\r
+    "\5\1\33\0\2\1\33\0\2\1\1\0\1\11\343\0";\r
+\r
+  private static int [] zzUnpackAttribute() {\r
+    int [] result = new int[624];\r
+    int offset = 0;\r
+    offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);\r
+    return result;\r
+  }\r
+\r
+  private static int zzUnpackAttribute(String packed, int offset, int [] result) {\r
+    int i = 0;       /* index in packed string  */\r
+    int j = offset;  /* index in unpacked array */\r
+    int l = packed.length();\r
+    while (i < l) {\r
+      int count = packed.charAt(i++);\r
+      int value = packed.charAt(i++);\r
+      do result[j++] = value; while (--count > 0);\r
+    }\r
+    return j;\r
+  }\r
+\r
+  /** Input device. */\r
+  private java.io.Reader zzReader;\r
+\r
+  /** Current state of the DFA. */\r
+  private int zzState;\r
+\r
+  /** Current lexical state. */\r
+  private int zzLexicalState = YYINITIAL;\r
+\r
+  /**\r
+   * This buffer contains the current text to be matched and is the source of the {@link #yytext()}\r
+   * string.\r
+   */\r
+  private char zzBuffer[] = new char[ZZ_BUFFERSIZE];\r
+\r
+  /** Text position at the last accepting state. */\r
+  private int zzMarkedPos;\r
+\r
+  /** Current text position in the buffer. */\r
+  private int zzCurrentPos;\r
+\r
+  /** Marks the beginning of the {@link #yytext()} string in the buffer. */\r
+  private int zzStartRead;\r
+\r
+  /** Marks the last character in the buffer, that has been read from input. */\r
+  private int zzEndRead;\r
+\r
+  /**\r
+   * Whether the scanner is at the end of file.\r
+   * @see #yyatEOF\r
+   */\r
+  private boolean zzAtEOF;\r
+\r
+  /**\r
+   * The number of occupied positions in {@link #zzBuffer} beyond {@link #zzEndRead}.\r
+   *\r
+   * <p>When a lead/high surrogate has been read from the input stream into the final\r
+   * {@link #zzBuffer} position, this will have a value of 1; otherwise, it will have a value of 0.\r
+   */\r
+  private int zzFinalHighSurrogate = 0;\r
+\r
+  /** Number of newlines encountered up to the start of the matched text. */\r
+  @SuppressWarnings("unused")\r
+  private int yyline;\r
+\r
+  /** Number of characters from the last newline up to the start of the matched text. */\r
+  @SuppressWarnings("unused")\r
+  private int yycolumn;\r
+\r
+  /** Number of characters up to the start of the matched text. */\r
+  private long yychar;\r
+\r
+  /** Whether the scanner is currently at the beginning of a line. */\r
+  @SuppressWarnings("unused")\r
+  private boolean zzAtBOL = true;\r
+\r
+  /** Whether the user-EOF-code has already been executed. */\r
+  @SuppressWarnings("unused")\r
+  private boolean zzEOFDone;\r
+\r
+  /* user code: */\r
     public int start;
     public int end;
     public int beginString;
@@ -766,12 +814,12 @@ public final class ScilabLexer extends ScilabLexerConstants {
     }
 
     public int yychar() {
-        return yychar;
+        return (int) yychar;
     }
 
     public int scan() throws IOException {
         int ret = yylex();
-       int lastPos = start + yychar + yylength();
+        int lastPos = start + yychar() + yylength();
         if (lastPos == end - 1) {
            ((ScilabDocument.ScilabLeafElement) elem.getElement(elem.getElementIndex(start))).setBrokenString(breakstring);
            breakstring = false;
@@ -817,7 +865,7 @@ public final class ScilabLexer extends ScilabLexerConstants {
            while (startL < pos && (s != startL || yystate() == BREAKSTRING)) {
                s = startL;
                tok = yylex();
-               startL = start + yychar + yylength();
+               startL = start + yychar() + yylength();
            }
 
            return tok;
@@ -842,9 +890,9 @@ public final class ScilabLexer extends ScilabLexerConstants {
         try {
            while (tok != ScilabLexerConstants.EOF) {
                tok = lexer.yylex();
-              tokens.add(tok, lexer.yychar + lexer.yylength());
-           }
-        } catch (IOException e) { }
+               tokens.add(tok, lexer.yychar() + lexer.yylength());
+            }
+         } catch (IOException e) { }
  
         return tokens;
      }
@@ -868,368 +916,369 @@ public final class ScilabLexer extends ScilabLexerConstants {
           return tokenPos;
        }
      }
-
-
-  /**
-   * Creates a new scanner
-   *
-   * @param   in  the java.io.Reader to read input from.
-   */
-  public ScilabLexer(java.io.Reader in) {
-    this.zzReader = in;
-  }
-
-
-  /** 
-   * Unpacks the compressed character translation table.
-   *
-   * @param packed   the packed character translation table
-   * @return         the unpacked character translation table
-   */
-  private static char [] zzUnpackCMap(String packed) {
-    char [] map = new char[0x110000];
-    int i = 0;  /* index in packed string  */
-    int j = 0;  /* index in unpacked array */
-    while (i < 230) {
-      int  count = packed.charAt(i++);
-      char value = packed.charAt(i++);
-      do map[j++] = value; while (--count > 0);
-    }
-    return map;
-  }
-
-
-  /**
-   * Refills the input buffer.
-   *
-   * @return      <code>false</code>, iff there was new input.
-   * 
-   * @exception   java.io.IOException  if any I/O-Error occurs
-   */
-  private boolean zzRefill() throws java.io.IOException {
-
-    /* first: make room (if you can) */
-    if (zzStartRead > 0) {
-      zzEndRead += zzFinalHighSurrogate;
-      zzFinalHighSurrogate = 0;
-      System.arraycopy(zzBuffer, zzStartRead,
-                       zzBuffer, 0,
-                       zzEndRead-zzStartRead);
-
-      /* translate stored positions */
-      zzEndRead-= zzStartRead;
-      zzCurrentPos-= zzStartRead;
-      zzMarkedPos-= zzStartRead;
-      zzStartRead = 0;
-    }
-
-    /* is the buffer big enough? */
-    if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
-      /* if not: blow it up */
-      char newBuffer[] = new char[zzBuffer.length*2];
-      System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
-      zzBuffer = newBuffer;
-      zzEndRead += zzFinalHighSurrogate;
-      zzFinalHighSurrogate = 0;
-    }
-
-    /* fill the buffer with new input */
-    int requested = zzBuffer.length - zzEndRead;
-    int numRead = zzReader.read(zzBuffer, zzEndRead, requested);
-
-    /* not supposed to occur according to specification of java.io.Reader */
-    if (numRead == 0) {
-      throw new java.io.IOException("Reader returned 0 characters. See JFlex examples for workaround.");
-    }
-    if (numRead > 0) {
-      zzEndRead += numRead;
-      /* If numRead == requested, we might have requested to few chars to
-         encode a full Unicode character. We assume that a Reader would
-         otherwise never return half characters. */
-      if (numRead == requested) {
-        if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
-          --zzEndRead;
-          zzFinalHighSurrogate = 1;
-        }
-      }
-      /* potentially more input available */
-      return false;
-    }
-
-    /* numRead < 0 ==> end of stream */
-    return true;
-  }
-
-    
-  /**
-   * Closes the input stream.
-   */
-  public final void yyclose() throws java.io.IOException {
-    zzAtEOF = true;            /* indicate end of file */
-    zzEndRead = zzStartRead;  /* invalidate buffer    */
-
-    if (zzReader != null)
-      zzReader.close();
-  }
-
-
-  /**
-   * Resets the scanner to read from a new input stream.
-   * Does not close the old reader.
-   *
-   * All internal variables are reset, the old input stream 
-   * <b>cannot</b> be reused (internal buffer is discarded and lost).
-   * Lexical state is set to <tt>ZZ_INITIAL</tt>.
-   *
-   * Internal scan buffer is resized down to its initial length, if it has grown.
-   *
-   * @param reader   the new input stream 
-   */
-  public final void yyreset(java.io.Reader reader) {
-    zzReader = reader;
-    zzAtBOL  = true;
-    zzAtEOF  = false;
-    zzEOFDone = false;
-    zzEndRead = zzStartRead = 0;
-    zzCurrentPos = zzMarkedPos = 0;
-    zzFinalHighSurrogate = 0;
-    yyline = yychar = yycolumn = 0;
-    zzLexicalState = YYINITIAL;
-    if (zzBuffer.length > ZZ_BUFFERSIZE)
-      zzBuffer = new char[ZZ_BUFFERSIZE];
-  }
-
-
-  /**
-   * Returns the current lexical state.
-   */
-  public final int yystate() {
-    return zzLexicalState;
-  }
-
-
-  /**
-   * Enters a new lexical state
-   *
-   * @param newState the new lexical state
-   */
-  public final void yybegin(int newState) {
-    zzLexicalState = newState;
-  }
-
-
-  /**
-   * Returns the text matched by the current regular expression.
-   */
-  public final String yytext() {
-    return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
-  }
-
-
-  /**
-   * Returns the character at position <tt>pos</tt> from the 
-   * matched text. 
-   * 
-   * It is equivalent to yytext().charAt(pos), but faster
-   *
-   * @param pos the position of the character to fetch. 
-   *            A value from 0 to yylength()-1.
-   *
-   * @return the character at position pos
-   */
-  public final char yycharat(int pos) {
-    return zzBuffer[zzStartRead+pos];
-  }
-
-
-  /**
-   * Returns the length of the matched text region.
-   */
-  public final int yylength() {
-    return zzMarkedPos-zzStartRead;
-  }
-
-
-  /**
-   * Reports an error that occurred while scanning.
-   *
-   * In a wellformed scanner (no or only correct usage of 
-   * yypushback(int) and a match-all fallback rule) this method 
-   * will only be called with things that "Can't Possibly Happen".
-   * If this method is called, something is seriously wrong
-   * (e.g. a JFlex bug producing a faulty scanner etc.).
-   *
-   * Usual syntax/scanner level error handling should be done
-   * in error fallback rules.
-   *
-   * @param   errorCode  the code of the errormessage to display
-   */
-  private void zzScanError(int errorCode) {
-    String message;
-    try {
-      message = ZZ_ERROR_MSG[errorCode];
-    }
-    catch (ArrayIndexOutOfBoundsException e) {
-      message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
-    }
-
-    throw new Error(message);
-  } 
-
-
-  /**
-   * Pushes the specified amount of characters back into the input stream.
-   *
-   * They will be read again by then next call of the scanning method
-   *
-   * @param number  the number of characters to be read again.
-   *                This number must not be greater than yylength()!
-   */
-  public void yypushback(int number)  {
-    if ( number > yylength() )
-      zzScanError(ZZ_PUSHBACK_2BIG);
-
-    zzMarkedPos -= number;
-  }
-
-
-  /**
-   * Resumes scanning until the next regular expression is matched,
-   * the end of input is encountered or an I/O-Error occurs.
-   *
-   * @return      the next token
-   * @exception   java.io.IOException  if any I/O-Error occurs
-   */
-  public int yylex() throws java.io.IOException {
-    int zzInput;
-    int zzAction;
-
-    // cached fields:
-    int zzCurrentPosL;
-    int zzMarkedPosL;
-    int zzEndReadL = zzEndRead;
-    char [] zzBufferL = zzBuffer;
-    char [] zzCMapL = ZZ_CMAP;
-
-    int [] zzTransL = ZZ_TRANS;
-    int [] zzRowMapL = ZZ_ROWMAP;
-    int [] zzAttrL = ZZ_ATTRIBUTE;
-
-    while (true) {
-      zzMarkedPosL = zzMarkedPos;
-
-      yychar+= zzMarkedPosL-zzStartRead;
-
-      zzAction = -1;
-
-      zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
-  
-      zzState = ZZ_LEXSTATE[zzLexicalState];
-
-      // set up zzAction for empty match case:
-      int zzAttributes = zzAttrL[zzState];
-      if ( (zzAttributes & 1) == 1 ) {
-        zzAction = zzState;
-      }
-
-
-      zzForAction: {
-        while (true) {
-    
-          if (zzCurrentPosL < zzEndReadL) {
-            zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
-            zzCurrentPosL += Character.charCount(zzInput);
-          }
-          else if (zzAtEOF) {
-            zzInput = YYEOF;
-            break zzForAction;
-          }
-          else {
-            // store back cached positions
-            zzCurrentPos  = zzCurrentPosL;
-            zzMarkedPos   = zzMarkedPosL;
-            boolean eof = zzRefill();
-            // get translated positions and possibly new buffer
-            zzCurrentPosL  = zzCurrentPos;
-            zzMarkedPosL   = zzMarkedPos;
-            zzBufferL      = zzBuffer;
-            zzEndReadL     = zzEndRead;
-            if (eof) {
-              zzInput = YYEOF;
-              break zzForAction;
-            }
-            else {
-              zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
-              zzCurrentPosL += Character.charCount(zzInput);
-            }
-          }
-          int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
-          if (zzNext == -1) break zzForAction;
-          zzState = zzNext;
-
-          zzAttributes = zzAttrL[zzState];
-          if ( (zzAttributes & 1) == 1 ) {
-            zzAction = zzState;
-            zzMarkedPosL = zzCurrentPosL;
-            if ( (zzAttributes & 8) == 8 ) break zzForAction;
-          }
-
-        }
-      }
-
-      // store back cached position
-      zzMarkedPos = zzMarkedPosL;
-
-      if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
-        zzAtEOF = true;
-              {
-                return ScilabLexerConstants.EOF;
-              }
-      }
-      else {
-        switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
-          case 1: 
-            { return ScilabLexerConstants.STRING;
-            }
-          case 44: break;
-          case 2: 
-            { transposable = false;
-                                   return ScilabLexerConstants.DEFAULT;
-            }
-          case 45: break;
-          case 3: 
+\r
+\r
+  /**\r
+   * Creates a new scanner\r
+   *\r
+   * @param   in  the java.io.Reader to read input from.\r
+   */\r
+  public ScilabLexer(java.io.Reader in) {\r
+    this.zzReader = in;\r
+  }\r
+\r
+  /**\r
+   * Translates raw input code points to DFA table row\r
+   */\r
+  private static int zzCMap(int input) {\r
+    int offset = input & 255;\r
+    return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset];\r
+  }\r
+\r
+  /**\r
+   * Refills the input buffer.\r
+   *\r
+   * @return {@code false} iff there was new input.\r
+   * @exception java.io.IOException  if any I/O-Error occurs\r
+   */\r
+  private boolean zzRefill() throws java.io.IOException {\r
+\r
+    /* first: make room (if you can) */\r
+    if (zzStartRead > 0) {\r
+      zzEndRead += zzFinalHighSurrogate;\r
+      zzFinalHighSurrogate = 0;\r
+      System.arraycopy(zzBuffer, zzStartRead,\r
+                       zzBuffer, 0,\r
+                       zzEndRead - zzStartRead);\r
+\r
+      /* translate stored positions */\r
+      zzEndRead -= zzStartRead;\r
+      zzCurrentPos -= zzStartRead;\r
+      zzMarkedPos -= zzStartRead;\r
+      zzStartRead = 0;\r
+    }\r
+\r
+    /* is the buffer big enough? */\r
+    if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {\r
+      /* if not: blow it up */\r
+      char newBuffer[] = new char[zzBuffer.length * 2];\r
+      System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);\r
+      zzBuffer = newBuffer;\r
+      zzEndRead += zzFinalHighSurrogate;\r
+      zzFinalHighSurrogate = 0;\r
+    }\r
+\r
+    /* fill the buffer with new input */\r
+    int requested = zzBuffer.length - zzEndRead;\r
+    int numRead = zzReader.read(zzBuffer, zzEndRead, requested);\r
+\r
+    /* not supposed to occur according to specification of java.io.Reader */\r
+    if (numRead == 0) {\r
+      throw new java.io.IOException(\r
+          "Reader returned 0 characters. See JFlex examples/zero-reader for a workaround.");\r
+    }\r
+    if (numRead > 0) {\r
+      zzEndRead += numRead;\r
+      if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {\r
+        if (numRead == requested) { // We requested too few chars to encode a full Unicode character\r
+          --zzEndRead;\r
+          zzFinalHighSurrogate = 1;\r
+        } else {                    // There is room in the buffer for at least one more char\r
+          int c = zzReader.read();  // Expecting to read a paired low surrogate char\r
+          if (c == -1) {\r
+            return true;\r
+          } else {\r
+            zzBuffer[zzEndRead++] = (char)c;\r
+          }\r
+        }\r
+      }\r
+      /* potentially more input available */\r
+      return false;\r
+    }\r
+\r
+    /* numRead < 0 ==> end of stream */\r
+    return true;\r
+  }\r
+\r
+\r
+  /**\r
+   * Closes the input reader.\r
+   *\r
+   * @throws java.io.IOException if the reader could not be closed.\r
+   */\r
+  public final void yyclose() throws java.io.IOException {\r
+    zzAtEOF = true; // indicate end of file\r
+    zzEndRead = zzStartRead; // invalidate buffer\r
+\r
+    if (zzReader != null) {\r
+      zzReader.close();\r
+    }\r
+  }\r
+\r
+\r
+  /**\r
+   * Resets the scanner to read from a new input stream.\r
+   *\r
+   * <p>Does not close the old reader.\r
+   *\r
+   * <p>All internal variables are reset, the old input stream <b>cannot</b> be reused (internal\r
+   * buffer is discarded and lost). Lexical state is set to {@code ZZ_INITIAL}.\r
+   *\r
+   * <p>Internal scan buffer is resized down to its initial length, if it has grown.\r
+   *\r
+   * @param reader The new input stream.\r
+   */\r
+  public final void yyreset(java.io.Reader reader) {\r
+    zzReader = reader;\r
+    zzEOFDone = false;\r
+    yyResetPosition();\r
+    zzLexicalState = YYINITIAL;\r
+    if (zzBuffer.length > ZZ_BUFFERSIZE) {\r
+      zzBuffer = new char[ZZ_BUFFERSIZE];\r
+    }\r
+  }\r
+\r
+  /**\r
+   * Resets the input position.\r
+   */\r
+  private final void yyResetPosition() {\r
+      zzAtBOL  = true;\r
+      zzAtEOF  = false;\r
+      zzCurrentPos = 0;\r
+      zzMarkedPos = 0;\r
+      zzStartRead = 0;\r
+      zzEndRead = 0;\r
+      zzFinalHighSurrogate = 0;\r
+      yyline = 0;\r
+      yycolumn = 0;\r
+      yychar = 0L;\r
+  }\r
+\r
+\r
+  /**\r
+   * Returns whether the scanner has reached the end of the reader it reads from.\r
+   *\r
+   * @return whether the scanner has reached EOF.\r
+   */\r
+  public final boolean yyatEOF() {\r
+    return zzAtEOF;\r
+  }\r
+\r
+\r
+  /**\r
+   * Returns the current lexical state.\r
+   *\r
+   * @return the current lexical state.\r
+   */\r
+  public final int yystate() {\r
+    return zzLexicalState;\r
+  }\r
+\r
+\r
+  /**\r
+   * Enters a new lexical state.\r
+   *\r
+   * @param newState the new lexical state\r
+   */\r
+  public final void yybegin(int newState) {\r
+    zzLexicalState = newState;\r
+  }\r
+\r
+\r
+  /**\r
+   * Returns the text matched by the current regular expression.\r
+   *\r
+   * @return the matched text.\r
+   */\r
+  public final String yytext() {\r
+    return new String(zzBuffer, zzStartRead, zzMarkedPos-zzStartRead);\r
+  }\r
+\r
+\r
+  /**\r
+   * Returns the character at the given position from the matched text.\r
+   *\r
+   * <p>It is equivalent to {@code yytext().charAt(pos)}, but faster.\r
+   *\r
+   * @param position the position of the character to fetch. A value from 0 to {@code yylength()-1}.\r
+   *\r
+   * @return the character at {@code position}.\r
+   */\r
+  public final char yycharat(int position) {\r
+    return zzBuffer[zzStartRead + position];\r
+  }\r
+\r
+\r
+  /**\r
+   * How many characters were matched.\r
+   *\r
+   * @return the length of the matched text region.\r
+   */\r
+  public final int yylength() {\r
+    return zzMarkedPos-zzStartRead;\r
+  }\r
+\r
+\r
+  /**\r
+   * Reports an error that occurred while scanning.\r
+   *\r
+   * <p>In a well-formed scanner (no or only correct usage of {@code yypushback(int)} and a\r
+   * match-all fallback rule) this method will only be called with things that\r
+   * "Can't Possibly Happen".\r
+   *\r
+   * <p>If this method is called, something is seriously wrong (e.g. a JFlex bug producing a faulty\r
+   * scanner etc.).\r
+   *\r
+   * <p>Usual syntax/scanner level error handling should be done in error fallback rules.\r
+   *\r
+   * @param errorCode the code of the error message to display.\r
+   */\r
+  private static void zzScanError(int errorCode) {\r
+    String message;\r
+    try {\r
+      message = ZZ_ERROR_MSG[errorCode];\r
+    } catch (ArrayIndexOutOfBoundsException e) {\r
+      message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];\r
+    }\r
+\r
+    throw new Error(message);\r
+  }\r
+\r
+\r
+  /**\r
+   * Pushes the specified amount of characters back into the input stream.\r
+   *\r
+   * <p>They will be read again by then next call of the scanning method.\r
+   *\r
+   * @param number the number of characters to be read again. This number must not be greater than\r
+   *     {@link #yylength()}.\r
+   */\r
+  public void yypushback(int number)  {\r
+    if ( number > yylength() )\r
+      zzScanError(ZZ_PUSHBACK_2BIG);\r
+\r
+    zzMarkedPos -= number;\r
+  }\r
+\r
+\r
+\r
+\r
+  /**\r
+   * Resumes scanning until the next regular expression is matched, the end of input is encountered\r
+   * or an I/O-Error occurs.\r
+   *\r
+   * @return the next token.\r
+   * @exception java.io.IOException if any I/O-Error occurs.\r
+   */\r
+  public int yylex() throws java.io.IOException {\r
+    int zzInput;\r
+    int zzAction;\r
+\r
+    // cached fields:\r
+    int zzCurrentPosL;\r
+    int zzMarkedPosL;\r
+    int zzEndReadL = zzEndRead;\r
+    char[] zzBufferL = zzBuffer;\r
+\r
+    int [] zzTransL = ZZ_TRANS;\r
+    int [] zzRowMapL = ZZ_ROWMAP;\r
+    int [] zzAttrL = ZZ_ATTRIBUTE;\r
+\r
+    while (true) {\r
+      zzMarkedPosL = zzMarkedPos;\r
+\r
+      yychar+= zzMarkedPosL-zzStartRead;\r
+\r
+      zzAction = -1;\r
+\r
+      zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;\r
+\r
+      zzState = ZZ_LEXSTATE[zzLexicalState];\r
+\r
+      // set up zzAction for empty match case:\r
+      int zzAttributes = zzAttrL[zzState];\r
+      if ( (zzAttributes & 1) == 1 ) {\r
+        zzAction = zzState;\r
+      }\r
+\r
+\r
+      zzForAction: {\r
+        while (true) {\r
+\r
+          if (zzCurrentPosL < zzEndReadL) {\r
+            zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);\r
+            zzCurrentPosL += Character.charCount(zzInput);\r
+          }\r
+          else if (zzAtEOF) {\r
+            zzInput = YYEOF;\r
+            break zzForAction;\r
+          }\r
+          else {\r
+            // store back cached positions\r
+            zzCurrentPos  = zzCurrentPosL;\r
+            zzMarkedPos   = zzMarkedPosL;\r
+            boolean eof = zzRefill();\r
+            // get translated positions and possibly new buffer\r
+            zzCurrentPosL  = zzCurrentPos;\r
+            zzMarkedPosL   = zzMarkedPos;\r
+            zzBufferL      = zzBuffer;\r
+            zzEndReadL     = zzEndRead;\r
+            if (eof) {\r
+              zzInput = YYEOF;\r
+              break zzForAction;\r
+            }\r
+            else {\r
+              zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);\r
+              zzCurrentPosL += Character.charCount(zzInput);\r
+            }\r
+          }\r
+          int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ];\r
+          if (zzNext == -1) break zzForAction;\r
+          zzState = zzNext;\r
+\r
+          zzAttributes = zzAttrL[zzState];\r
+          if ( (zzAttributes & 1) == 1 ) {\r
+            zzAction = zzState;\r
+            zzMarkedPosL = zzCurrentPosL;\r
+            if ( (zzAttributes & 8) == 8 ) break zzForAction;\r
+          }\r
+\r
+        }\r
+      }\r
+\r
+      // store back cached position\r
+      zzMarkedPos = zzMarkedPosL;\r
+\r
+      if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {\r
+        zzAtEOF = true;\r
+              {\r
+                return ScilabLexerConstants.EOF;\r
+              }\r
+      }\r
+      else {\r
+        switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {\r
+          case 1:\r
+            { return ScilabLexerConstants.STRING;\r
+            }\r
+            // fall through\r
+          case 44: break;\r
+          case 2:\r
             { transposable = false;
-                                   return ScilabLexerConstants.OPENCLOSE;
-            }
-          case 46: break;
-          case 4: 
-            { transposable = true;
-                                   return ScilabLexerConstants.OPENCLOSE;
-            }
-          case 47: break;
-          case 5: 
-            { transposable = false;
-                                   return ScilabLexerConstants.OPERATOR;
-            }
-          case 48: break;
-          case 6: 
-            { if (transposable) {
-                                       return ScilabLexerConstants.TRANSP;
-                                    } else {
-                                       beginString = zzStartRead;
-                                       yybegin(QSTRING);
-                                       return ScilabLexerConstants.STRING;
-                                    }
-            }
-          case 49: break;
-          case 7: 
-            { transposable = false;
-                                   beginString = zzStartRead;
-                                   yybegin(QSTRING);
-                                   return ScilabLexerConstants.STRING;
-            }
-          case 50: break;
-          case 8: 
+                                   return ScilabLexerConstants.DEFAULT;\r
+            }\r
+            // fall through\r
+          case 45: break;\r
+          case 3:\r
+            { return ScilabLexerConstants.TAB;\r
+            }\r
+            // fall through\r
+          case 46: break;\r
+          case 4:\r
+            { return ScilabLexerConstants.WHITE;\r
+            }\r
+            // fall through\r
+          case 47: break;\r
+          case 5:\r
             { transposable = true;
                                    String str = yytext();
                                    if (commands.contains(str)) {
@@ -1242,200 +1291,263 @@ public final class ScilabLexer extends ScilabLexerConstants {
                                        yybegin(COMMANDS);
                                        return ScilabLexerConstants.MACROINFILE;
                                    } else {
-                                       List<String>[] arr = doc.getInOutArgs(start + yychar);
+                                       List<String>[] arr = doc.getInOutArgs(start + yychar());
                                        if (arr != null && (arr[0].contains(str) || arr[1].contains(str))) {
                                            return ScilabLexerConstants.INPUTOUTPUTARGS;
                                        } else if (variables.contains(str)) {
                                            return ScilabLexerConstants.VARIABLES;
                                        }
                                    }
-                                   return ScilabLexerConstants.ID;
-            }
-          case 51: break;
-          case 9: 
+                                   return ScilabLexerConstants.ID;\r
+            }\r
+            // fall through\r
+          case 48: break;\r
+          case 6:\r
             { transposable = false;
-                                   yybegin(FIELD);
-                                   return ScilabLexerConstants.OPERATOR;
-            }
-          case 52: break;
-          case 10: 
-            { return ScilabLexerConstants.WHITE;
-            }
-          case 53: break;
-          case 11: 
-            { return ScilabLexerConstants.TAB;
-            }
-          case 54: break;
-          case 12: 
+                                   beginString = zzStartRead;
+                                   yybegin(QSTRING);
+                                   return ScilabLexerConstants.STRING;\r
+            }\r
+            // fall through\r
+          case 49: break;\r
+          case 7:\r
             { transposable = false;
-                                   return ScilabLexerConstants.SPECIAL;
-            }
-          case 55: break;
-          case 13: 
+                                   return ScilabLexerConstants.SPECIAL;\r
+            }\r
+            // fall through\r
+          case 50: break;\r
+          case 8:\r
+            { transposable = false;
+                                   return ScilabLexerConstants.OPERATOR;\r
+            }\r
+            // fall through\r
+          case 51: break;\r
+          case 9:\r
+            { if (transposable) {
+                                       return ScilabLexerConstants.TRANSP;
+                                    } else {
+                                       beginString = zzStartRead;
+                                       yybegin(QSTRING);
+                                       return ScilabLexerConstants.STRING;
+                                    }\r
+            }\r
+            // fall through\r
+          case 52: break;\r
+          case 10:\r
+            { transposable = false;
+                                   return ScilabLexerConstants.OPENCLOSE;\r
+            }\r
+            // fall through\r
+          case 53: break;\r
+          case 11:\r
             { transposable = true;
-                                   return ScilabLexerConstants.NUMBER;
-            }
-          case 56: break;
-          case 14: 
-            { return ScilabLexerConstants.DEFAULT;
-            }
-          case 57: break;
-          case 15: 
+                                   return ScilabLexerConstants.OPENCLOSE;\r
+            }\r
+            // fall through\r
+          case 54: break;\r
+          case 12:\r
+            { transposable = false;
+                                   yybegin(FIELD);
+                                   return ScilabLexerConstants.OPERATOR;\r
+            }\r
+            // fall through\r
+          case 55: break;\r
+          case 13:\r
+            { transposable = true;
+                                   return ScilabLexerConstants.NUMBER;\r
+            }\r
+            // fall through\r
+          case 56: break;\r
+          case 14:\r
+            { return ScilabLexerConstants.TAB_STRING;\r
+            }\r
+            // fall through\r
+          case 57: break;\r
+          case 15:\r
+            { return ScilabLexerConstants.DEFAULT;\r
+            }\r
+            // fall through\r
+          case 58: break;\r
+          case 16:\r
+            { return ScilabLexerConstants.WHITE_STRING;\r
+            }\r
+            // fall through\r
+          case 59: break;\r
+          case 17:\r
             { transposable = false;
                                    yybegin(YYINITIAL);
-                                   return ScilabLexerConstants.STRING;
-            }
-          case 58: break;
-          case 16: 
-            { return ScilabLexerConstants.WHITE_STRING;
-            }
-          case 59: break;
-          case 17: 
-            { return ScilabLexerConstants.TAB_STRING;
-            }
-          case 60: break;
-          case 18: 
-            { return ScilabLexerConstants.COMMENT;
-            }
-          case 61: break;
-          case 19: 
-            { return ScilabLexerConstants.WHITE_COMMENT;
-            }
-          case 62: break;
-          case 20: 
-            { return ScilabLexerConstants.TAB_COMMENT;
-            }
-          case 63: break;
-          case 21: 
+                                   return ScilabLexerConstants.STRING;\r
+            }\r
+            // fall through\r
+          case 60: break;\r
+          case 18:\r
+            { return ScilabLexerConstants.COMMENT;\r
+            }\r
+            // fall through\r
+          case 61: break;\r
+          case 19:\r
+            { return ScilabLexerConstants.TAB_COMMENT;\r
+            }\r
+            // fall through\r
+          case 62: break;\r
+          case 20:\r
+            { return ScilabLexerConstants.WHITE_COMMENT;\r
+            }\r
+            // fall through\r
+          case 63: break;\r
+          case 21:\r
             { yypushback(1);
-                                   yybegin(YYINITIAL);
-            }
-          case 64: break;
-          case 22: 
-            { 
-            }
-          case 65: break;
-          case 23: 
+                                   yybegin(YYINITIAL);\r
+            }\r
+            // fall through\r
+          case 64: break;\r
+          case 22:\r
+            { \r
+            }\r
+            // fall through\r
+          case 65: break;\r
+          case 23:\r
             { transposable = true;
-                                   return ScilabLexerConstants.FIELD;
-            }
-          case 66: break;
-          case 24: 
-            { yypushback(yylength());
-                                   yybegin(YYINITIAL);
-            }
-          case 67: break;
-          case 25: 
+                                   return ScilabLexerConstants.FIELD;\r
+            }\r
+            // fall through\r
+          case 66: break;\r
+          case 24:\r
             { yybegin(COMMANDSWHITE);
-                                   return ScilabLexerConstants.WHITE;
-            }
-          case 68: break;
-          case 26: 
+                                   return ScilabLexerConstants.TAB;\r
+            }\r
+            // fall through\r
+          case 67: break;\r
+          case 25:\r
             { yybegin(COMMANDSWHITE);
-                                   return ScilabLexerConstants.TAB;
-            }
-          case 69: break;
-          case 27: 
+                                   return ScilabLexerConstants.WHITE;\r
+            }\r
+            // fall through\r
+          case 68: break;\r
+          case 26:\r
+            { yypushback(yylength());
+                                   yybegin(YYINITIAL);\r
+            }\r
+            // fall through\r
+          case 69: break;\r
+          case 27:\r
+            { return ScilabLexerConstants.ERROR;\r
+            }\r
+            // fall through\r
+          case 70: break;\r
+          case 28:\r
+            { transposable = true;
+                                   return ScilabLexerConstants.CONSTANTES;\r
+            }\r
+            // fall through\r
+          case 71: break;\r
+          case 29:\r
             { transposable = false;
                                    yypushback(2);
-                                   yybegin(COMMENT);
-            }
-          case 70: break;
-          case 28: 
+                                   yybegin(BLOCKCOMMENT);\r
+            }\r
+            // fall through\r
+          case 72: break;\r
+          case 30:\r
             { transposable = false;
                                    yypushback(2);
-                                   yybegin(BLOCKCOMMENT);
-            }
-          case 71: break;
-          case 29: 
-            { return ScilabLexerConstants.ERROR;
-            }
-          case 72: break;
-          case 30: 
-            { transposable = true;
-                                   return ScilabLexerConstants.CONSTANTES;
-            }
-          case 73: break;
-          case 31: 
+                                   yybegin(COMMENT);\r
+            }\r
+            // fall through\r
+          case 73: break;\r
+          case 31:\r
             { transposable = false;
-                                   return ScilabLexerConstants.OSKEYWORD;
-            }
-          case 74: break;
-          case 32: 
+                                   return ScilabLexerConstants.SKEYWORD;\r
+            }\r
+            // fall through\r
+          case 74: break;\r
+          case 32:\r
             { transposable = false;
-                                   return ScilabLexerConstants.SKEYWORD;
-            }
-          case 75: break;
-          case 33: 
+                                   return ScilabLexerConstants.OSKEYWORD;\r
+            }\r
+            // fall through\r
+          case 75: break;\r
+          case 33:\r
             { yypushback(yylength());
                                    yybegin(BREAKSTRING);
                                    transposable = false;
-                                   return ScilabLexerConstants.STRING;
-            }
-          case 76: break;
-          case 34: 
-            { return ScilabLexerConstants.LATEX;
-            }
-          case 77: break;
-          case 35: 
+                                   return ScilabLexerConstants.STRING;\r
+            }\r
+            // fall through\r
+          case 76: break;\r
+          case 34:\r
+            { return ScilabLexerConstants.LATEX;\r
+            }\r
+            // fall through\r
+          case 77: break;\r
+          case 35:\r
             { yybegin(YYINITIAL);
-                                  return ScilabLexerConstants.COMMENT;
-            }
-          case 78: break;
-          case 36: 
+                                  return ScilabLexerConstants.COMMENT;\r
+            }\r
+            // fall through\r
+          case 78: break;\r
+          case 36:\r
             { breakstring = true;
-                                   return ScilabLexerConstants.SPECIAL;
-            }
-          case 79: break;
-          case 37: 
+                                   return ScilabLexerConstants.SPECIAL;\r
+            }\r
+            // fall through\r
+          case 79: break;\r
+          case 37:\r
             { transposable = false;
-                                  if (matchBlock != null) {
-                                     MatchingBlockScanner.MatchingPositions pos = matchBlock.getMatchingBlock(start + yychar + yylength(), false);
-                                     if (pos != null) {
-                                        try {
-                                            String match = doc.getText(pos.secondB, pos.secondE - pos.secondB);
-                                            if (match.equals("function")) {
-                                               return ScilabLexerConstants.FKEYWORD;
-                                            }
-                                        } catch (BadLocationException e) { }
-                                     }
-                                  }
-                                   return ScilabLexerConstants.OSKEYWORD;
-            }
-          case 80: break;
-          case 38: 
+                                   if (matchBlock != null) {
+                                      MatchingBlockScanner.MatchingPositions pos = matchBlock.getMatchingBlock(start + yychar() + yylength(), false);
+                                      if (pos != null) {
+                                         try {
+                                             String match = doc.getText(pos.secondB, pos.secondE - pos.secondB);
+                                             if (match.equals("function")) {
+                                                return ScilabLexerConstants.FKEYWORD;
+                                             }
+                                         } catch (BadLocationException e) { }
+                                      }
+                                   }
+                                   return ScilabLexerConstants.OSKEYWORD;\r
+            }\r
+            // fall through\r
+          case 80: break;\r
+          case 38:\r
             { transposable = false;
-                                   return ScilabLexerConstants.ELSEIF;
-            }
-          case 81: break;
-          case 39: 
+                                   return ScilabLexerConstants.ELSEIF;\r
+            }\r
+            // fall through\r
+          case 81: break;\r
+          case 39:\r
             { transposable = false;
-                                   return ScilabLexerConstants.CKEYWORD;
-            }
-          case 82: break;
-          case 40: 
-            { return ScilabLexerConstants.AUTHORS;
-            }
-          case 83: break;
-          case 41: 
-            { return ScilabLexerConstants.URL;
-            }
-          case 84: break;
-          case 42: 
+                                   return ScilabLexerConstants.CKEYWORD;\r
+            }\r
+            // fall through\r
+          case 82: break;\r
+          case 40:\r
+            { return ScilabLexerConstants.AUTHORS;\r
+            }\r
+            // fall through\r
+          case 83: break;\r
+          case 41:\r
+            { return ScilabLexerConstants.URL;\r
+            }\r
+            // fall through\r
+          case 84: break;\r
+          case 42:\r
             { transposable = false;
-                                   return ScilabLexerConstants.FKEYWORD;
-            }
-          case 85: break;
-          case 43: 
-            { return ScilabLexerConstants.MAIL;
-            }
-          case 86: break;
-          default:
-            zzScanError(ZZ_NO_MATCH);
-        }
-      }
-    }
-  }
-
-
-}
+                                   return ScilabLexerConstants.FKEYWORD;\r
+            }\r
+            // fall through\r
+          case 85: break;\r
+          case 43:\r
+            { return ScilabLexerConstants.MAIL;\r
+            }\r
+            // fall through\r
+          case 86: break;\r
+          default:\r
+            zzScanError(ZZ_NO_MATCH);\r
+        }\r
+      }\r
+    }\r
+  }\r
+\r
+\r
+}\r