Parser::getAnalyzer()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 3
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 1
1
<?php
2
namespace gossi\formatter\parser;
3
4
use phootwork\tokenizer\PhpTokenizer;
5
use phootwork\tokenizer\TokenCollection;
6
7
class Parser {
8
9
	/** @var PhpTokenizer */
10
	private $tokenizer;
11
	/** @var Lexer */
12
	private $lexer;
13
	/** @var Analyzer */
14
	private $analyzer;
15
	/** @var Context */
16
	private $context;
17
	/** @var TokenTracker */
18
	private $tracker;
19
	/** @var TokenCollection */
20
	private $tokens;
21
	/** @var TokenMatcher */
22
	private $matcher;
23
24 10
	public function __construct() {
25 10
		$this->matcher = new TokenMatcher();
26 10
		$this->tokenizer = new PhpTokenizer();
27 10
		$this->lexer = new Lexer();
28 10
		$this->context = new Context($this);
29 10
		$this->analyzer = new Analyzer($this);
30 10
	}
31
32 10
	public function parse($code) {
33
		// get tokens
34 10
		$tokens = $this->tokenizer->tokenize($code);
35
36
		// preparations
37 10
		$tokens = $this->lexer->filterTokens($tokens);
38 10
		$tokens = $this->lexer->repair($tokens);
39
40
		// helpers
41 10
		$this->tracker = new TokenTracker($tokens, $this->context);
42 10
		$this->tokens = $tokens;
43
44
		// analyze
45 10
		$this->analyzer->analyze($tokens);
46 10
		$this->context->reset();
47 10
	}
48
49
	/**
50
	 * 
51
	 * @return TokenCollection
52
	 */
53 5
	public function getTokens() {
54 5
		return $this->tokens;
55
	}
56
57
	/**
58
	 * @return TokenTracker
59
	 */
60 10
	public function getTracker() {
61 10
		return $this->tracker;
62
	}
63
64
	/**
65
	 * @return Context
66
	 */
67 10
	public function getContext() {
68 10
		return $this->context;
69
	}
70
71
	/**
72
	 * @return Analyzer
73
	 */
74 5
	public function getAnalyzer() {
75 5
		return $this->analyzer;
76
	}
77
78
	/**
79
	 * @return TokenMatcher
80
	 */
81 10
	public function getMatcher() {
82 10
		return $this->matcher;
83
	}
84
85
}
86