function parseMultiplyDivideModulusPercentage (state) {
    let node, last, name, fn

    node = parseImplicitMultiplication(state)
    last = node

    const operators = {
      '*': 'multiply',
      '.*': 'dotMultiply',
      '/': 'divide',
      './': 'dotDivide',
      '%': 'mod',
      mod: 'mod'
    }

    while (true) {
      if (hasOwnProperty(operators, state.token)) {
        // explicit operators
        name = state.token
        fn = operators[name]

        getTokenSkipNewline(state)

        if (name === '%' && state.tokenType === TOKENTYPE.DELIMITER && state.token !== '(') {
          // If the expression contains only %, then treat that as /100
          if (state.token !== '' && operators[state.token]) {
            const left = new OperatorNode('/', 'divide', [node, new ConstantNode(100)], false, true)
            name = state.token
            fn = operators[name]
            getTokenSkipNewline(state)
            last = parseImplicitMultiplication(state)

            node = new OperatorNode(name, fn, [left, last])
          } else { node = new OperatorNode('/', 'divide', [node, new ConstantNode(100)], false, true) }
          // return node
        } else {
          last = parseImplicitMultiplication(state)
          node = new OperatorNode(name, fn, [node, last])
        }
      } else {
        break
      }
    }

    return node
  }
multiply, divide, modulus, percentage
@return {Node} node
@private