parseText function

List parseText(
  1. Map<String, dynamic> tokenMap,
  2. String text
)

This method synthesizes the matched tokens from a string of text. The tokens are supplied as a map.

Implementation

List<dynamic> parseText(Map<String, dynamic> tokenMap, String text) {
  List<dynamic> result = [];
  List<String> lineList = text.split('\n');
  for (int x = 0; x < lineList.length; x++) {
    List<dynamic> parsedLineList = [];
    String line = lineList[x];
    if (line == '\n') {
    } else {
      for (int i = 0; i < tokenMap.length; i++) {
        String key = tokenMap.keys.elementAt(i);
        RegExp pattern = tokenMap[key];
        if (pattern.hasMatch(line) == true) {
          Iterable<Match> allMatches = pattern.allMatches(line);
          for (int z = 0; z < allMatches.length; z++) {
            Match match = allMatches.elementAt(z);
            int groupLength = match.groupCount + 1;
            List<dynamic> imList = [];
            for (int y = 1; y < groupLength; y++) {
              imList.add(key);
              imList.add(match.group(y));
            }
            parsedLineList.add(imList);
          }
        } else {}
      }
      if (parsedLineList.isEmpty == true) {
      } else {
        result.add(parsedLineList);
      }
    }
  }
  return result;
}