[14320] | 1 | using System;
|
---|
| 2 | using HeuristicLab.Algorithms.PushGP.Interpreter;
|
---|
| 3 |
|
---|
| 4 | namespace 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 | } |
---|