private static IList <IMappingTarget> ParseMappingTargets(string exerciseText) { var mappingTargets = new List <IMappingTarget>(); var iNext = 0; while (iNext < exerciseText.Length) { var isSpecial = TryParseSpecial(exerciseText, ref iNext, out IMappingTarget mappingTarget); IMappingTarget target; if (isSpecial) { target = mappingTarget; } else { var character = exerciseText[iNext]; target = new CharacterMappingTarget(character); iNext++; } mappingTargets.Add(target); } return(mappingTargets); }
private static bool TryImportPrintableMapping( string mappingTarget, KeyboardKey keyboardKey, out IKeyboardKeyMapping keyMapping) { var parseSuccess = CharacterMappingTarget.TryImport(mappingTarget, out CharacterMappingTarget character); keyMapping = parseSuccess ? new KeyMapping(keyboardKey, character) : null; return(parseSuccess); }