Пример #1
0
 static void Main(string[] args)
 {
     if (args.Length == 0)
     {
         Console.WriteLine("Try -h, Thanks!");
     }
     else
     {
         BrainFuckInterpreter bf = new BrainFuckInterpreter();
         foreach (string s in args)
         {
             if (s[0] == '-') // switch options
             {
                 for (int i = 1; i < s.Length; i++)
                 {
                     switch (s[i])
                     {
                         case 'h':
                             {
                                 PrintHelp();
                                 break;
                             }
                         case 'd':
                             {
                                 bf.echo = false;
                                 break;
                             }
                         case 'v':
                             {
                                 Console.WriteLine(VER);
                                 break;
                             }
                         case 'e':
                             {
                                 bf.echo = true;
                                 break;
                             }
                         case 'p':
                             {
                                 string src = Console.In.ReadToEnd();
                                 bf.Interpret(src);
                                 break;
                             }
                     }
                 }
             }
             else
             {
                 if (File.Exists(s))
                 {
                     bf.Interpret(File.ReadAllText(s));
                 }
                 else
                 {
                     Console.WriteLine("File Open Error: " + s);
                 }
             }
         }
     }
 }
        static void Main(string[] args)
        {
            Console.Title           = "BrainFuck Interpreter";
            Console.BackgroundColor = ConsoleColor.White;
            Console.ForegroundColor = ConsoleColor.Green;

            BrainFuckInterpreter bf2 = new BrainFuckInterpreter();

            if (args.Length == 0)
            {
                Console.Clear();

                Console.Write(@"-.`..................................................................................--.....-.......
-       `````````````````````...............................................`.-----.---.-...:-....`-
-`..........................------------------------------------------------......................`:
-`-..............................................................................................-`:
-`-`````````````````````````````````````````````````````````````````````````````````````````````.-`:
-`-                                                                                             `-`:
-`-                                                                               ``````````    `-`:
-`-  .osssssssssssssssooooooooooooooooooooooooooooo-     ````````````````````    ``````````.`   `-`:
-`-  .ssssssssssssssssssssssssssosssooooooooooooooo:`    ````````````````````    `.```````.-.`  `-`:
-`-  .ossssssssssssssssssoooooooooooooooooooooooooo:`    ````````````````````     +oooooooo/.`  `-`:
-`-  .ossssoooooooooooooooooooooooooooooooooooooooo:`    :/:-.``                  +ooo+++++/.`  `- :
-`-  .ooooooooooooooooooooooooooooooooooooo++++++oo:`    /ysossso+//:-`           +ooo+++++/.`  `- :
-`-  .ooooooooooooooooooooooooooooooooooooooooo+oo+:`    :y+ ``.-:/+osss/.       `+++++++++/.` ``- :
-`-  .oooooooooooooooooooooooooooooo+++++++++++++++-`    /y+``````````./ss-``    `+++++++++/.`  `- :
-`-  .+oooooooooooooooooo+++ooooooooooooooooooo++++:`    /y+````````````/y+``    `/++++++++/.` ``- :
:--  .+ooooo+++++++++oooooooooosooooooooooooooooooo:`    /yo````````````/yo``    `/+++/+++//.````-.:
:--  .++++++++++oooosssssssssoooooooooooooooooooooo:`    :so````````````oy+``    `/+++/++++/.````:-:
:--  .++++++oossssssssssssooooooooooooooooooooooooo:`    .ss.   ```````/ss.``    `//+///////.````:-:
:--  .+++oosssssssssssssooooooooooooooooooooooooooo:`    `sy-        `+ys-```    `/+++///+//.````:-:
:--  .+ossssssssssssosooooooooooooooooooooooooooooo:.    `sy:```````:ss+.`````   `//////////.````--:
:--  .ossssssssssssoooooooooooooooooooooooooooooooo:.   ``+y/`````-oyo-```````  ``//////////.````--:
:--  .osssssssssooooooooooooooooooooooooooooooooooo:.   ``/yo```:oso:`````````` ``/////////:.````--:
:--  .ossssssoooooooooooooooooooooooooooooooooooooo:.   ``/yo``+so:```````````````//////////.````--:
:--  .osssosooooooooooooooooooooooooooooooooooooooo:.     /yo``+ss/```````````````//////////.````--:
:--  .ooooooooooooooooooooooooooooooooooooooooooooo:.`    /yo`  ./ss/.````````````-:::::::::.````--:
:-- `.ooooooooooooooooooooooooooooooooooooooooooooo:.`  ``/yo``````/ss+-`````````````.......`````:-:
---` .oooooooooooooooooooooooooooooooooooooooooooo+:.`````/yo.``````.:ss+-```````````````````````--:
---``.oooooooooooooooooooooooooooooooooooooooooooo+:.`````/yo.````````./ss/``````````````````````--:
---``.+ooooooooooooooooooooooooooooooooooooooooooo+:.`````/yo```````````-oyo.````````````````````:-:
---``.+oooooooooooooooooooooooooooooooooooooooo++++:.`````/yo.```````````.ss:````````````````````:-:
:--``.+ooooooooooooooooooooooooooooooooo+++oo++++++:.`````:ys.```````````.sy:````````````````````:-:
:--``.+ooooooooooooooooooooooooooooooo+++++++++++++:.`````-yy-``......-:/oso.````````````````````:-:
:--``.+ooooooooooooooooooooooooooooo+++++++++++++++:.`````.syooosssssysso+:..````````````````````:-:
:--``.+oooooooooooooooooooooooooooooooo++++++++++++:.``````.::::---....``````````````````````````:-:
:--``.oooooooooooooooooooooooooo+++++++++++++++++++:.````````````````````````````````````````````:-:
:--``.+ooo+++++++++++++++++++++++++++++++++++++++++:.````````````````````````````````````````````:-:
:--``.:////////////////////////////////////////////:.````````````````````````````````````````````:-:
:--````.............................................`````````````````````````````````````````````:-:
:--``````````````````````````````````````````````````````````````````````````````````````````````:-:
:.-------------------------------------------------------------------------------------------------:
---------------------------------------------------------------------------------------------------:
"); Console.WriteLine("\n=====================================================================================================");
                if (BrainFuckInterpreter.censored == true)
                {
                    Console.WriteLine("BrainF*** Interpreter " + BrainFuckInterpreter.VER);
                    Console.Write("No argument? Then the -p parameter goes active by deafult(no changing!), Now type your BrainFuck code. \n");
                }
                else
                {
                    Console.WriteLine("BrainFuck Interpreter " + BrainFuckInterpreter.VER);
                    Console.Write("No argument? Then the -p parameter goes active, Now type your BrainFuck code. \n");
                }
                Thread.Sleep(1000);
                Console.Write("If you need help? Use -h \n");
                Console.Write("Type exit to exit, type -h to get help \n");
                Console.Write("Here is an example: ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. \n");
                Console.Write("=========================================================================================================================================\n");
                string src = Console.ReadLine();
                if (src == "exit")
                {
                    System.Environment.Exit(0);
                }
                else if (src == "-h")
                {
                    PrintHelp();
                    Console.ReadLine();
                }
                else
                {
                    try{
                        bf2.Interpret(src);
                    }
                    catch (System.Exception e)
                    {
                        Console.WriteLine("Err, Exceptions. Something went wrong in the interpretation of the code: " + src + ". Error: " + e.Message);
                    }
                }
            }
            else
            {
                Console.Write(@"-.`..................................................................................--.....-.......
-       `````````````````````...............................................`.-----.---.-...:-....`-
-`..........................------------------------------------------------......................`:
-`-..............................................................................................-`:
-`-`````````````````````````````````````````````````````````````````````````````````````````````.-`:
-`-                                                                                             `-`:
-`-                                                                               ``````````    `-`:
-`-  .osssssssssssssssooooooooooooooooooooooooooooo-     ````````````````````    ``````````.`   `-`:
-`-  .ssssssssssssssssssssssssssosssooooooooooooooo:`    ````````````````````    `.```````.-.`  `-`:
-`-  .ossssssssssssssssssoooooooooooooooooooooooooo:`    ````````````````````     +oooooooo/.`  `-`:
-`-  .ossssoooooooooooooooooooooooooooooooooooooooo:`    :/:-.``                  +ooo+++++/.`  `- :
-`-  .ooooooooooooooooooooooooooooooooooooo++++++oo:`    /ysossso+//:-`           +ooo+++++/.`  `- :
-`-  .ooooooooooooooooooooooooooooooooooooooooo+oo+:`    :y+ ``.-:/+osss/.       `+++++++++/.` ``- :
-`-  .oooooooooooooooooooooooooooooo+++++++++++++++-`    /y+``````````./ss-``    `+++++++++/.`  `- :
-`-  .+oooooooooooooooooo+++ooooooooooooooooooo++++:`    /y+````````````/y+``    `/++++++++/.` ``- :
:--  .+ooooo+++++++++oooooooooosooooooooooooooooooo:`    /yo````````````/yo``    `/+++/+++//.````-.:
:--  .++++++++++oooosssssssssoooooooooooooooooooooo:`    :so````````````oy+``    `/+++/++++/.````:-:
:--  .++++++oossssssssssssooooooooooooooooooooooooo:`    .ss.   ```````/ss.``    `//+///////.````:-:
:--  .+++oosssssssssssssooooooooooooooooooooooooooo:`    `sy-        `+ys-```    `/+++///+//.````:-:
:--  .+ossssssssssssosooooooooooooooooooooooooooooo:.    `sy:```````:ss+.`````   `//////////.````--:
:--  .ossssssssssssoooooooooooooooooooooooooooooooo:.   ``+y/`````-oyo-```````  ``//////////.````--:
:--  .osssssssssooooooooooooooooooooooooooooooooooo:.   ``/yo```:oso:`````````` ``/////////:.````--:
:--  .ossssssoooooooooooooooooooooooooooooooooooooo:.   ``/yo``+so:```````````````//////////.````--:
:--  .osssosooooooooooooooooooooooooooooooooooooooo:.     /yo``+ss/```````````````//////////.````--:
:--  .ooooooooooooooooooooooooooooooooooooooooooooo:.`    /yo`  ./ss/.````````````-:::::::::.````--:
:-- `.ooooooooooooooooooooooooooooooooooooooooooooo:.`  ``/yo``````/ss+-`````````````.......`````:-:
---` .oooooooooooooooooooooooooooooooooooooooooooo+:.`````/yo.``````.:ss+-```````````````````````--:
---``.oooooooooooooooooooooooooooooooooooooooooooo+:.`````/yo.````````./ss/``````````````````````--:
---``.+ooooooooooooooooooooooooooooooooooooooooooo+:.`````/yo```````````-oyo.````````````````````:-:
---``.+oooooooooooooooooooooooooooooooooooooooo++++:.`````/yo.```````````.ss:````````````````````:-:
:--``.+ooooooooooooooooooooooooooooooooo+++oo++++++:.`````:ys.```````````.sy:````````````````````:-:
:--``.+ooooooooooooooooooooooooooooooo+++++++++++++:.`````-yy-``......-:/oso.````````````````````:-:
:--``.+ooooooooooooooooooooooooooooo+++++++++++++++:.`````.syooosssssysso+:..````````````````````:-:
:--``.+oooooooooooooooooooooooooooooooo++++++++++++:.``````.::::---....``````````````````````````:-:
:--``.oooooooooooooooooooooooooo+++++++++++++++++++:.````````````````````````````````````````````:-:
:--``.+ooo+++++++++++++++++++++++++++++++++++++++++:.````````````````````````````````````````````:-:
:--``.:////////////////////////////////////////////:.````````````````````````````````````````````:-:
:--````.............................................`````````````````````````````````````````````:-:
:--``````````````````````````````````````````````````````````````````````````````````````````````:-:
:.-------------------------------------------------------------------------------------------------:
---------------------------------------------------------------------------------------------------:
");
                Console.WriteLine("\n=====================================================================================================");
                Console.WriteLine("BrainF*** Interpreter " + BrainFuckInterpreter.VER);
                BrainFuckInterpreter bf = new BrainFuckInterpreter();
                string char1            = "ex";
                foreach (string s in args)
                {
                    if (s[0] == '-') // switch options
                    {
                        for (int i = 1; i < s.Length; i++)
                        {
                            switch (s[i])
                            {
                            case 'h':
                            {
                                PrintHelp();
                                break;
                            }

                            case 'd':
                            {
                                bf.echo = false;
                                BrainFuckInterpreter.censored = false;
                                break;
                            }

                            case 'v':
                            {
                                Console.WriteLine(VER);
                                break;
                            }

                            case 'e':
                            {
                                bf.echo = true;
                                break;
                            }

                            case 'p':
                            {
                                Console.Write("Type your brainfuck code \n");
                                Console.Write("Type exit to exit \n");
                                Console.Write("Here is an example: ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. \n");
                                Console.Write("=====================================================================================================\n");
                                string src = Console.ReadLine();
                                if (src != "exit")
                                {
                                    try{
                                        bf.Interpret(src);
                                    }
                                    catch (System.Exception e)
                                    {
                                        Console.WriteLine("Err, Exceptions. Something went wrong in the interpretation of the code: " + src + ". Error: " + e.Message);
                                    }
                                }
                                System.Environment.Exit(0);
                                break;
                            }

                            case 'c':
                            {
                                BrainFuckInterpreter.censored = true;
                                break;
                            }

                            case 'E':
                            {
                                try
                                {
                                    Console.WriteLine("Reading File: example.txt");
                                    bf.Interpret(File.ReadAllText("example.txt"));
                                    break;
                                }
                                catch (System.Exception e)
                                {
                                    Console.WriteLine("Err, Exceptions. There was a problem opening the file " + s + " . Error: " + e.Message);
                                    break;
                                }
                                finally
                                {
                                    System.Environment.Exit(1);
                                }
                                break;
                            }

                            default:
                            {
                                Console.WriteLine("It desn't match any of the parameters, try -h if you need help.");
                                break;
                            }
                            }
                        }
                    }
                    else
                    {
                        try
                        {
                            Console.WriteLine("Reading File: " + s);
                            bf.Interpret(File.ReadAllText(s));
                        }
                        catch (System.Exception e)
                        {
                            Console.WriteLine("Err, Exceptions. There was a problem opening the file " + s + " . Error: " + e.Message);
                        }
                        finally
                        {
                            System.Environment.Exit(1);
                        }
                    }
                }
            }
        }
Пример #3
0
        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine("Try -h, Thanks!");
            }
            else
            {
                BrainFuckInterpreter bf = new BrainFuckInterpreter();
                foreach (string s in args)
                {
                    if (s[0] == '-') // switch options
                    {
                        for (int i = 1; i < s.Length; i++)
                        {
                            switch (s[i])
                            {
                            case 'h':
                            {
                                PrintHelp();
                                break;
                            }

                            case 'd':
                            {
                                bf.echo = false;
                                break;
                            }

                            case 'v':
                            {
                                Console.WriteLine(VER);
                                break;
                            }

                            case 'e':
                            {
                                bf.echo = true;
                                break;
                            }

                            case 'p':
                            {
                                string src = Console.In.ReadToEnd();
                                bf.Interpret(src);
                                break;
                            }
                            }
                        }
                    }
                    else
                    {
                        if (File.Exists(s))
                        {
                            bf.Interpret(File.ReadAllText(s));
                        }
                        else
                        {
                            Console.WriteLine("File Open Error: " + s);
                        }
                    }
                }
            }
        }