code: private AbsAxis parseForwardAxis() throws TTXPathException {
  
          final AbsAxis axis;
          if (is("child", true)) {
  
              axis = new ChildAxis(getTransaction());
  
          } else if (is("descendant", true)) {
  
              axis = new DescendantAxis(getTransaction());
  
          } else if (is("descendant-or-self", true)) {
  
              axis = new DescendantAxis(getTransaction(), true);
  
          } else if (is("attribute", true)) {
              axis = new AttributeAxis(getTransaction());
  
          } else if (is("self", true)) {
              axis = new SelfAxis(getTransaction());
  
          } else if (is("following", true)) {
  
              axis = new FollowingAxis(getTransaction());
  
          } else if (is("following-sibling", true)) {
  
              axis = new FollowingSiblingAxis(getTransaction());
  
          } else {
              is("namespace", true);
              throw EXPathError.XPST0010.getEncapsulatedException();
  
          }
  
          consume(TokenType.COLON, true);
          consume(TokenType.COLON, true);
  
          return axis;
  
      }
docs: Parses the the rule ForwardAxis according to the following production
  rule:
  <p>
  [30] ForwardAxis ::= <"child" "::"> | <"descendant" "::"> | <"attribute" "::"> | <"self" "::"> |
  <"descendant-or-self" "::"> | <"following-sibling" "::"> | <"following" "::"> | <"namespace" "::"> .
  </p>
  
  @return axis
  @throws TTXPathException