87 lines
No EOL
2.6 KiB
Python
87 lines
No EOL
2.6 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Comprehensive enum extraction from ALL Mag-Plugins Constants files.
|
|
This script extracts ALL missing enum values to complete our enum database.
|
|
"""
|
|
import json
|
|
import re
|
|
import os
|
|
from pathlib import Path
|
|
|
|
def extract_coverage_mask():
|
|
"""Extract complete CoverageMask enum with ALL values."""
|
|
file_path = "../unused/Mag-Plugins/Shared/Constants/CoverageMask.cs"
|
|
|
|
coverage_values = {}
|
|
|
|
with open(file_path, 'r') as f:
|
|
content = f.read()
|
|
|
|
# Extract enum values using regex
|
|
enum_pattern = r'(\w+)\s*=\s*0x([0-9A-Fa-f]+)'
|
|
matches = re.findall(enum_pattern, content)
|
|
|
|
for name, hex_value in matches:
|
|
decimal_value = int(hex_value, 16)
|
|
coverage_values[str(decimal_value)] = name
|
|
|
|
return {
|
|
"name": "CoverageMask",
|
|
"values": coverage_values,
|
|
"source_file": "CoverageMask.cs"
|
|
}
|
|
|
|
def extract_bool_value_key():
|
|
"""Extract BoolValueKey enum (currently missing)."""
|
|
file_path = "../unused/Mag-Plugins/Shared/Constants/BoolValueKey.cs"
|
|
|
|
bool_values = {}
|
|
|
|
with open(file_path, 'r') as f:
|
|
content = f.read()
|
|
|
|
# Extract enum values
|
|
enum_pattern = r'(\w+)\s*=\s*(\d+)'
|
|
matches = re.findall(enum_pattern, content)
|
|
|
|
for name, value in matches:
|
|
bool_values[value] = name
|
|
|
|
return {
|
|
"name": "BoolValueKey",
|
|
"values": bool_values,
|
|
"source_file": "BoolValueKey.cs"
|
|
}
|
|
|
|
def load_current_database():
|
|
"""Load current enum database."""
|
|
with open('comprehensive_enum_database_v2.json', 'r') as f:
|
|
return json.load(f)
|
|
|
|
def update_enum_database():
|
|
"""Update the enum database with ALL missing values."""
|
|
print("Loading current enum database...")
|
|
db = load_current_database()
|
|
|
|
print("Extracting complete CoverageMask...")
|
|
complete_coverage = extract_coverage_mask()
|
|
db['enums']['CoverageMask'] = complete_coverage
|
|
|
|
print("Extracting BoolValueKey...")
|
|
bool_values = extract_bool_value_key()
|
|
db['enums']['BoolValueKey'] = bool_values
|
|
|
|
# Update metadata
|
|
db['metadata']['last_updated'] = "2025-06-12"
|
|
db['metadata']['notes'] = "COMPLETE extraction: Added missing CoverageMask values (1,2,4,16,etc) and BoolValueKey enum"
|
|
|
|
print("Saving updated database...")
|
|
with open('comprehensive_enum_database_v2.json', 'w') as f:
|
|
json.dump(db, f, indent=2)
|
|
|
|
print("✅ Enum database updated successfully!")
|
|
print(f"✅ CoverageMask now has {len(complete_coverage['values'])} values")
|
|
print(f"✅ BoolValueKey now has {len(bool_values['values'])} values")
|
|
|
|
if __name__ == "__main__":
|
|
update_enum_database() |