c_parser.php | ||||
|
||||
Coverage | ||||||||||
Classes | Functions / Methods | Lines | ||||||||
Total |
|
100.00% | 1 / 1 |
|
100.00% | 2 / 2 | CRAP |
|
100.00% | 14 / 14 |
CParser |
|
100.00% | 1 / 1 |
|
100.00% | 2 / 2 | 5 |
|
100.00% | 14 / 14 |
__construct() |
|
100.00% | 1 / 1 | 1 |
|
100.00% | 3 / 3 | |||
parseFile($base_dir, $filename) |
|
100.00% | 1 / 1 | 4 |
|
100.00% | 11 / 11 |
1 : <?php 2 : /* 3 : Copyright 2008 Josh Heidenreich 4 : 5 : This file is part of Pelzini. 6 : 7 : Pelzini is free software: you can redistribute it and/or modify 8 : it under the terms of the GNU General Public License as published by 9 : the Free Software Foundation, either version 3 of the License, or 10 : (at your option) any later version. 11 : 12 : Pelzini is distributed in the hope that it will be useful, 13 : but WITHOUT ANY WARRANTY; without even the implied warranty of 14 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 : GNU General Public License for more details. 16 : 17 : You should have received a copy of the GNU General Public License 18 : along with Pelzini. If not, see <http://www.gnu.org/licenses/>. 19 : */ 20 : 21 : 22 : /** 23 : * Contains the {@link CParser} class 24 : * 25 : * @package Parsers 26 : * @author Josh 27 : * @since 0.2 28 : **/ 29 : 30 : /** 31 : * Does the complete parsing of a C file. 32 : **/ 33 : class CParser 34 : { 35 : private $lexer; 36 : private $analyser; 37 : 38 : public function __construct() 39 : { 40 3 : $this->lexer = new CLexer(); 41 3 : $this->analyser = new CAnalyser(); 42 3 : } 43 : 44 : 45 : /** 46 : * Parses a file 47 : * 48 : * @param string $filename The file to parse 49 : * @return A ParserFile object, or null if there was an error 50 : **/ 51 : public function parseFile($base_dir, $filename) 52 : { 53 3 : $this->lexer->resetState(); 54 : 55 3 : $source = @file_get_contents($base_dir . $filename); 56 3 : if ($source == null) return null; 57 : 58 3 : $tokens = $this->lexer->process($source); 59 3 : if ($tokens === null) return null; 60 : 61 : //echo "<style>i {color: #777;}</style>"; 62 : //echo '<pre>Tokens for file ', $filename, "\n"; 63 : //foreach ($tokens as $i => $t) echo "<b>{$i}</b> {$t->getTypeName()} <i>{$t->getValue()}</i>\n"; 64 : //echo '</pre>'; 65 : 66 3 : $file = new ParserFile(); 67 3 : $file->name = $filename; 68 3 : $file->source = $source; 69 : 70 3 : $result = $this->analyser->process($tokens, $file); 71 3 : if ($result === false) return null; 72 : 73 3 : return $file; 74 : } 75 : 76 : 77 : } 78 : 79 : 80 : ?> |
Generated by PHP_CodeCoverage 1.1.2 using PHP 5.4.39-0+deb7u2 and PHPUnit 3.6.10 at Fri Sep 11 11:35:19 WIT 2015. |