Completed
Push — master ( a22740...69499d )
by Tom
02:51
created
src/TSSValidator.php 2 patches
Indentation   +33 added lines, -33 removed lines patch added patch discarded remove patch
@@ -2,48 +2,48 @@
 block discarded – undo
2 2
 namespace Transphporm;
3 3
 use Transphporm\Parser\Tokenizer;
4 4
 class TSSValidator {
5
-    private $error;
5
+	private $error;
6 6
 
7
-    public function validate($tss) {
8
-        $this->error = null;
9
-        $tokens = $this->tokenize($tss);
7
+	public function validate($tss) {
8
+		$this->error = null;
9
+		$tokens = $this->tokenize($tss);
10 10
 
11
-        foreach ($tokens as $token)
12
-            if (!$this->validateRule($token)) return false;
11
+		foreach ($tokens as $token)
12
+			if (!$this->validateRule($token)) return false;
13 13
 
14
-        return true;
15
-    }
14
+		return true;
15
+	}
16 16
 
17
-    public function getLastError() {
18
-        return $this->error;
19
-    }
17
+	public function getLastError() {
18
+		return $this->error;
19
+	}
20 20
 
21
-    private function validateRule($token) {
22
-        if ($token['type'] !== Tokenizer::OPEN_BRACE) return true;
21
+	private function validateRule($token) {
22
+		if ($token['type'] !== Tokenizer::OPEN_BRACE) return true;
23 23
 
24
-        return $this->checkBraces($token) && $this->checkSemicolons($token)
25
-            && $this->checkParenthesis($token);
26
-    }
24
+		return $this->checkBraces($token) && $this->checkSemicolons($token)
25
+			&& $this->checkParenthesis($token);
26
+	}
27 27
 
28
-    private function checkBraces($token) {
29
-        return strpos($token['string'], '{') === false;
30
-    }
28
+	private function checkBraces($token) {
29
+		return strpos($token['string'], '{') === false;
30
+	}
31 31
 
32
-    private function checkSemicolons($braceToken) {
33
-        $splitTokens = $braceToken['value']->splitOnToken(Tokenizer::COLON);
34
-        array_shift($splitTokens); array_pop($splitTokens);
35
-        foreach ($splitTokens as $tokens)
36
-            if (!in_array(Tokenizer::SEMI_COLON, array_column(iterator_to_array($tokens), 'type'))) return false;
32
+	private function checkSemicolons($braceToken) {
33
+		$splitTokens = $braceToken['value']->splitOnToken(Tokenizer::COLON);
34
+		array_shift($splitTokens); array_pop($splitTokens);
35
+		foreach ($splitTokens as $tokens)
36
+			if (!in_array(Tokenizer::SEMI_COLON, array_column(iterator_to_array($tokens), 'type'))) return false;
37 37
 
38
-        return true;
39
-    }
38
+		return true;
39
+	}
40 40
 
41
-    private function checkParenthesis($token) {
42
-        return substr_count($token['string'], '(') === substr_count($token['string'], ')');
43
-    }
41
+	private function checkParenthesis($token) {
42
+		return substr_count($token['string'], '(') === substr_count($token['string'], ')');
43
+	}
44 44
 
45
-    private function tokenize($tss) {
46
-        if (is_file($tss)) $tss = file_get_contents($tss);
47
-        return (new Parser\Tokenizer($tss))->getTokens();
48
-    }
45
+	private function tokenize($tss) {
46
+		if (is_file($tss)) $tss = file_get_contents($tss);
47
+		return (new Parser\Tokenizer($tss))->getTokens();
48
+	}
49 49
 }
Please login to merge, or discard this patch.
Braces   +12 added lines, -6 removed lines patch added patch discarded remove patch
@@ -8,8 +8,9 @@  discard block
 block discarded – undo
8 8
         $this->error = null;
9 9
         $tokens = $this->tokenize($tss);
10 10
 
11
-        foreach ($tokens as $token)
12
-            if (!$this->validateRule($token)) return false;
11
+        foreach ($tokens as $token) {
12
+                    if (!$this->validateRule($token)) return false;
13
+        }
13 14
 
14 15
         return true;
15 16
     }
@@ -19,7 +20,9 @@  discard block
 block discarded – undo
19 20
     }
20 21
 
21 22
     private function validateRule($token) {
22
-        if ($token['type'] !== Tokenizer::OPEN_BRACE) return true;
23
+        if ($token['type'] !== Tokenizer::OPEN_BRACE) {
24
+        	return true;
25
+        }
23 26
 
24 27
         return $this->checkBraces($token) && $this->checkSemicolons($token)
25 28
             && $this->checkParenthesis($token);
@@ -32,8 +35,9 @@  discard block
 block discarded – undo
32 35
     private function checkSemicolons($braceToken) {
33 36
         $splitTokens = $braceToken['value']->splitOnToken(Tokenizer::COLON);
34 37
         array_shift($splitTokens); array_pop($splitTokens);
35
-        foreach ($splitTokens as $tokens)
36
-            if (!in_array(Tokenizer::SEMI_COLON, array_column(iterator_to_array($tokens), 'type'))) return false;
38
+        foreach ($splitTokens as $tokens) {
39
+                    if (!in_array(Tokenizer::SEMI_COLON, array_column(iterator_to_array($tokens), 'type'))) return false;
40
+        }
37 41
 
38 42
         return true;
39 43
     }
@@ -43,7 +47,9 @@  discard block
 block discarded – undo
43 47
     }
44 48
 
45 49
     private function tokenize($tss) {
46
-        if (is_file($tss)) $tss = file_get_contents($tss);
50
+        if (is_file($tss)) {
51
+        	$tss = file_get_contents($tss);
52
+        }
47 53
         return (new Parser\Tokenizer($tss))->getTokens();
48 54
     }
49 55
 }
Please login to merge, or discard this patch.
src/Parser/Sheet.php 1 patch
Braces   +22 added lines, -8 removed lines patch added patch discarded remove patch
@@ -25,14 +25,19 @@  discard block
 block discarded – undo
25 25
 			$this->file = $tss;
26 26
 			$this->rules = $this->cache->load($tss);
27 27
 			$this->filePath->addPath(dirname(realpath($tss)));
28
-			if (empty($this->rules)) $tss = file_get_contents($tss);
29
-			else return;
28
+			if (empty($this->rules)) {
29
+				$tss = file_get_contents($tss);
30
+			} else {
31
+				return;
32
+			}
30 33
 		}
31 34
 		$this->tss = (new Tokenizer($tss))->getTokens();
32 35
 	}
33 36
 
34 37
 	public function parse($indexStart = 0) {
35
-		if (!empty($this->rules)) return $this->rules['rules'];
38
+		if (!empty($this->rules)) {
39
+			return $this->rules['rules'];
40
+		}
36 41
 		$rules = $this->parseTokens($indexStart);
37 42
 		usort($rules, [$this, 'sortRules']);
38 43
 		$this->checkError($rules);
@@ -44,8 +49,9 @@  discard block
 block discarded – undo
44 49
 		foreach (new TokenFilterIterator($this->tss, [Tokenizer::WHITESPACE]) as $token) {
45 50
 			if ($processing = $this->processingInstructions($token, count($this->rules)+$indexStart)) {
46 51
 				$this->rules = array_merge($this->rules, $processing);
52
+			} else if ($token['type'] !== Tokenizer::NEW_LINE) {
53
+				$this->addRules($token, $indexStart);
47 54
 			}
48
-			else if ($token['type'] !== Tokenizer::NEW_LINE) $this->addRules($token, $indexStart);
49 55
 		}
50 56
 		return $this->rules;
51 57
 	}
@@ -53,14 +59,18 @@  discard block
 block discarded – undo
53 59
 	private function addRules($token, $indexStart) {
54 60
 		$selector = $this->tss->from($token['type'], true)->to(Tokenizer::OPEN_BRACE);
55 61
 		$this->tss->skip(count($selector));
56
-		if (count($selector) === 0) return;
62
+		if (count($selector) === 0) {
63
+			return;
64
+		}
57 65
 
58 66
 		$newRules = $this->cssToRules($selector, count($this->rules)+$indexStart, $this->getProperties($this->tss->current()['value']), $token['line']);
59 67
 		$this->rules = $this->writeRule($this->rules, $newRules);
60 68
 	}
61 69
 
62 70
 	private function checkError($rules) {
63
-		if (empty($rules) && count($this->tss) > 0) throw new \Exception('No TSS rules parsed');
71
+		if (empty($rules) && count($this->tss) > 0) {
72
+			throw new \Exception('No TSS rules parsed');
73
+		}
64 74
 	}
65 75
 
66 76
 	private function CssToRules($selector, $index, $properties, $line) {
@@ -87,7 +97,9 @@  discard block
 block discarded – undo
87 97
 	}
88 98
 
89 99
 	private function processingInstructions($token, $indexStart) {
90
-		if ($token['type'] !== Tokenizer::AT_SIGN) return false;
100
+		if ($token['type'] !== Tokenizer::AT_SIGN) {
101
+			return false;
102
+		}
91 103
 		$tokens = $this->tss->from(Tokenizer::AT_SIGN, false)->to(Tokenizer::SEMI_COLON, false);
92 104
 		$funcName = $tokens->from(Tokenizer::NAME, true)->read();
93 105
 		$args = $this->valueParser->parseTokens($tokens->from(Tokenizer::NAME));
@@ -107,7 +119,9 @@  discard block
 block discarded – undo
107 119
 
108 120
 	private function sortRules($a, $b) {
109 121
 		//If they have the same depth, compare on index
110
-		if ($a->depth === $b->depth) return $a->index < $b->index ? -1 : 1;
122
+		if ($a->depth === $b->depth) {
123
+			return $a->index < $b->index ? -1 : 1;
124
+		}
111 125
 
112 126
 		return ($a->depth < $b->depth) ? -1 : 1;
113 127
 	}
Please login to merge, or discard this patch.
src/Parser/Tokenizer.php 1 patch
Braces   +33 added lines, -13 removed lines patch added patch discarded remove patch
@@ -81,8 +81,11 @@  discard block
 block discarded – undo
81 81
 			$i += $this->doBrackets($tokens, $char, $i);
82 82
 			
83 83
 		}
84
-		if ($returnObj) return new Tokens($tokens);
85
-		else return $tokens;
84
+		if ($returnObj) {
85
+			return new Tokens($tokens);
86
+		} else {
87
+			return $tokens;
88
+		}
86 89
 	}
87 90
 
88 91
 	private function doSingleLineComments(&$tokens, $char, $i) {
@@ -95,7 +98,9 @@  discard block
 block discarded – undo
95 98
 	private function doMultiLineComments(&$tokens, $char, $i) {
96 99
 		if ($char == Tokenizer::DIVIDE && isset($this->str[$i+1]) && $this->identifyChar($this->str[$i+1]) == Tokenizer::MULTIPLY) {
97 100
 			$pos = strpos($this->str, '*/', $i)+2;
98
-			if ($this->str[$i+$pos] == "\n") $pos++;
101
+			if ($this->str[$i+$pos] == "\n") {
102
+				$pos++;
103
+			}
99 104
 			return $pos ? $pos : 0;
100 105
 		}
101 106
 	}
@@ -134,10 +139,15 @@  discard block
 block discarded – undo
134 139
 	}
135 140
 
136 141
 	private function processLiterals(&$tokens, $name) {
137
-		if (is_numeric($name)) $tokens[] = ['type' => self::NUMERIC, 'value' => $name];
138
-		else if ($name == 'true') $tokens[] = ['type' => self::BOOL, 'value' => true];
139
-		else if ($name == 'false') $tokens[] = ['type' => self::BOOL, 'value' => false];
140
-		else $tokens[] = ['type' => self::NAME, 'value' => $name, 'line' => $this->lineNo];
142
+		if (is_numeric($name)) {
143
+			$tokens[] = ['type' => self::NUMERIC, 'value' => $name];
144
+		} else if ($name == 'true') {
145
+			$tokens[] = ['type' => self::BOOL, 'value' => true];
146
+		} else if ($name == 'false') {
147
+			$tokens[] = ['type' => self::BOOL, 'value' => false];
148
+		} else {
149
+			$tokens[] = ['type' => self::NAME, 'value' => $name, 'line' => $this->lineNo];
150
+		}
141 151
 	}
142 152
 
143 153
 	private function doBrackets(&$tokens, $char, $i) {
@@ -170,7 +180,9 @@  discard block
 block discarded – undo
170 180
 	private function extractString($pos) {
171 181
 		$char = $this->str[$pos];
172 182
 		$end = strpos($this->str, $char, $pos+1);
173
-		while ($end !== false && $this->str[$end-1] == '\\') $end = strpos($this->str, $char, $end+1);
183
+		while ($end !== false && $this->str[$end-1] == '\\') {
184
+			$end = strpos($this->str, $char, $end+1);
185
+		}
174 186
 
175 187
 		return substr($this->str, $pos+1, $end-$pos-1);
176 188
 	}
@@ -179,18 +191,26 @@  discard block
 block discarded – undo
179 191
 		$close = strpos($this->str, $closeBracket, $open);
180 192
 
181 193
 		$cPos = $open+1;
182
-		while (($cPos = strpos($this->str, $startBracket, $cPos+1)) !== false && $cPos < $close) $close = strpos($this->str, $closeBracket, $close+1);
194
+		while (($cPos = strpos($this->str, $startBracket, $cPos+1)) !== false && $cPos < $close) {
195
+			$close = strpos($this->str, $closeBracket, $close+1);
196
+		}
183 197
 		return substr($this->str, $open+1, $close-$open-1);
184 198
 	}
185 199
 
186 200
 	private function identifyChar($chr) {
187
-		if (isset($this->chars[$chr])) return $this->chars[$chr];
188
-		else return self::NAME;
201
+		if (isset($this->chars[$chr])) {
202
+			return $this->chars[$chr];
203
+		} else {
204
+			return self::NAME;
205
+		}
189 206
 	}
190 207
 
191 208
 	private function getChar($num) {
192 209
 		$chars = array_reverse($this->chars);
193
-		if (isset($chars[$num])) return $chars[$num];
194
-		else return false;
210
+		if (isset($chars[$num])) {
211
+			return $chars[$num];
212
+		} else {
213
+			return false;
214
+		}
195 215
 	}
196 216
 }
Please login to merge, or discard this patch.