if (!Character.isLetter(m_tokenChar) && !tokenIs('_')) {  error(XPATHErrorResources.ER_EXPECTED_NODE_TEST, null); }
  protected void NodeTest(int axesType) throws javax.xml.transform.TransformerException  {    if (lookahead('(', 1))    {      Object nodeTestOp = Keywords.m_nodetypes.get(m_token);      if (null == nodeTestOp)      {        error(XPATHErrorResources.ER_UNKNOWN_NODETYPE,              new Object[]{ m_token });  //"Unknown nodetype: "+m_token);      }      else      {        nextToken();        int nt = ((Integer) nodeTestOp).intValue();        m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = nt;        m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;        consumeExpected('(');        if (OpCodes.NODETYPE_PI == nt)        {          if (!tokenIs(')'))          {            Literal();          }        }        consumeExpected(')');      }    }    else    {      // Assume name of attribute or element.      m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = OpCodes.NODENAME;      m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;      if (lookahead(':', 1))      {        if (tokenIs('*'))        {          m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] =            OpCodes.ELEMWILDCARD;        }        else        {          m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = m_queueMark                  - 1;        }        nextToken();        consumeExpected(':');      }      else      {        m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = OpCodes.EMPTY;      }      m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;      if (tokenIs('*'))      {        m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] =          OpCodes.ELEMWILDCARD;      }      else      {        if (OpCodes.FROM_NAMESPACE == axesType)        {          String prefix = (String) this.m_ops.m_tokenQueue[m_queueMark - 1];          String namespace =            ((PrefixResolver) m_namespaceContext).getNamespaceForPrefix(              prefix);          this.m_ops.m_tokenQueue[m_queueMark - 1] = namespace;        }        m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = m_queueMark - 1;      }      m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;      nextToken();    }  }