parseClasses method
Parses classes from a file
Implementation
List<TypedefInfo> parseClasses(String content) {
final classes = <TypedefInfo>[];
final enums = parseEnums(content);
// Find class declarations and extract their content manually
final lines = content.split('\n');
for (var i = 0; i < lines.length; i++) {
final line = lines[i].trim();
// Match class declaration
final classMatch = RegExp(r'^class\s+(\w+)\s*\{').firstMatch(line);
if (classMatch != null) {
final className = classMatch.group(1)!;
// Find the class body (from current line to closing brace)
var braceCount = 1;
final classBodyLines = <String>[];
for (var j = i + 1; j < lines.length && braceCount > 0; j++) {
final bodyLine = lines[j];
classBodyLines.add(bodyLine);
// Count braces to find the end of class
braceCount += '{'.allMatches(bodyLine).length;
braceCount -= '}'.allMatches(bodyLine).length;
}
// Remove the last line (closing brace)
if (classBodyLines.isNotEmpty) {
classBodyLines.removeLast();
}
final classBody = classBodyLines.join('\n');
// Parse fields from class body
final fields = _parseClassFields(classBody, enums);
if (fields.isNotEmpty) {
classes.add(TypedefInfo(
name: className,
fields: fields,
isClass: true,
));
}
}
}
return classes;
}