Free cookie consent management tool by TermsFeed Policy Generator

source: branches/PushGP/HeuristicLab.Algorithms.PushGP/HeuristicLab.Algorithms.PushGP.Cli/Program.cs @ 14320

Last change on this file since 14320 was 14320, checked in by pkimmesw, 8 years ago

#2665 Added Interpreter, Parser, 16 Examples, Expressions needed for the examples

File size: 2.5 KB
Line 
1using System;
2using HeuristicLab.Algorithms.PushGP.Interpreter;
3
4namespace HeuristicLab.Algorithms.PushGP.Cli
5{
6    class Program
7    {
8        static void Main(string[] args)
9        {
10            var interpreter = new PushGPInterpreter();
11
12            interpreter.IntegerStack.Push(3, 3);
13            interpreter.FloatStack.Push(2.0, 3.0);
14
15            interpreter.Interprete(example17);
16            interpreter.PrintStacks();
17
18            Console.WriteLine("\nPress any key to continue...");
19            Console.ReadKey();
20        }
21
22        static string example1 = "( 2 3 INTEGER.* 4.1 5.2 FLOAT.+ TRUE FALSE BOOLEAN.OR )";
23        static string example2 = "( 5 1.23 INTEGER.+ ( 4 ) INTEGER.- 5.67 FLOAT.* )";
24        static string example3 = "( 5 INTEGER.DUP INTEGER.+ )";
25        static string example4 = "5";
26        static string example5 = "INTEGER.DUP";
27        static string example6 = "( 5 CODE.QUOTE ( INTEGER.DUP INTEGER.+ ) CODE.DO )";
28        static string example7 = "( DOUBLE CODE.QUOTE ( INTEGER.DUP INTEGER.+ ) CODE.DEFINE 5 DOUBLE )";
29        static string example8 = "( CODE.QUOTE ( INTEGER.DUP INTEGER.+ ) DOUBLE CODE.DEFINE 5 DOUBLE )";
30        static string example9 = "( DOUBLE EXEC.DEFINE ( INTEGER.DUP INTEGER.+ ) 5 DOUBLE )";
31
32        // Requires an integer preloaded
33        static string example10 = @"( CODE.QUOTE ( INTEGER.POP 1 )
34                                      CODE.QUOTE ( CODE.DUP INTEGER.DUP 1 INTEGER.- CODE.DO INTEGER.* )
35                                      INTEGER.DUP 2 INTEGER.< CODE.IF )";
36        static string example11 = "( 1 INTEGER.MAX 1 EXEC.DO*RANGE INTEGER.* )";
37        static string example12 = "( 1 INTEGER.MAX 1 EXEC.DO*RANGE ( 2 INTEGER.* ) )";
38        static string example13 = "( INTEGER.= CODE.QUOTE FLOAT.* CODE.QUOTE FLOAT./ CODE.IF )";
39        static string example14 = "( INTEGER.= EXEC.IF FLOAT.* FLOAT./ )";
40        static string example15 = "( EXEC.Y ( ( FALSE 2 INTEGER.* ) EXEC.IF ( ) EXEC.POP ) )";
41        static string example16 = "( EXEC.Y ( ( 2 INTEGER.* INTEGER.DUP 1000 INTEGER.< ) EXEC.IF ( ) EXEC.POP ) )";
42        static string example17 = @"( ARG FLOAT.DEFINE
43                                      EXEC.Y (
44                                          ARG FLOAT.*
45                                          1 INTEGER.-
46                                          INTEGER.DUP 1 INTEGER.>
47                                          EXEC.IF ( ) EXEC.POP
48                                      )
49                                    )";
50    }
51}
Note: See TracBrowser for help on using the repository browser.