json-simple/vendor/json-simple-1.1.1/src/main/java/org/json/simple/parser/Yylex.java

Code
Comments
Other
Rev Date Author Line
50 26 Feb 19 nicklas 1 /* The following code was generated by JFlex 1.4.2 */
50 26 Feb 19 nicklas 2
50 26 Feb 19 nicklas 3 package org.json.simple.parser;
50 26 Feb 19 nicklas 4
50 26 Feb 19 nicklas 5 class Yylex {
50 26 Feb 19 nicklas 6
50 26 Feb 19 nicklas 7   /** This character denotes the end of file */
50 26 Feb 19 nicklas 8   public static final int YYEOF = -1;
50 26 Feb 19 nicklas 9
50 26 Feb 19 nicklas 10   /** initial size of the lookahead buffer */
50 26 Feb 19 nicklas 11   private static final int ZZ_BUFFERSIZE = 16384;
50 26 Feb 19 nicklas 12
50 26 Feb 19 nicklas 13   /** lexical states */
50 26 Feb 19 nicklas 14   public static final int YYINITIAL = 0;
50 26 Feb 19 nicklas 15   public static final int STRING_BEGIN = 2;
50 26 Feb 19 nicklas 16
50 26 Feb 19 nicklas 17   /**
50 26 Feb 19 nicklas 18    * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
50 26 Feb 19 nicklas 19    * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
50 26 Feb 19 nicklas 20    *                  at the beginning of a line
50 26 Feb 19 nicklas 21    * l is of the form l = 2*k, k a non negative integer
50 26 Feb 19 nicklas 22    */
50 26 Feb 19 nicklas 23   private static final int ZZ_LEXSTATE[] = { 
50 26 Feb 19 nicklas 24      0,  0,  1, 1
50 26 Feb 19 nicklas 25   };
50 26 Feb 19 nicklas 26
50 26 Feb 19 nicklas 27   /** 
50 26 Feb 19 nicklas 28    * Translates characters to character classes
50 26 Feb 19 nicklas 29    */
50 26 Feb 19 nicklas 30   private static final String ZZ_CMAP_PACKED = 
50 26 Feb 19 nicklas 31     "\11\0\1\7\1\7\2\0\1\7\22\0\1\7\1\0\1\11\10\0"+
50 26 Feb 19 nicklas 32     "\1\6\1\31\1\2\1\4\1\12\12\3\1\32\6\0\4\1\1\5"+
50 26 Feb 19 nicklas 33     "\1\1\24\0\1\27\1\10\1\30\3\0\1\22\1\13\2\1\1\21"+
50 26 Feb 19 nicklas 34     "\1\14\5\0\1\23\1\0\1\15\3\0\1\16\1\24\1\17\1\20"+
50 26 Feb 19 nicklas 35     "\5\0\1\25\1\0\1\26\uff82\0";
50 26 Feb 19 nicklas 36
50 26 Feb 19 nicklas 37   /** 
50 26 Feb 19 nicklas 38    * Translates characters to character classes
50 26 Feb 19 nicklas 39    */
50 26 Feb 19 nicklas 40   private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
50 26 Feb 19 nicklas 41
50 26 Feb 19 nicklas 42   /** 
50 26 Feb 19 nicklas 43    * Translates DFA states to action switch labels.
50 26 Feb 19 nicklas 44    */
50 26 Feb 19 nicklas 45   private static final int [] ZZ_ACTION = zzUnpackAction();
50 26 Feb 19 nicklas 46
50 26 Feb 19 nicklas 47   private static final String ZZ_ACTION_PACKED_0 =
50 26 Feb 19 nicklas 48     "\2\0\2\1\1\2\1\3\1\4\3\1\1\5\1\6"+
50 26 Feb 19 nicklas 49     "\1\7\1\10\1\11\1\12\1\13\1\14\1\15\5\0"+
50 26 Feb 19 nicklas 50     "\1\14\1\16\1\17\1\20\1\21\1\22\1\23\1\24"+
50 26 Feb 19 nicklas 51     "\1\0\1\25\1\0\1\25\4\0\1\26\1\27\2\0"+
50 26 Feb 19 nicklas 52     "\1\30";
50 26 Feb 19 nicklas 53
50 26 Feb 19 nicklas 54   private static int [] zzUnpackAction() {
50 26 Feb 19 nicklas 55     int [] result = new int[45];
50 26 Feb 19 nicklas 56     int offset = 0;
50 26 Feb 19 nicklas 57     offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
50 26 Feb 19 nicklas 58     return result;
50 26 Feb 19 nicklas 59   }
50 26 Feb 19 nicklas 60
50 26 Feb 19 nicklas 61   private static int zzUnpackAction(String packed, int offset, int [] result) {
50 26 Feb 19 nicklas 62     int i = 0;       /* index in packed string  */
50 26 Feb 19 nicklas 63     int j = offset;  /* index in unpacked array */
50 26 Feb 19 nicklas 64     int l = packed.length();
50 26 Feb 19 nicklas 65     while (i < l) {
50 26 Feb 19 nicklas 66       int count = packed.charAt(i++);
50 26 Feb 19 nicklas 67       int value = packed.charAt(i++);
50 26 Feb 19 nicklas 68       do result[j++] = value; while (--count > 0);
50 26 Feb 19 nicklas 69     }
50 26 Feb 19 nicklas 70     return j;
50 26 Feb 19 nicklas 71   }
50 26 Feb 19 nicklas 72
50 26 Feb 19 nicklas 73
50 26 Feb 19 nicklas 74   /** 
50 26 Feb 19 nicklas 75    * Translates a state to a row index in the transition table
50 26 Feb 19 nicklas 76    */
50 26 Feb 19 nicklas 77   private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
50 26 Feb 19 nicklas 78
50 26 Feb 19 nicklas 79   private static final String ZZ_ROWMAP_PACKED_0 =
50 26 Feb 19 nicklas 80     "\0\0\0\33\0\66\0\121\0\154\0\207\0\66\0\242"+
50 26 Feb 19 nicklas 81     "\0\275\0\330\0\66\0\66\0\66\0\66\0\66\0\66"+
50 26 Feb 19 nicklas 82     "\0\363\0\u010e\0\66\0\u0129\0\u0144\0\u015f\0\u017a\0\u0195"+
50 26 Feb 19 nicklas 83     "\0\66\0\66\0\66\0\66\0\66\0\66\0\66\0\66"+
50 26 Feb 19 nicklas 84     "\0\u01b0\0\u01cb\0\u01e6\0\u01e6\0\u0201\0\u021c\0\u0237\0\u0252"+
50 26 Feb 19 nicklas 85     "\0\66\0\66\0\u026d\0\u0288\0\66";
50 26 Feb 19 nicklas 86
50 26 Feb 19 nicklas 87   private static int [] zzUnpackRowMap() {
50 26 Feb 19 nicklas 88     int [] result = new int[45];
50 26 Feb 19 nicklas 89     int offset = 0;
50 26 Feb 19 nicklas 90     offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
50 26 Feb 19 nicklas 91     return result;
50 26 Feb 19 nicklas 92   }
50 26 Feb 19 nicklas 93
50 26 Feb 19 nicklas 94   private static int zzUnpackRowMap(String packed, int offset, int [] result) {
50 26 Feb 19 nicklas 95     int i = 0;  /* index in packed string  */
50 26 Feb 19 nicklas 96     int j = offset;  /* index in unpacked array */
50 26 Feb 19 nicklas 97     int l = packed.length();
50 26 Feb 19 nicklas 98     while (i < l) {
50 26 Feb 19 nicklas 99       int high = packed.charAt(i++) << 16;
50 26 Feb 19 nicklas 100       result[j++] = high | packed.charAt(i++);
50 26 Feb 19 nicklas 101     }
50 26 Feb 19 nicklas 102     return j;
50 26 Feb 19 nicklas 103   }
50 26 Feb 19 nicklas 104
50 26 Feb 19 nicklas 105   /** 
50 26 Feb 19 nicklas 106    * The transition table of the DFA
50 26 Feb 19 nicklas 107    */
50 26 Feb 19 nicklas 108   private static final int ZZ_TRANS [] = {
50 26 Feb 19 nicklas 109     2, 2, 3, 4, 2, 2, 2, 5, 2, 6, 
50 26 Feb 19 nicklas 110     2, 2, 7, 8, 2, 9, 2, 2, 2, 2, 
50 26 Feb 19 nicklas 111     2, 10, 11, 12, 13, 14, 15, 16, 16, 16, 
50 26 Feb 19 nicklas 112     16, 16, 16, 16, 16, 17, 18, 16, 16, 16, 
50 26 Feb 19 nicklas 113     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 
50 26 Feb 19 nicklas 114     16, 16, 16, 16, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 115     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 116     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 117     -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 118     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 119     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 120     -1, 4, 19, 20, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 121     -1, -1, -1, -1, -1, 20, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 122     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 123     -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 124     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 125     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 126     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 127     21, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 128     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 129     -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 130     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 131     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 132     23, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 133     -1, -1, -1, 16, 16, 16, 16, 16, 16, 16, 
50 26 Feb 19 nicklas 134     16, -1, -1, 16, 16, 16, 16, 16, 16, 16, 
50 26 Feb 19 nicklas 135     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 
50 26 Feb 19 nicklas 136     -1, -1, -1, -1, -1, -1, -1, -1, 24, 25, 
50 26 Feb 19 nicklas 137     26, 27, 28, 29, 30, 31, 32, -1, -1, -1, 
50 26 Feb 19 nicklas 138     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 139     33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 140     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 141     -1, -1, -1, -1, -1, -1, 34, 35, -1, -1, 
50 26 Feb 19 nicklas 142     34, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 143     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 144     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 145     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 146     36, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 147     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 148     -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, 
50 26 Feb 19 nicklas 149     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 150     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 151     -1, 38, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 152     -1, -1, -1, 39, -1, 39, -1, 39, -1, -1, 
50 26 Feb 19 nicklas 153     -1, -1, -1, 39, 39, -1, -1, -1, -1, 39, 
50 26 Feb 19 nicklas 154     39, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 155     -1, -1, 33, -1, 20, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 156     -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 
50 26 Feb 19 nicklas 157     -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, 
50 26 Feb 19 nicklas 158     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 159     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 160     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 161     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 162     -1, -1, -1, 38, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 163     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 164     -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, 
50 26 Feb 19 nicklas 165     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 166     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 167     -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 168     -1, -1, -1, -1, -1, 42, -1, 42, -1, 42, 
50 26 Feb 19 nicklas 169     -1, -1, -1, -1, -1, 42, 42, -1, -1, -1, 
50 26 Feb 19 nicklas 170     -1, 42, 42, -1, -1, -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 171     -1, -1, 43, -1, 43, -1, 43, -1, -1, -1, 
50 26 Feb 19 nicklas 172     -1, -1, 43, 43, -1, -1, -1, -1, 43, 43, 
50 26 Feb 19 nicklas 173     -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, 
50 26 Feb 19 nicklas 174     -1, 44, -1, 44, -1, -1, -1, -1, -1, 44, 
50 26 Feb 19 nicklas 175     44, -1, -1, -1, -1, 44, 44, -1, -1, -1, 
50 26 Feb 19 nicklas 176     -1, -1, -1, -1, -1, 
50 26 Feb 19 nicklas 177   };
50 26 Feb 19 nicklas 178
50 26 Feb 19 nicklas 179   /* error codes */
50 26 Feb 19 nicklas 180   private static final int ZZ_UNKNOWN_ERROR = 0;
50 26 Feb 19 nicklas 181   private static final int ZZ_NO_MATCH = 1;
50 26 Feb 19 nicklas 182   private static final int ZZ_PUSHBACK_2BIG = 2;
50 26 Feb 19 nicklas 183
50 26 Feb 19 nicklas 184   /* error messages for the codes above */
50 26 Feb 19 nicklas 185   private static final String ZZ_ERROR_MSG[] = {
50 26 Feb 19 nicklas 186     "Unkown internal scanner error",
50 26 Feb 19 nicklas 187     "Error: could not match input",
50 26 Feb 19 nicklas 188     "Error: pushback value was too large"
50 26 Feb 19 nicklas 189   };
50 26 Feb 19 nicklas 190
50 26 Feb 19 nicklas 191   /**
50 26 Feb 19 nicklas 192    * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
50 26 Feb 19 nicklas 193    */
50 26 Feb 19 nicklas 194   private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
50 26 Feb 19 nicklas 195
50 26 Feb 19 nicklas 196   private static final String ZZ_ATTRIBUTE_PACKED_0 =
50 26 Feb 19 nicklas 197     "\2\0\1\11\3\1\1\11\3\1\6\11\2\1\1\11"+
50 26 Feb 19 nicklas 198     "\5\0\10\11\1\0\1\1\1\0\1\1\4\0\2\11"+
50 26 Feb 19 nicklas 199     "\2\0\1\11";
50 26 Feb 19 nicklas 200
50 26 Feb 19 nicklas 201   private static int [] zzUnpackAttribute() {
50 26 Feb 19 nicklas 202     int [] result = new int[45];
50 26 Feb 19 nicklas 203     int offset = 0;
50 26 Feb 19 nicklas 204     offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
50 26 Feb 19 nicklas 205     return result;
50 26 Feb 19 nicklas 206   }
50 26 Feb 19 nicklas 207
50 26 Feb 19 nicklas 208   private static int zzUnpackAttribute(String packed, int offset, int [] result) {
50 26 Feb 19 nicklas 209     int i = 0;       /* index in packed string  */
50 26 Feb 19 nicklas 210     int j = offset;  /* index in unpacked array */
50 26 Feb 19 nicklas 211     int l = packed.length();
50 26 Feb 19 nicklas 212     while (i < l) {
50 26 Feb 19 nicklas 213       int count = packed.charAt(i++);
50 26 Feb 19 nicklas 214       int value = packed.charAt(i++);
50 26 Feb 19 nicklas 215       do result[j++] = value; while (--count > 0);
50 26 Feb 19 nicklas 216     }
50 26 Feb 19 nicklas 217     return j;
50 26 Feb 19 nicklas 218   }
50 26 Feb 19 nicklas 219
50 26 Feb 19 nicklas 220   /** the input device */
50 26 Feb 19 nicklas 221   private java.io.Reader zzReader;
50 26 Feb 19 nicklas 222
50 26 Feb 19 nicklas 223   /** the current state of the DFA */
50 26 Feb 19 nicklas 224   private int zzState;
50 26 Feb 19 nicklas 225
50 26 Feb 19 nicklas 226   /** the current lexical state */
50 26 Feb 19 nicklas 227   private int zzLexicalState = YYINITIAL;
50 26 Feb 19 nicklas 228
50 26 Feb 19 nicklas 229   /** this buffer contains the current text to be matched and is
50 26 Feb 19 nicklas 230       the source of the yytext() string */
50 26 Feb 19 nicklas 231   private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
50 26 Feb 19 nicklas 232
50 26 Feb 19 nicklas 233   /** the textposition at the last accepting state */
50 26 Feb 19 nicklas 234   private int zzMarkedPos;
50 26 Feb 19 nicklas 235
50 26 Feb 19 nicklas 236   /** the current text position in the buffer */
50 26 Feb 19 nicklas 237   private int zzCurrentPos;
50 26 Feb 19 nicklas 238
50 26 Feb 19 nicklas 239   /** startRead marks the beginning of the yytext() string in the buffer */
50 26 Feb 19 nicklas 240   private int zzStartRead;
50 26 Feb 19 nicklas 241
50 26 Feb 19 nicklas 242   /** endRead marks the last character in the buffer, that has been read
50 26 Feb 19 nicklas 243       from input */
50 26 Feb 19 nicklas 244   private int zzEndRead;
50 26 Feb 19 nicklas 245
50 26 Feb 19 nicklas 246   /** number of newlines encountered up to the start of the matched text */
50 26 Feb 19 nicklas 247   private int yyline;
50 26 Feb 19 nicklas 248
50 26 Feb 19 nicklas 249   /** the number of characters up to the start of the matched text */
50 26 Feb 19 nicklas 250   private int yychar;
50 26 Feb 19 nicklas 251
50 26 Feb 19 nicklas 252   /**
50 26 Feb 19 nicklas 253    * the number of characters from the last newline up to the start of the 
50 26 Feb 19 nicklas 254    * matched text
50 26 Feb 19 nicklas 255    */
50 26 Feb 19 nicklas 256   private int yycolumn;
50 26 Feb 19 nicklas 257
50 26 Feb 19 nicklas 258   /** 
50 26 Feb 19 nicklas 259    * zzAtBOL == true <=> the scanner is currently at the beginning of a line
50 26 Feb 19 nicklas 260    */
50 26 Feb 19 nicklas 261   private boolean zzAtBOL = true;
50 26 Feb 19 nicklas 262
50 26 Feb 19 nicklas 263   /** zzAtEOF == true <=> the scanner is at the EOF */
50 26 Feb 19 nicklas 264   private boolean zzAtEOF;
50 26 Feb 19 nicklas 265
50 26 Feb 19 nicklas 266   /* user code: */
50 26 Feb 19 nicklas 267 private StringBuffer sb=new StringBuffer();
50 26 Feb 19 nicklas 268
50 26 Feb 19 nicklas 269 int getPosition(){
50 26 Feb 19 nicklas 270   return yychar;
50 26 Feb 19 nicklas 271 }
50 26 Feb 19 nicklas 272
50 26 Feb 19 nicklas 273
50 26 Feb 19 nicklas 274
50 26 Feb 19 nicklas 275   /**
50 26 Feb 19 nicklas 276    * Creates a new scanner
50 26 Feb 19 nicklas 277    * There is also a java.io.InputStream version of this constructor.
50 26 Feb 19 nicklas 278    *
50 26 Feb 19 nicklas 279    * @param   in  the java.io.Reader to read input from.
50 26 Feb 19 nicklas 280    */
50 26 Feb 19 nicklas 281   Yylex(java.io.Reader in) {
50 26 Feb 19 nicklas 282     this.zzReader = in;
50 26 Feb 19 nicklas 283   }
50 26 Feb 19 nicklas 284
50 26 Feb 19 nicklas 285   /**
50 26 Feb 19 nicklas 286    * Creates a new scanner.
50 26 Feb 19 nicklas 287    * There is also java.io.Reader version of this constructor.
50 26 Feb 19 nicklas 288    *
50 26 Feb 19 nicklas 289    * @param   in  the java.io.Inputstream to read input from.
50 26 Feb 19 nicklas 290    */
50 26 Feb 19 nicklas 291   Yylex(java.io.InputStream in) {
50 26 Feb 19 nicklas 292     this(new java.io.InputStreamReader(in));
50 26 Feb 19 nicklas 293   }
50 26 Feb 19 nicklas 294
50 26 Feb 19 nicklas 295   /** 
50 26 Feb 19 nicklas 296    * Unpacks the compressed character translation table.
50 26 Feb 19 nicklas 297    *
50 26 Feb 19 nicklas 298    * @param packed   the packed character translation table
50 26 Feb 19 nicklas 299    * @return         the unpacked character translation table
50 26 Feb 19 nicklas 300    */
50 26 Feb 19 nicklas 301   private static char [] zzUnpackCMap(String packed) {
50 26 Feb 19 nicklas 302     char [] map = new char[0x10000];
50 26 Feb 19 nicklas 303     int i = 0;  /* index in packed string  */
50 26 Feb 19 nicklas 304     int j = 0;  /* index in unpacked array */
50 26 Feb 19 nicklas 305     while (i < 90) {
50 26 Feb 19 nicklas 306       int  count = packed.charAt(i++);
50 26 Feb 19 nicklas 307       char value = packed.charAt(i++);
50 26 Feb 19 nicklas 308       do map[j++] = value; while (--count > 0);
50 26 Feb 19 nicklas 309     }
50 26 Feb 19 nicklas 310     return map;
50 26 Feb 19 nicklas 311   }
50 26 Feb 19 nicklas 312
50 26 Feb 19 nicklas 313
50 26 Feb 19 nicklas 314   /**
50 26 Feb 19 nicklas 315    * Refills the input buffer.
50 26 Feb 19 nicklas 316    *
50 26 Feb 19 nicklas 317    * @return      <code>false</code>, iff there was new input.
50 26 Feb 19 nicklas 318    * 
50 26 Feb 19 nicklas 319    * @exception   java.io.IOException  if any I/O-Error occurs
50 26 Feb 19 nicklas 320    */
50 26 Feb 19 nicklas 321   private boolean zzRefill() throws java.io.IOException {
50 26 Feb 19 nicklas 322
50 26 Feb 19 nicklas 323     /* first: make room (if you can) */
50 26 Feb 19 nicklas 324     if (zzStartRead > 0) {
50 26 Feb 19 nicklas 325       System.arraycopy(zzBuffer, zzStartRead,
50 26 Feb 19 nicklas 326                        zzBuffer, 0,
50 26 Feb 19 nicklas 327                        zzEndRead-zzStartRead);
50 26 Feb 19 nicklas 328
50 26 Feb 19 nicklas 329       /* translate stored positions */
50 26 Feb 19 nicklas 330       zzEndRead-= zzStartRead;
50 26 Feb 19 nicklas 331       zzCurrentPos-= zzStartRead;
50 26 Feb 19 nicklas 332       zzMarkedPos-= zzStartRead;
50 26 Feb 19 nicklas 333       zzStartRead = 0;
50 26 Feb 19 nicklas 334     }
50 26 Feb 19 nicklas 335
50 26 Feb 19 nicklas 336     /* is the buffer big enough? */
50 26 Feb 19 nicklas 337     if (zzCurrentPos >= zzBuffer.length) {
50 26 Feb 19 nicklas 338       /* if not: blow it up */
50 26 Feb 19 nicklas 339       char newBuffer[] = new char[zzCurrentPos*2];
50 26 Feb 19 nicklas 340       System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
50 26 Feb 19 nicklas 341       zzBuffer = newBuffer;
50 26 Feb 19 nicklas 342     }
50 26 Feb 19 nicklas 343
50 26 Feb 19 nicklas 344     /* finally: fill the buffer with new input */
50 26 Feb 19 nicklas 345     int numRead = zzReader.read(zzBuffer, zzEndRead,
50 26 Feb 19 nicklas 346                                             zzBuffer.length-zzEndRead);
50 26 Feb 19 nicklas 347
50 26 Feb 19 nicklas 348     if (numRead > 0) {
50 26 Feb 19 nicklas 349       zzEndRead+= numRead;
50 26 Feb 19 nicklas 350       return false;
50 26 Feb 19 nicklas 351     }
50 26 Feb 19 nicklas 352     // unlikely but not impossible: read 0 characters, but not at end of stream    
50 26 Feb 19 nicklas 353     if (numRead == 0) {
50 26 Feb 19 nicklas 354       int c = zzReader.read();
50 26 Feb 19 nicklas 355       if (c == -1) {
50 26 Feb 19 nicklas 356         return true;
50 26 Feb 19 nicklas 357       } else {
50 26 Feb 19 nicklas 358         zzBuffer[zzEndRead++] = (char) c;
50 26 Feb 19 nicklas 359         return false;
50 26 Feb 19 nicklas 360       }     
50 26 Feb 19 nicklas 361     }
50 26 Feb 19 nicklas 362
50 26 Feb 19 nicklas 363   // numRead < 0
50 26 Feb 19 nicklas 364     return true;
50 26 Feb 19 nicklas 365   }
50 26 Feb 19 nicklas 366
50 26 Feb 19 nicklas 367     
50 26 Feb 19 nicklas 368   /**
50 26 Feb 19 nicklas 369    * Closes the input stream.
50 26 Feb 19 nicklas 370    */
50 26 Feb 19 nicklas 371   public final void yyclose() throws java.io.IOException {
50 26 Feb 19 nicklas 372     zzAtEOF = true;            /* indicate end of file */
50 26 Feb 19 nicklas 373     zzEndRead = zzStartRead;  /* invalidate buffer    */
50 26 Feb 19 nicklas 374
50 26 Feb 19 nicklas 375     if (zzReader != null)
50 26 Feb 19 nicklas 376       zzReader.close();
50 26 Feb 19 nicklas 377   }
50 26 Feb 19 nicklas 378
50 26 Feb 19 nicklas 379
50 26 Feb 19 nicklas 380   /**
50 26 Feb 19 nicklas 381    * Resets the scanner to read from a new input stream.
50 26 Feb 19 nicklas 382    * Does not close the old reader.
50 26 Feb 19 nicklas 383    *
50 26 Feb 19 nicklas 384    * All internal variables are reset, the old input stream 
50 26 Feb 19 nicklas 385    * <b>cannot</b> be reused (internal buffer is discarded and lost).
50 26 Feb 19 nicklas 386    * Lexical state is set to <tt>ZZ_INITIAL</tt>.
50 26 Feb 19 nicklas 387    *
50 26 Feb 19 nicklas 388    * @param reader   the new input stream 
50 26 Feb 19 nicklas 389    */
50 26 Feb 19 nicklas 390   public final void yyreset(java.io.Reader reader) {
50 26 Feb 19 nicklas 391     zzReader = reader;
50 26 Feb 19 nicklas 392     zzAtBOL  = true;
50 26 Feb 19 nicklas 393     zzAtEOF  = false;
50 26 Feb 19 nicklas 394     zzEndRead = zzStartRead = 0;
50 26 Feb 19 nicklas 395     zzCurrentPos = zzMarkedPos = 0;
50 26 Feb 19 nicklas 396     yyline = yychar = yycolumn = 0;
50 26 Feb 19 nicklas 397     zzLexicalState = YYINITIAL;
50 26 Feb 19 nicklas 398   }
50 26 Feb 19 nicklas 399
50 26 Feb 19 nicklas 400
50 26 Feb 19 nicklas 401   /**
50 26 Feb 19 nicklas 402    * Returns the current lexical state.
50 26 Feb 19 nicklas 403    */
50 26 Feb 19 nicklas 404   public final int yystate() {
50 26 Feb 19 nicklas 405     return zzLexicalState;
50 26 Feb 19 nicklas 406   }
50 26 Feb 19 nicklas 407
50 26 Feb 19 nicklas 408
50 26 Feb 19 nicklas 409   /**
50 26 Feb 19 nicklas 410    * Enters a new lexical state
50 26 Feb 19 nicklas 411    *
50 26 Feb 19 nicklas 412    * @param newState the new lexical state
50 26 Feb 19 nicklas 413    */
50 26 Feb 19 nicklas 414   public final void yybegin(int newState) {
50 26 Feb 19 nicklas 415     zzLexicalState = newState;
50 26 Feb 19 nicklas 416   }
50 26 Feb 19 nicklas 417
50 26 Feb 19 nicklas 418
50 26 Feb 19 nicklas 419   /**
50 26 Feb 19 nicklas 420    * Returns the text matched by the current regular expression.
50 26 Feb 19 nicklas 421    */
50 26 Feb 19 nicklas 422   public final String yytext() {
50 26 Feb 19 nicklas 423     return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
50 26 Feb 19 nicklas 424   }
50 26 Feb 19 nicklas 425
50 26 Feb 19 nicklas 426
50 26 Feb 19 nicklas 427   /**
50 26 Feb 19 nicklas 428    * Returns the character at position <tt>pos</tt> from the 
50 26 Feb 19 nicklas 429    * matched text. 
50 26 Feb 19 nicklas 430    * 
50 26 Feb 19 nicklas 431    * It is equivalent to yytext().charAt(pos), but faster
50 26 Feb 19 nicklas 432    *
50 26 Feb 19 nicklas 433    * @param pos the position of the character to fetch. 
50 26 Feb 19 nicklas 434    *            A value from 0 to yylength()-1.
50 26 Feb 19 nicklas 435    *
50 26 Feb 19 nicklas 436    * @return the character at position pos
50 26 Feb 19 nicklas 437    */
50 26 Feb 19 nicklas 438   public final char yycharat(int pos) {
50 26 Feb 19 nicklas 439     return zzBuffer[zzStartRead+pos];
50 26 Feb 19 nicklas 440   }
50 26 Feb 19 nicklas 441
50 26 Feb 19 nicklas 442
50 26 Feb 19 nicklas 443   /**
50 26 Feb 19 nicklas 444    * Returns the length of the matched text region.
50 26 Feb 19 nicklas 445    */
50 26 Feb 19 nicklas 446   public final int yylength() {
50 26 Feb 19 nicklas 447     return zzMarkedPos-zzStartRead;
50 26 Feb 19 nicklas 448   }
50 26 Feb 19 nicklas 449
50 26 Feb 19 nicklas 450
50 26 Feb 19 nicklas 451   /**
50 26 Feb 19 nicklas 452    * Reports an error that occured while scanning.
50 26 Feb 19 nicklas 453    *
50 26 Feb 19 nicklas 454    * In a wellformed scanner (no or only correct usage of 
50 26 Feb 19 nicklas 455    * yypushback(int) and a match-all fallback rule) this method 
50 26 Feb 19 nicklas 456    * will only be called with things that "Can't Possibly Happen".
50 26 Feb 19 nicklas 457    * If this method is called, something is seriously wrong
50 26 Feb 19 nicklas 458    * (e.g. a JFlex bug producing a faulty scanner etc.).
50 26 Feb 19 nicklas 459    *
50 26 Feb 19 nicklas 460    * Usual syntax/scanner level error handling should be done
50 26 Feb 19 nicklas 461    * in error fallback rules.
50 26 Feb 19 nicklas 462    *
50 26 Feb 19 nicklas 463    * @param   errorCode  the code of the errormessage to display
50 26 Feb 19 nicklas 464    */
50 26 Feb 19 nicklas 465   private void zzScanError(int errorCode) {
50 26 Feb 19 nicklas 466     String message;
50 26 Feb 19 nicklas 467     try {
50 26 Feb 19 nicklas 468       message = ZZ_ERROR_MSG[errorCode];
50 26 Feb 19 nicklas 469     }
50 26 Feb 19 nicklas 470     catch (ArrayIndexOutOfBoundsException e) {
50 26 Feb 19 nicklas 471       message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
50 26 Feb 19 nicklas 472     }
50 26 Feb 19 nicklas 473
50 26 Feb 19 nicklas 474     throw new Error(message);
50 26 Feb 19 nicklas 475   } 
50 26 Feb 19 nicklas 476
50 26 Feb 19 nicklas 477
50 26 Feb 19 nicklas 478   /**
50 26 Feb 19 nicklas 479    * Pushes the specified amount of characters back into the input stream.
50 26 Feb 19 nicklas 480    *
50 26 Feb 19 nicklas 481    * They will be read again by then next call of the scanning method
50 26 Feb 19 nicklas 482    *
50 26 Feb 19 nicklas 483    * @param number  the number of characters to be read again.
50 26 Feb 19 nicklas 484    *                This number must not be greater than yylength()!
50 26 Feb 19 nicklas 485    */
50 26 Feb 19 nicklas 486   public void yypushback(int number)  {
50 26 Feb 19 nicklas 487     if ( number > yylength() )
50 26 Feb 19 nicklas 488       zzScanError(ZZ_PUSHBACK_2BIG);
50 26 Feb 19 nicklas 489
50 26 Feb 19 nicklas 490     zzMarkedPos -= number;
50 26 Feb 19 nicklas 491   }
50 26 Feb 19 nicklas 492
50 26 Feb 19 nicklas 493
50 26 Feb 19 nicklas 494   /**
50 26 Feb 19 nicklas 495    * Resumes scanning until the next regular expression is matched,
50 26 Feb 19 nicklas 496    * the end of input is encountered or an I/O-Error occurs.
50 26 Feb 19 nicklas 497    *
50 26 Feb 19 nicklas 498    * @return      the next token
50 26 Feb 19 nicklas 499    * @exception   java.io.IOException  if any I/O-Error occurs
50 26 Feb 19 nicklas 500    */
50 26 Feb 19 nicklas 501   public Yytoken yylex() throws java.io.IOException, ParseException {
50 26 Feb 19 nicklas 502     int zzInput;
50 26 Feb 19 nicklas 503     int zzAction;
50 26 Feb 19 nicklas 504
50 26 Feb 19 nicklas 505     // cached fields:
50 26 Feb 19 nicklas 506     int zzCurrentPosL;
50 26 Feb 19 nicklas 507     int zzMarkedPosL;
50 26 Feb 19 nicklas 508     int zzEndReadL = zzEndRead;
50 26 Feb 19 nicklas 509     char [] zzBufferL = zzBuffer;
50 26 Feb 19 nicklas 510     char [] zzCMapL = ZZ_CMAP;
50 26 Feb 19 nicklas 511
50 26 Feb 19 nicklas 512     int [] zzTransL = ZZ_TRANS;
50 26 Feb 19 nicklas 513     int [] zzRowMapL = ZZ_ROWMAP;
50 26 Feb 19 nicklas 514     int [] zzAttrL = ZZ_ATTRIBUTE;
50 26 Feb 19 nicklas 515
50 26 Feb 19 nicklas 516     while (true) {
50 26 Feb 19 nicklas 517       zzMarkedPosL = zzMarkedPos;
50 26 Feb 19 nicklas 518
50 26 Feb 19 nicklas 519       yychar+= zzMarkedPosL-zzStartRead;
50 26 Feb 19 nicklas 520
50 26 Feb 19 nicklas 521       zzAction = -1;
50 26 Feb 19 nicklas 522
50 26 Feb 19 nicklas 523       zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
50 26 Feb 19 nicklas 524   
50 26 Feb 19 nicklas 525       zzState = ZZ_LEXSTATE[zzLexicalState];
50 26 Feb 19 nicklas 526
50 26 Feb 19 nicklas 527
50 26 Feb 19 nicklas 528       zzForAction: {
50 26 Feb 19 nicklas 529         while (true) {
50 26 Feb 19 nicklas 530     
50 26 Feb 19 nicklas 531           if (zzCurrentPosL < zzEndReadL)
50 26 Feb 19 nicklas 532             zzInput = zzBufferL[zzCurrentPosL++];
50 26 Feb 19 nicklas 533           else if (zzAtEOF) {
50 26 Feb 19 nicklas 534             zzInput = YYEOF;
50 26 Feb 19 nicklas 535             break zzForAction;
50 26 Feb 19 nicklas 536           }
50 26 Feb 19 nicklas 537           else {
50 26 Feb 19 nicklas 538             // store back cached positions
50 26 Feb 19 nicklas 539             zzCurrentPos  = zzCurrentPosL;
50 26 Feb 19 nicklas 540             zzMarkedPos   = zzMarkedPosL;
50 26 Feb 19 nicklas 541             boolean eof = zzRefill();
50 26 Feb 19 nicklas 542             // get translated positions and possibly new buffer
50 26 Feb 19 nicklas 543             zzCurrentPosL  = zzCurrentPos;
50 26 Feb 19 nicklas 544             zzMarkedPosL   = zzMarkedPos;
50 26 Feb 19 nicklas 545             zzBufferL      = zzBuffer;
50 26 Feb 19 nicklas 546             zzEndReadL     = zzEndRead;
50 26 Feb 19 nicklas 547             if (eof) {
50 26 Feb 19 nicklas 548               zzInput = YYEOF;
50 26 Feb 19 nicklas 549               break zzForAction;
50 26 Feb 19 nicklas 550             }
50 26 Feb 19 nicklas 551             else {
50 26 Feb 19 nicklas 552               zzInput = zzBufferL[zzCurrentPosL++];
50 26 Feb 19 nicklas 553             }
50 26 Feb 19 nicklas 554           }
50 26 Feb 19 nicklas 555           int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
50 26 Feb 19 nicklas 556           if (zzNext == -1) break zzForAction;
50 26 Feb 19 nicklas 557           zzState = zzNext;
50 26 Feb 19 nicklas 558
50 26 Feb 19 nicklas 559           int zzAttributes = zzAttrL[zzState];
50 26 Feb 19 nicklas 560           if ( (zzAttributes & 1) == 1 ) {
50 26 Feb 19 nicklas 561             zzAction = zzState;
50 26 Feb 19 nicklas 562             zzMarkedPosL = zzCurrentPosL;
50 26 Feb 19 nicklas 563             if ( (zzAttributes & 8) == 8 ) break zzForAction;
50 26 Feb 19 nicklas 564           }
50 26 Feb 19 nicklas 565
50 26 Feb 19 nicklas 566         }
50 26 Feb 19 nicklas 567       }
50 26 Feb 19 nicklas 568
50 26 Feb 19 nicklas 569       // store back cached position
50 26 Feb 19 nicklas 570       zzMarkedPos = zzMarkedPosL;
50 26 Feb 19 nicklas 571
50 26 Feb 19 nicklas 572       switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
50 26 Feb 19 nicklas 573         case 11: 
50 26 Feb 19 nicklas 574           { sb.append(yytext());
50 26 Feb 19 nicklas 575           }
50 26 Feb 19 nicklas 576         case 25: break;
50 26 Feb 19 nicklas 577         case 4: 
50 26 Feb 19 nicklas 578           { sb.delete(0, sb.length());yybegin(STRING_BEGIN);
50 26 Feb 19 nicklas 579           }
50 26 Feb 19 nicklas 580         case 26: break;
50 26 Feb 19 nicklas 581         case 16: 
50 26 Feb 19 nicklas 582           { sb.append('\b');
50 26 Feb 19 nicklas 583           }
50 26 Feb 19 nicklas 584         case 27: break;
50 26 Feb 19 nicklas 585         case 6: 
50 26 Feb 19 nicklas 586           { return new Yytoken(Yytoken.TYPE_RIGHT_BRACE,null);
50 26 Feb 19 nicklas 587           }
50 26 Feb 19 nicklas 588         case 28: break;
50 26 Feb 19 nicklas 589         case 23: 
50 26 Feb 19 nicklas 590           { Boolean val=Boolean.valueOf(yytext()); return new Yytoken(Yytoken.TYPE_VALUE, val);
50 26 Feb 19 nicklas 591           }
50 26 Feb 19 nicklas 592         case 29: break;
50 26 Feb 19 nicklas 593         case 22: 
50 26 Feb 19 nicklas 594           { return new Yytoken(Yytoken.TYPE_VALUE, null);
50 26 Feb 19 nicklas 595           }
50 26 Feb 19 nicklas 596         case 30: break;
50 26 Feb 19 nicklas 597         case 13: 
50 26 Feb 19 nicklas 598           { yybegin(YYINITIAL);return new Yytoken(Yytoken.TYPE_VALUE, sb.toString());
50 26 Feb 19 nicklas 599           }
50 26 Feb 19 nicklas 600         case 31: break;
50 26 Feb 19 nicklas 601         case 12: 
50 26 Feb 19 nicklas 602           { sb.append('\\');
50 26 Feb 19 nicklas 603           }
50 26 Feb 19 nicklas 604         case 32: break;
50 26 Feb 19 nicklas 605         case 21: 
50 26 Feb 19 nicklas 606           { Double val=Double.valueOf(yytext()); return new Yytoken(Yytoken.TYPE_VALUE, val);
50 26 Feb 19 nicklas 607           }
50 26 Feb 19 nicklas 608         case 33: break;
50 26 Feb 19 nicklas 609         case 1: 
50 26 Feb 19 nicklas 610           { throw new ParseException(yychar, ParseException.ERROR_UNEXPECTED_CHAR, new Character(yycharat(0)));
50 26 Feb 19 nicklas 611           }
50 26 Feb 19 nicklas 612         case 34: break;
50 26 Feb 19 nicklas 613         case 8: 
50 26 Feb 19 nicklas 614           { return new Yytoken(Yytoken.TYPE_RIGHT_SQUARE,null);
50 26 Feb 19 nicklas 615           }
50 26 Feb 19 nicklas 616         case 35: break;
50 26 Feb 19 nicklas 617         case 19: 
50 26 Feb 19 nicklas 618           { sb.append('\r');
50 26 Feb 19 nicklas 619           }
50 26 Feb 19 nicklas 620         case 36: break;
50 26 Feb 19 nicklas 621         case 15: 
50 26 Feb 19 nicklas 622           { sb.append('/');
50 26 Feb 19 nicklas 623           }
50 26 Feb 19 nicklas 624         case 37: break;
50 26 Feb 19 nicklas 625         case 10: 
50 26 Feb 19 nicklas 626           { return new Yytoken(Yytoken.TYPE_COLON,null);
50 26 Feb 19 nicklas 627           }
50 26 Feb 19 nicklas 628         case 38: break;
50 26 Feb 19 nicklas 629         case 14: 
50 26 Feb 19 nicklas 630           { sb.append('"');
50 26 Feb 19 nicklas 631           }
50 26 Feb 19 nicklas 632         case 39: break;
50 26 Feb 19 nicklas 633         case 5: 
50 26 Feb 19 nicklas 634           { return new Yytoken(Yytoken.TYPE_LEFT_BRACE,null);
50 26 Feb 19 nicklas 635           }
50 26 Feb 19 nicklas 636         case 40: break;
50 26 Feb 19 nicklas 637         case 17: 
50 26 Feb 19 nicklas 638           { sb.append('\f');
50 26 Feb 19 nicklas 639           }
50 26 Feb 19 nicklas 640         case 41: break;
50 26 Feb 19 nicklas 641         case 24: 
50 26 Feb 19 nicklas 642           { try{
50 26 Feb 19 nicklas 643                             int ch=Integer.parseInt(yytext().substring(2),16);
50 26 Feb 19 nicklas 644                             sb.append((char)ch);
50 26 Feb 19 nicklas 645                           }
50 26 Feb 19 nicklas 646                           catch(Exception e){
50 26 Feb 19 nicklas 647                             throw new ParseException(yychar, ParseException.ERROR_UNEXPECTED_EXCEPTION, e);
50 26 Feb 19 nicklas 648                           }
50 26 Feb 19 nicklas 649           }
50 26 Feb 19 nicklas 650         case 42: break;
50 26 Feb 19 nicklas 651         case 20: 
50 26 Feb 19 nicklas 652           { sb.append('\t');
50 26 Feb 19 nicklas 653           }
50 26 Feb 19 nicklas 654         case 43: break;
50 26 Feb 19 nicklas 655         case 7: 
50 26 Feb 19 nicklas 656           { return new Yytoken(Yytoken.TYPE_LEFT_SQUARE,null);
50 26 Feb 19 nicklas 657           }
50 26 Feb 19 nicklas 658         case 44: break;
50 26 Feb 19 nicklas 659         case 2: 
50 26 Feb 19 nicklas 660           { Long val=Long.valueOf(yytext()); return new Yytoken(Yytoken.TYPE_VALUE, val);
50 26 Feb 19 nicklas 661           }
50 26 Feb 19 nicklas 662         case 45: break;
50 26 Feb 19 nicklas 663         case 18: 
50 26 Feb 19 nicklas 664           { sb.append('\n');
50 26 Feb 19 nicklas 665           }
50 26 Feb 19 nicklas 666         case 46: break;
50 26 Feb 19 nicklas 667         case 9: 
50 26 Feb 19 nicklas 668           { return new Yytoken(Yytoken.TYPE_COMMA,null);
50 26 Feb 19 nicklas 669           }
50 26 Feb 19 nicklas 670         case 47: break;
50 26 Feb 19 nicklas 671         case 3: 
50 26 Feb 19 nicklas 672           { 
50 26 Feb 19 nicklas 673           }
50 26 Feb 19 nicklas 674         case 48: break;
50 26 Feb 19 nicklas 675         default: 
50 26 Feb 19 nicklas 676           if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
50 26 Feb 19 nicklas 677             zzAtEOF = true;
50 26 Feb 19 nicklas 678             return null;
50 26 Feb 19 nicklas 679           } 
50 26 Feb 19 nicklas 680           else {
50 26 Feb 19 nicklas 681             zzScanError(ZZ_NO_MATCH);
50 26 Feb 19 nicklas 682           }
50 26 Feb 19 nicklas 683       }
50 26 Feb 19 nicklas 684     }
50 26 Feb 19 nicklas 685   }
50 26 Feb 19 nicklas 686
50 26 Feb 19 nicklas 687
50 26 Feb 19 nicklas 688 }