alielie
2026-09-10 f3889f2d36c50cf99468594854def9b7ed069fb5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
@{
    Layout = null;
 
    string assemblyVersion = typeof(DynamicExpresso.Interpreter).Assembly.GetName().Version.ToString();
}
 
<!DOCTYPE html>
 
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
    <title>Web Shell - Dynamic Expresso</title>
    <meta name="description" content="A simple shell for trying Dynamic Expresso in your browser." />
    <meta name="keywords" content="dynamic expresso" />
 
    <link rel="stylesheet" href="@Url.Content("~/Content/bootstrap.min.css")" type="text/css">
    <link rel="stylesheet" href="@Url.Content("~/Content/bootstrap-responsive.min.css")" type="text/css">
    <link rel="stylesheet" href="@Url.Content("~/Content/webshell.css")" type="text/css">
</head>
<body>
 
    <header>
        <div class="container">
            <h1>Dynamic Expresso Web Shell</h1>
            <p class="lead">
                <a href="https://github.com/dynamicexpresso/DynamicExpresso">Dynamic Expresso</a> is an expression interpreter for simple C# statements.
                <br />
                Try it now directly in your browser.
            </p>
        </div>
    </header>
 
    <div class="container">
        <div class="row">
            <div id="terminal">
                <p>Dynamic Expresso version: @assemblyVersion</p>
                @*<p>type "help" for help</p>*@
 
            </div>
        </div>
 
        <div class="row">
            <p>
                Dynamic Expresso understands a subset of C# syntax (numeric and string operators, comparison operators, typeof, new, primitive types, Math and Convert classes, ...). 
                It supports single statement expression only. See <a href="https://github.com/dynamicexpresso/DynamicExpresso">documentation</a> for more information.<br />
                In this example all the results are serialized using json to be more human readable.
            </p>
        </div>
 
        <div class="row">
            <div class="span6">
                <div class="">
                    <h3>Commands examples</h3>
                    <p>
                        Here some expressions that you can try:
                    </p>
                    <ul>
                        <li><code>5 + 2 * 8 / (80 + 9.9)</code></li>
                        <li><code>"Hello" + " " + "world!"</code></li>
                        <li><code>DateTime.Now.AddDays(30)</code></li>
                        <li><code>new DateTime(2020, 2, 13)</code></li>
                        <li><code>string.Format("My name is {0}. Today is {1}", "R2-D2", DateTime.Now.ToShortDateString())</code></li>
                        <li><code>Commands.Count</code></li>
                        <li><code>Commands.Clear()</code></li>
                        <li><code>Commands.GetLastCommands()</code></li>
                    </ul>
 
                    <p>
                        The <code>Commands</code> variable is just for demostration purpose.
                    </p>
                </div>
            </div>
 
            <div class="span6">
                <div class="">
                    <h3>credits</h3>
                    <p>
                        <small>
                        shell javascript code is based on the mongulator project (<a href="https://github.com/banker/mongulator">https://github.com/banker/mongulator</a>)<br />
                    Copyright (c) 2009 Kyle Banker
                        </small>
                    </p>
                </div>
            </div>
        </div>
 
    </div>
 
    <script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.9.0.min.js")"></script>
    <script type="text/javascript" src="@Url.Content("~/Scripts/webshell.js")"></script>
 
    <script type="text/javascript">
        $(document).ready(function () {
            var deHandler = new DynamicExpressoHandler({ interpreterUrl: "@Url.Action("Eval", "Interpreter")" });
            var terminal = new ReadLine({
                htmlForInput: DefaultInputHtml,
                handler: deHandler,
                scoper: null
            });
        });
    </script>
 
</body>
</html>