private NoteToken.Note lexBaseNote() {
	    if(currentLine.length() <= 0) {
            throw new RuntimeException("Trying to find note on empty line.");
        }
	    char c = currentLine.charAt(0);
		currentLine = currentLine.substring(1);
		switch (c) {
		case 'C': {
			return NoteToken.Note.C;
		}
		case 'D': {
			return NoteToken.Note.D;
		}
		case 'E': {
			return NoteToken.Note.E;
		}
		case 'F': {
			return NoteToken.Note.F;
		}
		case 'G': {
			return NoteToken.Note.G;
		}
		case 'A': {
			return NoteToken.Note.A;
		}
		case 'B': {
			return NoteToken.Note.B;
		}
		default: {
			throw new RuntimeException("invalid note format: " + c);
		}
		}
	}