aboutsummaryrefslogtreecommitdiffstats
path: root/core/namespace/Parsers/ArgumentParser.php
blob: ab32fe18db81ad48dc5091c9d59f4fd0e0c09298 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
namespace Parsers;

class ArgumentParser implements ParserInterface {

	#===========================================================================
	# Parse arguments (*without* duplicates)
	#===========================================================================
	public function parse(string $text): array {
		foreach(explode('|', $text) as $delimiter) {
			$part = explode('=', $delimiter);

			$argumentK = $part[0] ?? NULL;
			$argumentV = $part[1] ?? TRUE;

			if(preg_match('#^[[:word:]]+$#', $argumentK)) {
				$arguments[strtoupper($argumentK)] = $argumentV;
			}
		}

		return $arguments ?? [];
	}

	#===========================================================================
	# Transform arguments (not implemented)
	#===========================================================================
	public function transform(string $text): string {
		return '';
	}
}