RelativeLocationPath();
if (!RelativeLocationPath() && !seenSlash) {   error(XPATHErrorResources.ER_EXPECTED_LOC_PATH, new Object [] {m_token}); }
  protected void LocationPath() throws javax.xml.transform.TransformerException  {    int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];    // int locationPathOpPos = opPos;    appendOp(2, OpCodes.OP_LOCATIONPATH);    if (tokenIs('/'))    {      appendOp(4, OpCodes.FROM_ROOT);      // Tell how long the step is without the predicate      m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - 2] = 4;      m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - 1] =        OpCodes.NODETYPE_ROOT;      nextToken();    }    if (m_token != null)    {      RelativeLocationPath();    }    // Terminate for safety.    m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = OpCodes.ENDOP;    m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;    m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =      m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;  }