Completed
Branch 0.8-dev (8dbfb7)
by Kacper
06:35
created

Language::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 1

Importance

Changes 13
Bugs 2 Features 0
Metric Value
c 13
b 2
f 0
dl 0
loc 10
ccs 7
cts 7
cp 1
rs 9.4285
cc 1
eloc 6
nc 1
nop 1
crap 1

2 Methods

Rating   Name   Duplication   Size   Complexity  
Language::getEnds() 0 1 ?
Language::getEmbedded() 0 1 ?
1
<?php
2
/**
3
 * Highlighter
4
 *
5
 * Copyright (C) 2016, Some right reserved.
6
 *
7
 * @author Kacper "Kadet" Donat <[email protected]>
8
 *
9
 * Contact with author:
10
 * Xmpp: [email protected]
11
 * E-mail: [email protected]
12
 *
13
 * From Kadet with love.
14
 */
15
namespace Kadet\Highlighter\Language;
16
17
use Kadet\Highlighter\Parser\Rule;
18
use Kadet\Highlighter\Parser\TokenIterator;
19
use Kadet\Highlighter\Parser\Tokens;
20
21
22
/**
23
 * Class Language
24
 *
25
 * @package Kadet\Highlighter\Language
26
 */
27
interface Language
28
{
29
    const EMBEDDED_BY_PARENT = 2;
30
    const EMBEDDED           = true;
31
    const NOT_EMBEDDED       = false;
32
33
    /**
34
     * Parses source and removes wrong tokens.
35
     *
36
     * @param TokenIterator|string $tokens
37
     *
38
     * @param array                $additional
39
     * @param bool                 $embedded
40
     *
41
     * @return Tokens
42
     */
43
    public function parse($tokens = null, $additional = [], $embedded = false);
44
45
    public function tokenize($source, $additional = [], $offset = 0, $embedded = false);
46
47
    /**
48
     * Unique language identifier, for example 'php'
49
     *
50
     * @return string
51
     */
52
    public function getIdentifier();
53
54
    /**
55
     * Language range Rule(s)
56
     *
57
     * @param $embedded
58 16
     *
59
     * @return Rule|\Kadet\Highlighter\Parser\Rule[]
60
     */
61 16
    public function getEnds($embedded = false);
62 16
63 16
    /**
64
     * @return Language[]
65 16
     */
66 16
    public function getEmbedded();
67 16
68
    /**
69
     * @param Language $lang
70
     */
71
    public function embed(Language $lang);
72
}
73