docs: def _construct_shape_token(self, d: Dict) -> List[Dict]:
          """
          Construct a shape token
          Args:
              d: Dict
  
          Returns: List[Dict]
          """
  
          result = []
          if not d["shapes"]:
              this_token = {attrs.IS_ASCII: True}
              result.append(this_token)
          else:
              for shape in d["shapes"]:
                  this_shape = self._generate_shape(shape)
                  this_token = {attrs.SHAPE: this_shape}
                  result.append(copy.deepcopy(this_token))
  
          result = self._add_common_constrain(result, d)
          if d["part_of_speech"]:
              result = self._add_pos_constrain(result, d["part_of_speech"])
  
          return result