function coder_upgrade_apply_parser in Coder 7
Same name and namespace in other branches
- 7.2 coder_upgrade/includes/main.inc \coder_upgrade_apply_parser()
Applies grammar parser conversion routines to a file.
Parameters
string $filename: The name of the file to convert.
string $new: The contents of the file to convert.
1 call to coder_upgrade_apply_parser()
- coder_upgrade_convert_file in coder_upgrade/
includes/ main.inc - Converts a file.
File
- coder_upgrade/
includes/ main.inc, line 337 - Manages application of conversion routines, logging, and patch file creation.
Code
function coder_upgrade_apply_parser($filename, &$new) {
global $_coder_upgrade_class_files;
// Categorize certain files.
$is_info_file = pathinfo($filename, PATHINFO_EXTENSION) == 'info';
$is_install_file = pathinfo($filename, PATHINFO_EXTENSION) == 'install';
if ($is_info_file) {
// Grammar parser only parses PHP code files.
return;
}
// Create reader object.
$reader = PGPReader::getInstance();
coder_upgrade_memory_print('create reader for file ' . $filename);
// Set array formatting preference.
$reader
->setPreserveArrayFormat(variable_get('coder_upgrade_preserve_array_format', FALSE));
// Set debug output preference.
$reader
->setDebug(variable_get('coder_upgrade_enable_parser_debug_output', FALSE));
$reader
->setSnippet($new);
coder_upgrade_memory_print('set snippet');
$reader
->addTokenNames();
coder_upgrade_memory_print('add token names');
// Parse code file.
$reader
->buildGrammar();
coder_upgrade_memory_print('build grammar');
$nodes =& $reader
->getClasses();
if (!empty($nodes)) {
$_coder_upgrade_class_files[] = $filename;
}
// Apply parser conversion routines for function calls.
coder_upgrade_log_print("Calling hook_upgrade_call_alter");
coder_upgrade_convert_function_calls($reader);
coder_upgrade_log_print("Completed hook_upgrade_call_alter");
coder_upgrade_memory_print('apply function call conversions');
// Apply parser conversion routines for hook functions.
coder_upgrade_log_print("Calling hook_upgrade_hook_alter");
coder_upgrade_convert_functions($reader);
coder_upgrade_log_print("Completed hook_upgrade_hook_alter");
coder_upgrade_memory_print('apply hook function conversions');
// Apply parser conversion routines for the file.
coder_upgrade_log_print("Calling hook_upgrade_file_alter");
drupal_alter('upgrade_file', $reader);
coder_upgrade_log_print("Completed hook_upgrade_file_alter");
coder_upgrade_memory_print('apply file conversions');
if ($is_install_file) {
// Apply parser conversion routines for install file.
coder_upgrade_log_print("Calling hook_upgrade_parser_install_alter");
drupal_alter('upgrade_parser_install', $reader);
coder_upgrade_log_print("Completed hook_upgrade_parser_install_alter");
coder_upgrade_memory_print('apply install file conversions');
}
// Use writer to redo file.
$writer = PGPWriter::getInstance();
coder_upgrade_memory_print('create writer');
$new = $writer
->toString($reader
->getStatements());
coder_upgrade_memory_print('writer->toString');
// Free up memory.
$reader
->reset();
coder_upgrade_memory_print('reset reader');
}