separated cases when getting operands

in getOperand(), replaced the cases that fall through with the actual
code needed by the case (in some cases the fall through was doing checks
that had already been done or were not necessary)
assign codes to variable tokens as soon as possible

getOperand() modified to assign variable code to no parentheses tokens
  (for now, later functions will need to be checked for)
outputAssignCodes() no longer assigns codes to no parentheses tokens
token type changed to no parentheses for variable codes
reference flag added to variable reference codes
token text() modified to output code text (with index) or '?' in front
  of no parentheses tokens with invalid code (not with index)