aboutsummaryrefslogtreecommitdiffstats
path: root/core/namespace/Parsers/ArgumentParser.php
blob: 4ac3b9c870461bff60447b9947826b7cf614a9cb (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 '';
	}
}