protected static char esc(String a, Int i) {
		char c = a.charAt(i.get());
		if (c != '\\')
			return c;
		if (i.get() >= a.length())
			return '\\';	/* not special at end */
		i.incr();
		c = a.charAt(i.get());
		switch (c) {
		// 'd' not useful here
		case 'n':
			return ('\n');
		case 'r':
			return ('\r');
		case 't':
			return ('\t');
		case 'u':
			// assume followed by 4-digit hex string for Unicode character.
			String hex = a.substring(i.get()+1, i.get()+5);
			i.incr(4);
			return (char)Integer.parseInt(hex, 16); 
		// 'w' not allowed here
		case '\\':
			return ('\\');
		default:
			return (c);
		}
	}