3
* Squiz_Sniffs_Commenting_PostStatementCommentSniff.
8
* @package PHP_CodeSniffer
9
* @author Greg Sherwood <gsherwood@squiz.net>
10
* @author Marc McIntyre <mmcintyre@squiz.net>
11
* @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600)
12
* @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
13
* @link http://pear.php.net/package/PHP_CodeSniffer
17
* Squiz_Sniffs_Commenting_PostStatementCommentSniff.
19
* Checks to ensure that there are no comments after statements.
22
* @package PHP_CodeSniffer
23
* @author Greg Sherwood <gsherwood@squiz.net>
24
* @author Marc McIntyre <mmcintyre@squiz.net>
25
* @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600)
26
* @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
27
* @version Release: 1.5.3
28
* @link http://pear.php.net/package/PHP_CodeSniffer
30
class Squiz_Sniffs_Commenting_PostStatementCommentSniff implements PHP_CodeSniffer_Sniff
34
* A list of tokenizers this sniff supports.
38
public $supportedTokenizers = array(
45
* Returns an array of tokens this test wants to listen for.
49
public function register()
51
return array(T_COMMENT);
57
* Processes this sniff, when one of its tokens is encountered.
59
* @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
60
* @param int $stackPtr The position of the current token in the
61
* stack passed in $tokens.
65
public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
67
$tokens = $phpcsFile->getTokens();
69
if (substr($tokens[$stackPtr]['content'], 0, 2) !== '//') {
73
$commentLine = $tokens[$stackPtr]['line'];
74
$lastContent = $phpcsFile->findPrevious(T_WHITESPACE, ($stackPtr - 1), null, true);
76
if ($tokens[$lastContent]['line'] !== $commentLine) {
80
if ($tokens[$lastContent]['code'] === T_CLOSE_CURLY_BRACKET) {
84
// Special case for JS files.
85
if ($tokens[$lastContent]['code'] === T_COMMA
86
|| $tokens[$lastContent]['code'] === T_SEMICOLON
88
$lastContent = $phpcsFile->findPrevious(T_WHITESPACE, ($lastContent - 1), null, true);
89
if ($tokens[$lastContent]['code'] === T_CLOSE_CURLY_BRACKET) {
94
$error = 'Comments may not appear after statements.';
95
$phpcsFile->addError($error, $stackPtr, 'Found');