getSubRegionType function

Map getSubRegionType(
  1. Map subRegion,
  2. Map currentToken
)

Implementation

Map getSubRegionType(Map subRegion, Map currentToken) {
  if (subRegion.isEmpty) return {'type': currentToken['type']};
  var prevToken = subRegion['tokens'][0];
  bool isHundred = ((prevToken['type'] == TOKEN_TYPE['TEN'] &&
          currentToken['type'] == TOKEN_TYPE['UNIT']) ||
      (prevToken['type'] == TOKEN_TYPE['TEN'] &&
          currentToken['type'] == TOKEN_TYPE['TEN']) ||
      (prevToken['type'] == TOKEN_TYPE['UNIT'] &&
          currentToken['type'] == TOKEN_TYPE['TEN'] &&
          double.parse(NUMBER[prevToken['lowerCaseValue']].toString()) > 9) ||
      (prevToken['type'] == TOKEN_TYPE['UNIT'] &&
          currentToken['type'] == TOKEN_TYPE['UNIT']) ||
      (prevToken['type'] == TOKEN_TYPE['TEN'] &&
          currentToken['type'] == TOKEN_TYPE['UNIT'] &&
          subRegion['type'] == TOKEN_TYPE['MAGNITUDE']));

  if (subRegion['type'] == TOKEN_TYPE['MAGNITUDE']) {
    return {'type': TOKEN_TYPE['MAGNITUDE'], 'isHundred': isHundred};
  }

  if (isHundred) return {'type': TOKEN_TYPE['HUNDRED'], 'isHundred': isHundred};
  return {'type': currentToken['type'], 'isHundred': isHundred};
}