public static void MP_IDENTIFIER() {
		char currentChar = file.charAt(index);
		currentLexeme = "";
		String tempLexeme = "";
		int state = 0;
		while(true){
			currentChar = file.charAt(index);
			switch(state){
			case 0:
				if(Character.isAlphabetic(currentChar)) { // to accept state
					tempLexeme += currentChar;
					currentLexeme = tempLexeme;
					indexOfLastAccept = index;
					index++;
					currentColNumber++;
					currentLexeme = tempLexeme;
					state = 1;
				} else if (currentChar == '_') {
					tempLexeme += currentChar;
					index++;
					currentColNumber++;
					state = 2;
				} else {
					//error
					index = ++indexOfLastAccept;
					currentToken = "MP_ERROR";
					return;
				}
				break;
			case 1:
				if(Character.isLetterOrDigit(currentChar)) { // to accept state
					tempLexeme += currentChar;
					currentLexeme = tempLexeme;
					indexOfLastAccept = index;
					index++;
					currentColNumber++;
					currentLexeme = tempLexeme;
				} else if (currentChar == '_') {
					tempLexeme += currentChar;
					index++;
					currentColNumber++;
					state = 2;
				} else { 
					// done
					index = ++indexOfLastAccept;
					currentToken = "MP_IDENTIFIER";
					return;
				}
				break;
			case 2:
				if(Character.isLetterOrDigit(currentChar)) { // to accept state
					tempLexeme += currentChar;
					currentLexeme = tempLexeme;
					indexOfLastAccept = index;
					index++;
					currentColNumber++;
					currentLexeme = tempLexeme;
					state = 1;
				} else {
					// error
					index = ++indexOfLastAccept;
					currentToken = "MP_ERROR";
					return;
				}
				break;
			}
		}
	}