1. 程式人生 > >php對nesc編譯後的文件處理

php對nesc編譯後的文件處理

inpu 內聯 spa 文件 close match clas put reg

<?php
$f_output = fopen("app_out.c","w");
$f_input = fopen("app.c","r");
while (!feof($f_input)) while (!feof($f_input))
{
    $next_match = 1;
  $line = fgets($f_input);
  // 1、代碼位置信息(如:# 19 、#line 22)
  $pattern = ‘/(^(#line\s\d+))|(^(#\s\d+)(.*))/‘;
  // $replacement = ‘// ${0}‘;
  $replacement = ‘‘;
  
$r = preg_match($pattern, $line); if($r ) { $line = preg_replace($pattern, $replacement, $line); break; } // 2、內聯函數標誌信息(如: inline ) $pattern = ‘/(\b__inline\b)|(__inline\b)/‘; // $replacement = ‘/* ${0} */‘; // $replacement = ‘inline‘; $replacement = ‘‘; $r = preg_match($pattern
, $line); if($next_match && $r ) { $line = preg_replace($pattern, $replacement, $line); $next_match = 0; } // 3、$符號的處理 $contents = $line; $pattern = ‘/(\w+)(\$)(\w+)/‘; $replacement = ‘${1}__${3}‘; $matchCount = 0; while($next_match) { $r = preg_match($pattern
, $contents); if($r ) { $matchCount++; $contents = preg_replace($pattern, $replacement, $contents); } else { if( $matchCount == 0 ) { break; } $line = $contents; $next_match = 0; break; } } fputs($f_output,$line); } fclose($f_input); fclose($f_output); ?>

php對nesc編譯後的文件處理