private void determineType() {
		int x = nextChar; // data preservation 
		
		// is it a symbol?
		if(x==40|x ==41|x==123|x==125|x==91|x==93|x==43|x==45|x==42|x==47|x==62|x==60|x==61|x==44|x==59|x==58|x==33){
			nextState = 2; // see state diagram for reference
		}
		
		// is it a letter?  [a,z] + [A,Z] + _ + [0,9] after first letter 
		else if((x >= 65 && x <= 90) | (x >= 97 && x <= 122) | x == 95){
			nextState = 1;
		}
		
		// is it a number
		else if( (x >= 48) && (x <= 57)){
			nextState = 3;
		}
		else if(x==-1|x==10|x==32|x==9|x==13){ // eof, space, newline, tab 
			nextState = 4; 
		}
		else{
			tempToken = new Token(x,"ERROR",charPos,lineNum);
			tokenFoundFlag = true;
		}
	}