1 | <?php |
||
28 | abstract class Language |
||
29 | { |
||
30 | const EMBEDDED_BY_PARENT = 2; |
||
31 | const EMBEDDED = true; |
||
32 | const NOT_EMBEDDED = false; |
||
33 | |||
34 | /** |
||
35 | * Parses source and removes wrong tokens. |
||
36 | * |
||
37 | * @param TokenIterator|string $tokens |
||
38 | * |
||
39 | * @param array $additional |
||
40 | * @param bool $embedded |
||
41 | * |
||
42 | * @return Tokens |
||
43 | */ |
||
44 | public abstract function parse($tokens = null, $additional = [], $embedded = false); |
||
45 | |||
46 | public abstract function tokenize($source, $additional = [], $offset = 0, $embedded = false); |
||
47 | |||
48 | /** |
||
49 | * Unique language identifier, for example 'php' |
||
50 | * |
||
51 | * @return string |
||
52 | */ |
||
53 | public abstract function getIdentifier(); |
||
54 | |||
55 | /** |
||
56 | * Language range Rule(s) |
||
57 | * |
||
58 | * @param $embedded |
||
59 | * |
||
60 | * @return Rule|\Kadet\Highlighter\Parser\Rule[] |
||
61 | */ |
||
62 | public abstract function getEnds($embedded = false); |
||
63 | |||
64 | /** |
||
65 | * @return Language[] |
||
66 | */ |
||
67 | public abstract function getEmbedded(); |
||
68 | |||
69 | /** |
||
70 | * @param Language $lang |
||
71 | */ |
||
72 | public abstract function embed(Language $lang); |
||
73 | |||
74 | 1 | public static function byName($name, $params = []) |
|
78 | |||
79 | 1 | public static function byMime($mime, $params = []) |
|
83 | |||
84 | 1 | public static function byFilename($filename, $params = []) |
|
88 | |||
89 | 5 | public final function getFQN() |
|
90 | { |
||
94 | } |
||
95 |