public void readString() throws ParseException {
			StringBuffer val = new StringBuffer();
			while (column < line.length()) {
				char c = line.charAt(column++);
				if (c == '"') {
					value = val.toString();
					return;
				}
				if (c == '\\') {
					c = line.charAt(column++);
					switch (c) {
					case 'n':
						val.append('\n');
						break;
					case 't':
						val.append('\t');
						break;
					case 'r':
						val.append('\r');
						break;
					case 'u':
						if (column + 4 <= line.length()) {
							try {
								char uni = (char) Integer.parseInt(
										line.substring(column, column + 4), 16);
								column += 4;
								val.append(uni);
							} catch (NumberFormatException ex) {
								throw new ParseException(linenr,
										"Invalid unicode escape character");
							}
						} else
							throw new ParseException(linenr,
									"Invalid unicode escape character");
						break;
					default:
						val.append(c);
					}
				} else
					val.append(c);
			}
			throw new ParseException(linenr, "String spans over multiple lines");
		}