Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
 public void SetActiveMacroSet(MacroSetDescriptor macroSet)
 {
     _inputManager.Contexts.SetActiveContext(InputContextPrefix + macroSet.Name);
 }