-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
PHP true,false,null in lowercase SQL keywords uppercase
- Loading branch information
Alexandra Nantel
committed
Aug 24, 2017
1 parent
337e99e
commit 2d04f48
Showing
1 changed file
with
24 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,104 +1,104 @@ | ||
<?php | ||
/*----------------------------------------------------------------------------*/ | ||
|
||
class BitterFormatSymphony extends BitterFormat { | ||
protected $tabsize = 4; | ||
protected $line = 1; | ||
protected $output = ''; | ||
|
||
public function process($source) { | ||
$this->output = $source; | ||
|
||
$this->processTabs(); | ||
$this->processLines(); | ||
|
||
return sprintf( | ||
'<pre>%s</pre>', | ||
$this->output | ||
); | ||
} | ||
|
||
protected function processTabs() { | ||
// first split the output into manageable chunks | ||
$lines = explode(PHP_EOL, $this->output); | ||
$linesCount = count($lines); | ||
// fix lines one by one | ||
for ($x = 0; $x < $linesCount; $x++) { | ||
// while there are still tabs | ||
while (strpos($lines[$x], "\t") !== FALSE) { | ||
while (strpos($lines[$x], "\t") !== false) { | ||
// replace tabs for spaces | ||
$lines[$x] = preg_replace_callback('%^([^\t]*)([\t]+)%', array($this, 'processTabsLine'), $lines[$x]); | ||
} | ||
} | ||
// concat the final output | ||
$this->output = implode(PHP_EOL, $lines); | ||
} | ||
|
||
protected function processTabsLine($matches) { | ||
return $matches[1] . str_repeat( | ||
' ', strlen($matches[2]) * $this->tabsize | ||
); | ||
} | ||
|
||
protected function processLines() { | ||
$tokens = preg_split('%(<span class=".*?">|</span>)%', $this->output, 0, PREG_SPLIT_DELIM_CAPTURE); | ||
$stack = array(); $this->output = ''; | ||
|
||
$this->startLine(); | ||
|
||
foreach ($tokens as $token) { | ||
// Close: | ||
if (preg_match('%^</%', $token)) { | ||
array_pop($stack); | ||
$this->output .= $token; | ||
} | ||
|
||
// Open: | ||
else if (preg_match('%^<%', $token)) { | ||
array_push($stack, $token); | ||
$this->output .= $token; | ||
} | ||
|
||
else { | ||
$characters = preg_split('//', $token); | ||
|
||
foreach ($characters as $character) { | ||
if ($character == "\n") { | ||
$this->endLine(); | ||
|
||
foreach ($stack as $alt_token) $this->output .= '</span>'; | ||
} | ||
|
||
$this->output .= $character; | ||
|
||
if ($character == "\n") { | ||
$this->startLine(); | ||
|
||
foreach ($stack as $alt_token) $this->output .= $alt_token; | ||
} | ||
} | ||
} | ||
} | ||
|
||
$this->endLine(); | ||
} | ||
|
||
protected function startLine() { | ||
$this->output .= "<line id=\"{$this->line}\">"; | ||
$this->output .= "<marker></marker>"; | ||
$this->output .= "<content>"; | ||
} | ||
|
||
protected function endLine() { | ||
$this->line++; | ||
$this->output .= '</content>'; | ||
$this->output .= '</line>'; | ||
} | ||
} | ||
|
||
/*----------------------------------------------------------------------------*/ | ||
|
||
return new BitterFormatSymphony(); | ||
|
||
/*----------------------------------------------------------------------------*/ | ||
?> | ||
?> |