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 | } |
---|