static Memory.Variable Solve(SubExpr subExpr)
        {
            var rt = Solve(subExpr.add);

            if (subExpr.signal != null && subExpr.signal == "-")
            {
                rt.Value *= -1;
            }
            return(rt);
        }
        static SubExpr CreateSubExpr(ParsingInfo info)
        {
            SubExpr expr = new SubExpr();

            foreach (var pair in info)
            {
                if (pair.Key == "Add")
                {
                    expr.add = CreateExpression(pair.Value.AsChild);
                }
                else if (pair.Key == "signal")
                {
                    var token = pair.Value.AsToken as SymbolToken;
                    expr.signal = token.Value;
                }
                else
                {
                    Console.WriteLine("SubExpr has '" + pair.Key + "'");
                }
            }
            return(expr);
        }