/test/lib/cli/aux_cli_07_custom_option.e
http://github.com/tybor/Liberty · Specman e · 50 lines · 43 code · 7 blank · 0 comment · 1 complexity · d2876ffdc558c86a5d3c964b300e93d8 MD5 · raw file
- class AUX_CLI_07_CUSTOM_OPTION
- create {TEST_CLI_07}
- make
- feature {TEST_CLI_07}
- items: MAP[FIXED_STRING, FIXED_STRING]
- do
- Result := items_
- end
- feature {}
- make (val: STRING)
- local
- done: BOOLEAN
- key, value: FIXED_STRING
- do
- create items_.make
- from
- done := not pattern.match(val)
- until
- done
- loop
- check
- pattern.named_group_matched(once "key")
- end
- key := pattern.named_group_value(val, once "key").intern
- if pattern.named_group_matched(once "value") then
- value := pattern.named_group_value(val, once "value").intern
- else
- value := Void
- end
- items_.add(value, key)
- done := not pattern.match_next(val)
- end
- end
- pattern: REGULAR_EXPRESSION
- local
- re: REGULAR_EXPRESSION_BUILDER
- once
- Result := re.convert_python_pattern("\s*(?P<key>[^=;]+?)(?:\s*?=\s*(?P<value>[^;]*?))?\s*(?:;|$)")
- end
- items_: HASHED_DICTIONARY[FIXED_STRING, FIXED_STRING]
- invariant
- items_ /= Void
- end