예제 #1
0
                static void Main(string[]  args)
                 {
                        string codeDuProgramme  =   "++++[++++>---<]>-.-[--->+<]>--.----.+++++++++.++++++++.+[->+++<]>.+++++++++.+++++++.++[->+++<]>.--[--->+<]>-.+[->+++<]>++.+++++++++.-[->+++++<]>-.[-->+++++<]>.-..------..-[->++++<]>.+.";

                        IInterpreteur interpreteur  =  new BrainFuckInterpreteur(512);
                        interpreteur.ChargerProgramme(codeDuProgramme);
                        interpreteur.Executer();
                    
        }
예제 #2
0
                public fPrincipale()
                 {
                        InitializeComponent();

                        this.m_interpreteur  =  new BrainFuckInterpreteur(512);
                        new ObservateurInterpreteur(this.m_interpreteur,  ei  =>
                                                                 {
                                if (ei.Type  ==  InterpreteurEventType.INITIALISATION)
                                 {
                                        this.m_dumpPrecedent  =  ei.MemoryDump;
                                        if (ei.EstDebogue)
                                         {
                                                bAvancer.Enabled  =  ei.EstDebogue;
                                                ColorerInstructionCourante(ei.InstructionSuivante);
                                                AfficherMemoire(ei.MemoryDump,   - 1);
                                            
                    }
                                    
                }
                            
            });
                        new ObservateurInterpreteur(this.m_interpreteur,  ei  =>
                                                                 {
                                if (ei.Type  ==  InterpreteurEventType.DEBUT_EXECUTION)
                                 {
                                        bExecuter.Enabled  =  false;
                                        bDeboguer.Enabled  =  false;
                                    
                }
                            
            });
                        new ObservateurInterpreteur(this.m_interpreteur,  ei  =>
                                                                 {
                                if (ei.Type  ==  InterpreteurEventType.EN_COURS_EXECUTION  &&  ei.EstDebogue)
                                 {
                                        ColorerInstructionCourante(ei.InstructionSuivante);
                                        AfficherMemoire(ei.MemoryDump,  ei.PositionIndexMemoire);
                                    
                }
                            
            });
                        new ObservateurInterpreteur(this.m_interpreteur,  ei  =>
                                                                 {
                                if (ei.Type  ==  InterpreteurEventType.FIN_EXECUTION)
                                 {
                                        bExecuter.Enabled  =  true;
                                        bDeboguer.Enabled  =  true;
                                        bAvancer.Enabled   =  false;
                                        AfficherMemoire(ei.MemoryDump,  ei.PositionIndexMemoire);
                                    
                }
                            
            });
                    
        }