public InterfaceDescriptor Interface() { List <WindowDescriptor> windowDescriptors = new(); List <MacroSetDescriptor> macroSetDescriptors = new(); Dictionary <string, MenuDescriptor> menuDescriptors = new(); var serializationManager = IoCManager.Resolve <ISerializationManager>(); bool parsing = true; while (parsing) { try { WindowDescriptor windowDescriptor = Window(serializationManager); if (windowDescriptor != null) { windowDescriptors.Add(windowDescriptor); Newline(); } MacroSetDescriptor macroSet = MacroSet(serializationManager); if (macroSet != null) { macroSetDescriptors.Add(macroSet); Newline(); } MenuDescriptor menu = Menu(serializationManager); if (menu != null) { menuDescriptors.Add(menu.Name, menu); Newline(); } if (windowDescriptor == null && macroSet == null && menu == null) { parsing = false; } } catch (CompileErrorException) { //Error recovery Token token = Current(); while (token.Type is not(TokenType.DMF_Window or TokenType.DMF_Macro or TokenType.DMF_Menu)) { token = Advance(); if (token.Type == TokenType.EndOfFile) { parsing = false; break; } } } } Consume(TokenType.EndOfFile, "Expected EOF"); return(new InterfaceDescriptor(windowDescriptors, macroSetDescriptors, menuDescriptors)); }
public InterfaceDescriptor Interface() { List <WindowDescriptor> windowDescriptors = new(); List <MacroSetDescriptor> macroSetDescriptors = new(); Dictionary <string, MenuDescriptor> menuDescriptors = new(); var serializationManager = IoCManager.Resolve <ISerializationManager>(); bool parsing = true; while (parsing) { WindowDescriptor windowDescriptor = Window(serializationManager); if (windowDescriptor != null) { windowDescriptors.Add(windowDescriptor); Newline(); } MacroSetDescriptor macroSet = MacroSet(serializationManager); if (macroSet != null) { macroSetDescriptors.Add(macroSet); Newline(); } MenuDescriptor menu = Menu(serializationManager); if (menu != null) { menuDescriptors.Add(menu.Name, menu); Newline(); } if (windowDescriptor == null && macroSet == null && menu == null) { parsing = false; } } Consume(TokenType.EndOfFile, "Expected EOF"); return(new InterfaceDescriptor(windowDescriptors, macroSetDescriptors, menuDescriptors)); }
public void SetActiveMacroSet(MacroSetDescriptor macroSet) { _inputManager.Contexts.SetActiveContext(InputContextPrefix + macroSet.Name); }