il2cpp-dump-analyzer-mcp
Version:
Agentic RAG system for analyzing IL2CPP dump.cs files from Unity games
113 lines • 4.23 kB
JavaScript
;
// Enhanced IL2CPP Parser - Main Export File
Object.defineProperty(exports, "__esModule", { value: true });
exports.IL2CPPParserUtils = exports.parseIL2CPPDump = exports.initializeParser = exports.IL2CPPDumpParser = exports.EnhancedIL2CPPParser = void 0;
// Core enhanced parser
var enhanced_il2cpp_parser_1 = require("./enhanced-il2cpp-parser");
Object.defineProperty(exports, "EnhancedIL2CPPParser", { enumerable: true, get: function () { return enhanced_il2cpp_parser_1.EnhancedIL2CPPParser; } });
// Original parser for backward compatibility
var il2cpp_parser_1 = require("./il2cpp-parser");
Object.defineProperty(exports, "IL2CPPDumpParser", { enumerable: true, get: function () { return il2cpp_parser_1.IL2CPPDumpParser; } });
var parser_1 = require("./parser");
Object.defineProperty(exports, "initializeParser", { enumerable: true, get: function () { return parser_1.initializeParser; } });
Object.defineProperty(exports, "parseIL2CPPDump", { enumerable: true, get: function () { return parser_1.parseIL2CPPDump; } });
/**
* Enhanced IL2CPP Parser Library
*
* This library provides comprehensive parsing capabilities for IL2CPP dump.cs files
* with support for:
*
* - Real IL2CPP dump format parsing (TypeDefIndex, RVA/Offset)
* - Attribute parsing and metadata extraction
* - Generic types and nested classes
* - MonoBehaviour detection
* - Comprehensive error handling and statistics
*
* Usage Example:
* ```typescript
* import { EnhancedIL2CPPParser } from './parser';
*
* const parser = new EnhancedIL2CPPParser();
* await parser.loadFile('dump.cs');
* const result = parser.extractAllConstructs();
*
* console.log(`Found ${result.statistics.totalConstructs} constructs`);
* console.log(`Classes: ${result.classes.length}`);
* console.log(`Enums: ${result.enums.length}`);
* console.log(`Interfaces: ${result.interfaces.length}`);
* ```
*
* Key Features:
*
* 1. **Real Format Support**: Handles actual IL2CPP dump.cs format with
* TypeDefIndex, RVA, Offset, and image mappings.
*
* 2. **Attribute Parsing**: Extracts attributes like [Serializable],
* [CreateAssetMenu], [SerializeField], etc.
*
* 3. **Generic Support**: Parses generic methods and classes with
* constraint information.
*
* 4. **MonoBehaviour Detection**: Automatically identifies MonoBehaviour
* classes for Unity-specific analysis.
*
* 5. **Comprehensive Statistics**: Provides detailed parsing statistics
* and error reporting.
*/
// Import for internal use
const enhanced_il2cpp_parser_2 = require("./enhanced-il2cpp-parser");
// Utility functions for common operations
class IL2CPPParserUtils {
/**
* Quick parse function for simple use cases
*/
static async quickParse(filePath) {
const parser = new enhanced_il2cpp_parser_2.EnhancedIL2CPPParser();
await parser.loadFile(filePath);
return parser.extractAllConstructs();
}
/**
* Get only classes from a dump file
*/
static async extractClasses(filePath) {
const result = await this.quickParse(filePath);
return result.classes;
}
/**
* Get only enums from a dump file
*/
static async extractEnums(filePath) {
const result = await this.quickParse(filePath);
return result.enums;
}
/**
* Get only interfaces from a dump file
*/
static async extractInterfaces(filePath) {
const result = await this.quickParse(filePath);
return result.interfaces;
}
/**
* Get only MonoBehaviour classes from a dump file
*/
static async extractMonoBehaviours(filePath) {
const result = await this.quickParse(filePath);
return result.classes.filter(cls => cls.isMonoBehaviour);
}
/**
* Get parsing statistics
*/
static async getStatistics(filePath) {
const result = await this.quickParse(filePath);
return result.statistics;
}
/**
* Get image mappings from dump file
*/
static async getImageMappings(filePath) {
const result = await this.quickParse(filePath);
return result.imageMappings;
}
}
exports.IL2CPPParserUtils = IL2CPPParserUtils;
//# sourceMappingURL=index.js.map